Skip to content

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 16:01
· 196 commits to main since this release

Changed

  • New Project opens on the templates, not on Blank: it shows the gallery's last list at once, and Create
    waits until the gallery confirms it. On a first run it says it is loading; Blank is offered only when the
    gallery cannot be reached.
  • The theme styles the contract's new text roles (text-strong, -warning, -error, -ok, -muted,
    -small, -mono) in every theme, so a plugin's status lines read in the dark themes.
  • New Project's plugin checklist names each plugin's version: the template's pin for its own plugins, the
    registry's verified release for the rest.
  • A value a plugin's editor hands over that Studio has no Java for is no longer dropped without a word: the
    field keeps what it had and the status line says why. A plugin can ask itself through the contract's new
    ValueContext.write.
  • A plugin adding a constant to one of its open sets (a picture to Pictures, an activity to Activities)
    is refused, with both classes named, when the value is not the kind the set declares holding.
  • Studio loads released plugins only. A plugin pinned to a dev build (-SNAPSHOT) is not loaded; the
    editor says so, and Project ▸ Plugins & Libraries ▸ Installed offers Pin released versions, which
    moves each one to a release through the usual checked upgrade.
  • A Studio built from source gives a new project the latest released plugin contract instead of
    0.0.0-SNAPSHOT.
  • The getting-started text describes activities and outcomes as constants (Outcomes.BAG_FULL,
    Outcome.NEXT), matching the SDK's typed flow names.
  • Publish refuses a bot whose pom pins a -SNAPSHOT or an undefined ${property}, naming each one: the
    release would compile on this computer and nowhere else.
  • The plugin upgrade report opens with one line saying what the move costs ("Studio repairs 4 calls · you
    finish 1 removed type · nothing else changes", or "Nothing breaks"). The "What breaks in this bot" list
    is gone: it repeated the repair card and the finish-yourself list. The repair card now lists where each
    repaired call is.
  • The welcome screen's project list is one list, sorted as chosen. Projects opened from outside
    ~/BotMakerProjects were always listed last under their own header, whatever the sort; they now carry an
    Elsewhere tag instead. Newest first reads when Studio last opened a project, or its folder's date when
    that is later, so the project you just opened is on top.

Added

  • A gallery bot whose author deleted its repository still installs, from the copy of its releases the gallery
    keeps (the mirror release of botmaker-gallery). A template unpacks from the same copy, and the newest
    release is read from it. The installed bot has its own history and no original to update from, and Browse
    Bots says so: "author removed the repository · no updates".

Removed

  • Local ~/.m2 builds of plugins and the SDK are no longer offered in Plugins & Libraries, Browse or New
    Project, and the (local build) labels are gone. Pin a local build in the pom by hand to try it.

Fixed

  • A project opened a second time drew its function-call blocks as nothing, logging "Classpath element is not
    known for this classpath element" on every redraw. The library index is reloaded from its cache then, and
    the class dropdown asked ClassGraph which jar each class came from, which a cached class cannot answer; the
    index now keeps that itself.
  • Studio takes no automatic version (before a run, a debug, an AI session, a rewrite) in a git submodule,
    whose history is also the umbrella's releases. A "Run" version had swept an old Studio's leftover files
    into the gamebot template, one push from its main. Versions you save, updates and upgrades are still
    written there.
  • An old Studio's src/main/resources/botmaker-project.properties, which nothing reads since 2026-09-27, is
    kept out of every version (.git/info/exclude); it is never deleted, and a project that tracks it keeps it.
  • A push GitHub refuses as "git-receive-pack not permitted" says what it usually means on an organization's
    repository: the organization has not granted BotMaker Studio access, with where an owner approves it.
  • A project checked out as a git submodule (its .git is a file) has its history again. Studio read it as
    "no history" and Publish failed with "Creating directories for …/.git failed".
  • An SSH remote (git@github.com:owner/repo) counts as a GitHub repository, so a project cloned by hand reads
    as published. A submodule's origin is copied to My copy, never renamed, so tools that push to origin
    keep working.
  • Publishing a project whose copy lives under an organization you can push to (the BotMakerDev templates)
    publishes there: the last release, the listing and its Vetted tier are read under that owner, instead of
    under your account, where the bot looked never published. Studio still creates repositories only on your
    own account.
  • A provenance file naming the project's own repository (written by an earlier publish, or before the
    repository moved to an organization) no longer links that repository as somebody else's original.
  • The plugin version picker starts on the installed version, and offers the registry's verified one only
    as a move up. A bot on SDK 1.2.3 opened on 1.1.7 and, when JitPack's list came back empty, offered
    nothing else. Both are labelled in the list, and JitPack gets 20 seconds instead of 8.
  • A plugin pinned as ${property} resolves its jar in the plugins window, so it is recognised as a plugin
    and its type names count when two plugins clash.