Workshop 0.9.3 has been released

Workshop

  • Reworked the workshop boot process in preparation for VM confinement 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.
  • Added productid and vendorid attributes to the custom-device interface (community contribution @locnnil).
  • 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.
  • Gave every running workshop a *.wp hostname in the workshop info output if there is a conflict. When the preferred hostname is unavailable, the explanatory note is now simplified to hostname-fallback (the workshopd log has more details).

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.

Workshop GitHub Action

  • Released v1 of the Launch Workshop action to the GitHub Marketplace :partying_face:.
  • 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 }}

Reference SDKs

Repository: GitHub - canonical/reference-sdks: A curated collection of workshop SDKs. · GitHub

  • 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.
2 Likes