What's Changed
- fix(gui-app): use the primary-action shortcut hint on the interview card (#1291) (88c5082)
- fix(gui-app): defer diff colors to @pierre/diffs (#1292) (77dc829)
- feat(traycer-cli): preserve the outgoing install's provider CLIs across updates (#1294) (7469861)
- fix(gui-app): surface the reason a create failed, and close its ghost tab (#1297) (d8ae05b)
- fix(gui-app): fork a chat onto the host you switch to (#1299) (2fe9d82)
- fix(gui-app): keycaps on a filled button, and one selected cmdk row at a time (#1304) (a260405)
- fix(gui-app,shared): keep a pinned panel recoverable when its host cannot answer (#1302) (9716f22)
- feat(gui-app): add recent workspace folders (#1310) (100b3bf)
- fix(traycer-cli): register packaged CLIs against themselves, keep the well-known slot staged (#1301) (13d3f92)
- fix(shared): retry relay policy kills (#1312) (86cb43e)
- feat(gui-app): show recent folders in live chats (#1311) (1da408f)
- feat(traycer-cli,shared): credential the host that
host installstarts (#1305) (8600f97) - fix(cli,desktop): patient slot-ownership probe, and the downgrade guard on the symlink arm (#1314) (e85884a)
- feat(protocol,shared,gui-app): delta-seed epic reattach (epic.subscribe@1.3) (#1315) (1a6bfe6)
- build: give the type-checkers room, and stop running eight of them at once (#1319) (c4ed8cf)
- docs(protocol): name the right party in the @1.3 no-gate argument (#1320) (733e64c)
- fix(gui-app): unify composer host selector (#1316) (dd331f5)
- feat(gui-app,desktop,shared): serve maintenance RPCs over the CLI bridge for pre-1.2.0 local hosts (#1306) (139e84b)
- feat(history): filter tasks by the hosts that own their chats (#1303) (a1e75cb)
- fix(gui-app): stop calling a cross-host profile "removed" in history (#1307) (a6ec486)
- fix(gui-app): close deleted agent tabs (#1309) (5e3f61e)
- fix(gui-app,desktop): honest fallback answers across the install commit boundary (#1321) (266a849)
- fix(gui-app): keep "Retry name" spinning through the retry it started (#1324) (c8eac22)
- fix(gui-app): close compatibility terminals from sidebar (#1323) (bfc2680)
- fix(client,gui-app): stop a transient drop from stranding a stream (#1318) (f79ad86)
- fix(gui-app): rehydrate persisted history search against defaults (#1330) (115ec42)
- fix(gui-app): make the boot card's "Open settings" work during startup (#1328) (4c5dbf6)
- feat(protocol,clients): split host connectivity from plan gating (#1326) (0ad1e99)
- feat(protocol,shared): compress mux bodies, pace bootstrap by credits, recover eagerly (T5) (#1325) (09b3947)
- fix(gui-app,shared): calm the G4 re-point and the cold-start host flick (#1329) (056e3f3)
- feat(protocol,shared,gui-app): bound managed command output windows (#1332) (9b59328)
- fix(protocol): attribute agent-initiated stops (#1333) (de033cd)
- Preserve notification history while projecting current agent state (#1331) (7276d01)
- fix(gui-app): bind notification acknowledgements to local host (#1334) (582f294)
- fix(gui-app): only restore unconfirmed sends from an earlier connection on snapshot (#1335) (d59616b)
- fix(gui-app): link resource-monitor agent rows to their live agents (#1336) (324c0aa)
- fix(gui-app): read shared-subscription state through the store, not at render (#1337) (b623ca9)
- fix(gui-app): make the dead-tile banner ownership- and role-aware (#1338) (5fdee1d)
- fix(gui-app): restore landing surface focus (#1340) (b20d203)
- build(protocol): type-check with the native compiler (#1341) (34a1e77)
- fix(gui-app): state every send the single restoration slot cannot take (#1327) (fa5558e)
- perf(gui-app): stop re-fetching task contexts the cache already holds (#1344) (2190941)
- feat(terminals): add persistent cross-host terminal fleet (#1339) (9188ad7)
- fix(gui-app): rank usage-chart series by spend, and widen to 16 slots (#1345) (3c0953b)
- fix(gui-app): make "Reveal in Sidebar" reveal a workspace file in the Files tree (#1343) (4581f70)
- fix(gui-app): report comm-graph feed health on the Epic dot, not on every node (#1346) (7b1c82f)
- fix(terminals): preserve RC protocol compatibility (#1347) (8ae3ec4)
- feat(protocol,shared,gui-app): stamp cloud-plane health on agent activity (agent.activity.subscribe@1.1) (#1348) (73160ab)
- fix(protocol,shared,gui-app): make dangling-gitlink worktrees deletable and honestly labeled (#1349) (23f8f34)
- fix(client,cli): re-arm host-credential provisioning, single adoption claim, doctor needs-reauth (#1350) (a4ea670)
- feat(protocol,gui-app,shared): terminal-agent records ride the record channel (epic.listTuiAgents + tuiUpsert/tuiRemove) (#1352) (ada496e)
- fix(gui-app): pluralize the epic-sharing invite toast (#1351) (5e44d3a)
- fix(gui-app): one quiet light for remote-terminal coverage, every degraded plane on hover (#1355) (0879600)
- fix(gui-app): keep the live-delivered exit reason so a reaped setup terminal is not reported as a crash (#1357) (5ea9075)
- fix(gui-app): darker means busier in the usage heatmap, and the hover states both metrics (#1356) (56d6e4d)
- feat(gui-app): reach task history from the command palette's Tasks group (#1358) (6942ab1)
- feat(protocol): busyBreakdown on host.status@1.2, restart verdict @1.2, runtime-status awareness (#1360) (ce6df64)
- feat(gui-app): host busy indicators name what is working — agents, terminal agents, terminals (#1361) (0d087dc)
- feat: add client compatibility epoch handshake (#1364) (d849572)
- feat(protocol): export the upgrade-channel contract as runtime values (#1366) (c25c171)
Traycer Desktop 1.2.0-rc.2.