ADAPTER_UPDATE:alchemy: 0.26.0 -> 0.27.0 (fetching adapter.spt from BigscreenVR/spt-progress-tool)
ADAPTER_UPDATE_UNSIGNED:alchemy: no signing_key — trusting HTTPS + GitHub
ADAPTER_UPDATE_LIVE:alchemy: live endpoint(s) or a supervised service — daemon-coordinated apply
ADAPTER_UPDATE_DONE:alchemy (re-registered)
ADAPTER_SERVICE:alchemy: already running
alchemy updated. The new binary is live for shells spawned from now on.

- Already-running shells keep the PRIOR binary. They adopt this one at their next natural offline/relaunch; no verb forces it while an instance is online — spt shell relink is the online switch and answers SHELL_ALREADY_ONLINE, which reads like "nothing to do" and is not.
- To force it now: end that instance's process, then spt shell relink <id> — same canonical id, repo binding and tag cursor kept. The relink may refuse for some minutes first while the dead pid still probes alive; retry, do not tear down.
- The Hub Daemon needs no handling on this path: spt adapter update holds the service and restarts it on the new binary. (spt adapter add --release does not — check alchemy daemon status after that one.)
- spt shell cmd <id> help reports the verb vocabulary the running instance actually has.
ADAPTER_UPDATE_SUMMARY:alchemy: updated 0.26.0 -> 0.27.0

[exited with code 0]
