You Cannot Upgrade a Fleet of Live Owners on One Day
The shared-input contract changed what the session owner does with bytes. But an owner is only replaced when someone restarts it, and restarting it ends every job it holds. Installing a new app never restarts a compatible owner, on purpose. So on the day the new contract shipped, Macs across the fleet were running a new app in front of an owner that still spoke the old one — and some of those owners held live Anvil seats Dad was not ready to end. A flag day was impossible. The answer was a greeting.
The Hello Is a Capability List
Every connection to the owner starts with a hello, and the hello says what this owner speaks. The first mobile contract advertised input-lease-v1. Owners started from a build with the new contract advertise shared-input-v1 beside it. The September review added prompt-frames-v1 and a build identity. Clients read the list and behave accordingly; nobody guesses from a version number.
A gateway in front of an owner that advertises only the old capability serves the old exclusive lease unchanged and says so in its own hello to the phone. The phone then shows Take Control on that Mac's chip only, and the Macs sheet labels the row Control available instead of Typing shared. The Mac app keeps its take and release verbs for that owner. Two contracts coexist, per Mac, and every surface knows which one it is talking to.
The Switch Is a Restart, Made Per Mac
Moving a Mac to the new contract means restarting its owner, which ends its jobs, so each Mac waited for its own decision. On 2026-09-17 the office Mac and the MacBook were restarted on Dad's explicit go; the office restart ended the Anvil seats running there, as he approved. The seven other Macs were restarted only after checking that their owners held no child process at all, so nothing ended. By that afternoon every owner in the fleet spoke the shared contract — and the legacy path stayed in the code, under test, for the next owner that might be older than its app.
Capabilities Also Protect What a Surface Sees
The same mechanism keeps private things private. The native Mac pane uses Smolder's own escape-sequence frames to prove where the shell prompt is, which the proposal and completion features depend on. Those frames mean nothing to a phone and must not leak into its screen or anyone's copied text. A surface that does not declare prompt-frames-v1 receives output with those frames filtered out — and the sequence numbers stay continuous, even if that means an event carrying no bytes, so the phone's replay can never mistake a filtered frame for a gap.