Workshop and SDKcraft 0.9.3 release notes

6 July 2026

These release notes cover new features and changes in Workshop and SDKcraft 0.9.3.

Requirements and compatibility

Workshop relies on Snap and LXD:

What’s new in 0.9.3

Workshop and SDKcraft 0.9.3 rework the workshop boot process in preparation for VM support, give every workshop a *.wp hostname, and add productid and vendorid attributes to the custom-device interface. The release also improves onboarding when LXD is missing or outdated, adds storage pool monitoring, reports where sdkcraft whoami stores its token, and ships v1 of the Workshop GitHub Action.

Workshop

Repository: https://github.com/canonical/workshop

  • Reworked the workshop boot process in preparation for VM support. The machine ID and SSH host keys now persist across refreshes, and Workshop no longer uses SFTP to change the instance filesystem during launch or refresh, which should resolve a recurring LXD bug with busy ZFS volumes.

  • Gave every running workshop a *.wp hostname in the workshop info output. When the preferred hostname is unavailable, the explanatory note is now simplified to hostname-fallback (the workshopd log has more details).

  • Added productid and vendorid attributes to the custom-device interface (community contribution).

  • Improved onboarding for users with no LXD or an older LXD installed. Error messages are now actionable, and workshopd enters a degraded state that recovers without a daemon restart after LXD is installed, refreshed, or restarted.

  • Added storage pool monitoring that proactively moves the daemon into a degraded state and returns an actionable error message, preventing “out of space” failures.

  • Added and expanded documentation on runtime hooks, plugs, and slots, and updated it to reflect recent changes to the CLI structure, output, and hostnames.

SDKcraft

Repository: https://github.com/canonical/sdkcraft

  • Added productid and vendorid attributes to the custom-device interface.

  • sdkcraft whoami now reports where its token is stored: the keyring, a file, or in memory.

Reference SDKs

Repository: https://github.com/canonical/reference-sdks

  • Published the reference SDKs under the official Canonical account.

  • Reworked and published the hermes-agent SDK.

  • Updated the flutter and direnv SDKs to support the ubuntu@26.04 base and added tests.

  • Added optional desktop-interface support for opencode users, enabling clipboard support when the terminal emulator does not provide it.

Workshop GitHub Action

Repository: https://github.com/canonical/launch-workshop

  • Released v1 of the Launch Workshop action to the GitHub Marketplace.

  • Replaced the token and version inputs with channel and revision inputs for retrieving the Workshop snap:

    - uses: canonical/launch-workshop@v1
      with:
        workshop: ${{ matrix.workshop }}
        cache: |
          uv:cache
    
    - run: workshop run "$WS" unit-tests
      env:
        WS: ${{ matrix.workshop }}
    

Full Changelog: