Linux / real built server and CLI / isolated fresh home / after Runtime executables wrap Node bundles; synthetic release labels 0.1.9 -> 0.1.10. Starting the real service launcher directly (no systemd manager). GET /.well-known/t3/environment: serverVersion=0.1.9 $ before update service activeVersion: 0.1.9 readlink ~/.local/bin/t3: $T3_HOME/runtime/versions/0.1.9/t3 t3 --version: t3 v0.1.9 $ server.updateServer({targetVersion: "0.1.10"}) over authenticated WebSocket {"_tag":"Exit","requestId":"1","exit":{"_tag":"Success","value":{"targetVersion":"0.1.10","method":"boot-service","updateId":"64eb08cb-892c-4040-bcdf-1f84ba8fe4f3"}}} GET /.well-known/t3/environment: serverVersion=0.1.10 $ after committed update service activeVersion: 0.1.10 update status: committed readlink ~/.local/bin/t3: $T3_HOME/runtime/versions/0.1.10/t3 t3 --version: t3 v0.1.10 CLI matches updated server: True $ intentionally pin ~/.local/bin/t3 to runtime/versions/0.1.9/t3 $ stop and restart launcher without another update $ after ordinary restart with intentional pin service activeVersion: 0.1.10 update status: committed readlink ~/.local/bin/t3: $T3_HOME/runtime/versions/0.1.9/t3 t3 --version: t3 v0.1.9 Intentional CLI pin preserved: True