What's Changed
- fix(gui-app): reopen closed terminal tiles from the resource monitor (#765) (7140768)
- feat(gui-app): drag active agents into tiles (#767) (9028205)
- fix(gui-app): split the pane when its only tab is dropped on its own edge (#766) (7eff3ca)
- feat(gui-app): fuzzy-rank @ mention search across kinds (#756) (fbf74e5)
- feat(worktrees): add durable deletion notifications (#768) (e3c28ae)
- fix(auth): stop device-flow poll interval from ratcheting past approval (#772) (d668c6b)
- fix(gui-app): keep routine sync churn quiet (#770) (ae59ffa)
- fix(gui-app): let the keyboard move through a chat transcript (#769) (d9a0e6f)
- fix(gui-app): show full agent title on hover (#774) (3c91a28)
- fix(desktop,gui-app): surface busy-denied host restarts as information, not errors (#775) (0f2af7e)
- fix(gui-app): restore rate-limit profile switching (#777) (120e663)
- feat: publish agent activity on the per-user notification room (#784) (b7f14d1)
- feat: add agent roles feature setting (#787) (b85fea2)
- feat(gui-app): Chrome-style split tab follow-up fixes (#789) (8425222)
- fix(gui-app): roll back orphaned source on strip-placement failure (#791) (91df694)
- fix(cli): execute the host LaunchAgent through a named launcher file so macOS stops calling it 'sh' (#790) (6796b8c)
- fix(gui): un-strand host-scoped queries after a host stall (#794) (0c756c1)
- fix(desktop): name the macOS Login Items entry after the product (#795) (18ee98d)
- fix(desktop): tear down the Windows host autostart on OS-native uninstall (#796) (21b7ea4)
- fix(gui): measure terminal cells with the Unicode 11 width tables (#801) (a8435d4)
- feat(providers): provider-pack-registry protocol fields + renderer surfaces (#611) (3583b85)
- feat(gui-app,desktop,protocol): Devices & Sessions surface and step-up OTP flow (#757) (d766768)
- fix(desktop): re-stage the bundled CLI when the slot binary fails the version probe (#810) (d46b080)
- test(desktop): sandbox the suite's home at the os boundary on every runtime (#811) (5e1b380)
- perf(gui): reconcile epic-tab existence via id-scoped getTaskContexts (#815) (f3f8735)
- feat(gui-app,protocol): add the epic communication graph (#809) (5b0fd8a)
- fix(gui-app): show message edit/delete once the turn actually settles (#819) (be9e256)
- protocol: sync released baseline surface fixture (#780) (4d99a7a)
- chore(deps): refresh bun dependencies (#832) (813b198)
- feat: cloud notification feed over immutable entries (#813) (53a0a40)
- fix(gui-app,desktop,shared): account-bound session repair and calmer sessions UI (#836) (40270dd)
- fix(gui-app,shared,desktop): abort the session-list read on query cancellation (#839) (6c5373b)
- fix(protocol): gate archive legend to host-enriched A2A listings (#835) (fa51537)
- fix(gui-app): recover chats after late wake close (#844) (3be1649)
- clients+protocol: MCP/plugins/skills settings UI, capability-driven contracts, and durability fixes (#284) (289d7f8)
- fix(gui): post-auth naming step on email collision + clearer already-linked guidance (#812) (0f191c4)
- fix(transport): recover post-open host timeouts (#848) (89f06a8)
- fix(gui-app): degrade signed-out providers in the model picker (#849) (ed678b9)
- feat(support): redesign Report an Issue flow (#847) (30b2ea7)
- fix(protocol+gui-app): match model slugs across catalog decoration (#850) (94761cf)
- fix(gui-app): make notification indicators cloud-derived and restore visit-to-clear (#851) (ebb1e65)
- fix(gui-app): preserve terminal mode in new agent dialog (#854) (e2726b9)
- fix(gui-app): let users dismiss an interview that renders no card (#856) (7820ba4)
- feat(protocol,gui-app): sign in to Copilot from a terminal (#853) (b4d78f8)
- fix(gui-app): refresh stale branch labels in the folder-mapping picker (#711) (#852) (8890a54)
- fix(gui-app): restore split terminal drawer resizing (#861) (b12fe08)
- fix(gui-app): stop restore toast replay across task tabs (#865) (b795e7c)
- Support fork-style TUI profile switching (#859) (6ba5a19)
- feat(gui): replace chat transcript scroller with LegendList (#828) (d35b3f9)
- fix(gui-app): keep a compatible host verdict through a failed refetch (#866) (828c849)
- feat(cli): honour HTTP_PROXY / HTTPS_PROXY / NO_PROXY (#869) (3edf2ac)
- fix(gui-app): restore activity presence in cloud mode (#857) (042e4c7)
- fix(gui-app): align split tab top border (#875) (c2100d4)
- fix(desktop): spend the host startup budget on silence, not on wall clock (#868) (3f28c72)
- Restore the Epic PR View, and stop it from hammering GitHub (#870) (717f4e1)
- fix(gui-app): align workspace refresh footer (#878) (efd0a89)
- fix(gui-app): preserve history state across modal promotion (#877) (a3208b7)
- fix(gui-app): navigate TUI notifications to terminal agents (#879) (71c46fa)
- fix(gui-app): restore compact communication graph action (#881) (ed6ce0d)
- feat(gui): redesign epic sidebar section headers (#882) (1b4f1cd)
- feat(gui-app): add Slack-style code fence input (#884) (145b8b9)
- fix(desktop): relay foreground notifications safely (#887) (b440455)
- fix(gui-app): harden minimap pane interactions (#886) (4e2197c)
- feat(protocol): add host-local agent activity stream (#883) (ee5f9a4)
- test(gui-app): cover active child presence in lower dock (#885) (826a5a2)
- feat(gui-app,protocol,cli): remove Epic Mode (#749) (3ad1529)
- chore: refresh bun dependencies (#893) (68fee2e)
- fix(gui-app): make the PR owner list scroll, nest and survive a cold session (#894) (ac057cd)
- fix(protocol,cli): require full access for A2A agents (#895) (95df7ef)
- fix(gui-app): size the PR owner popover to its content (#896) (12b3bb8)
- feat(terminal): show live directories in session titles (#891) (8ad9e91)
- feat(gui-app): add bulk chat archive selection action (#888) (04b2f1a)
- feat(gui): harden chat scroller lifecycle and surface hosting (#903) (5e54b40)
- fix(gui-app): highlight active terminal navigator item (#904) (9b33053)
- feat(gui-app): add resource monitor search (#902) (457d79c)
- feat(gui-app): show live activity in a bounded, tail-following window instead of a jumping standalone block (#899) (2bb6dde)
- feat(agent-activity): adopt host-selected activity planes (#906) (636635d)
- feat(gui-app): surface archive refusals, and keep the reason keyboard-reachable (#897) (dc04202)
- fix(gui-app): chip a leading $ skill trigger on submit (#898) (7c06d24)
- fix(gui-app): make steer settings conflict dialog keyboard-confirmable (#908) (4a5a1ae)
- feat(remote-host): E2E remote-host transport, mux codec, and client UI (#188) (f6e802b)
- fix(gui-app): require a real token boundary across a node split (#909) (5335748)
- fix(gui-app): preserve chat scroll intent across remounts (#907) (075a8cc)
- feat(gui): add global prompt stashing (#911) (f6c94e5)
- fix(desktop): recover a reinstalled host instead of stranding tabs on an unavailable card (#913) (65fc3d7)
- fix(gui-app): make communication-graph edges reachable, and stop the notice sender claiming an anchor (#914) (d8a44af)
- fix(gui-app): fit communication graph viewport (#920) (d6933d7)
- fix(gui-app): retain resource monitor search (#923) (3640b7f)
- feat(protocol,gui-app): durable background cards for backgrounded commands (#918) (a8c7aa5)
- fix(gui-app): polish chat minimap and lower dock interactions (#924) (9e5765d)
- test(gui-app): de-sleep chat-messages scroll-policy suite (#927) (00e82e4)
- feat(protocol,gui-app): managed-command Monitors & Shells — delivery chips, UI surface (#855) (51dee71)
- feat(gui-app): attach dragged items to composer (#930) (b496481)
- fix(gui-app): restore MRU tab close fallback (#937) (d21a6e0)
- fix(gui-app): cover chat composer compositing seam (#944) (d561e1d)
- feat(gui-app): create terminals from CMD-T workspace search (#925) (3f6f500)
- test(gui-app): virtualize chat messages test clock (#947) (e2b4671)
- test(gui): cover shared Claude limits in profile prompts (#929) (1cb7b0c)
- fix(gui-app): recover notification feeds after client closure (#949) (9bc6b91)
- refactor(gui-app): simplify chat scroll behavior (#946) (bc51fef)
- fix(gui-app): allow unchanged inline message edits (#936) (50c8ef5)
- fix(gui-app): match the terminal scrollbar to the app scrollbar theme (#958) (07a9dfe)
- fix(gui-app): keep an activity group's reasoning header stable, and its summary honest (#959) (0ed93ea)
- fix(gui-app): isolate shifted shortcut hints (#969) (7afe887)
- fix(gui-app): stop reasoning-body clicks acting on controls inside the trace (#968) (5f0a8ed)
- fix(gui-app): stop the 15s host-directory poll from churning every consumer (#971) (056b42d)
- feat(protocol,gui-app): overhaul the Providers settings pane, and give plugin rows real artwork (#967) (a7616d1)
- fix(desktop): stage bundled CLI when PATH traycer fails the version probe (#974) (886a74f)
- feat(gui-app): persist reading positions globally (#972) (fea4964)
- feat(protocol,gui): surface git watcher health on git.subscribeStatus@1.3 (#965) (011d854)
- feat(gui): search and enabled/disabled filter for the Providers rail (#976) (b6e684e)
- fix(gui-app): make host-failure and agent-error reports carry their evidence (#981) (d0dc974)
- fix(shared): reset stream loop counters on delivered data, not subscribe-ack (#978) (71b9c80)
- fix(gui-app): keep host-recovery sweeps from re-probing harness catalogs (#977) (ca9f801)
- perf(gui-app): stop the renderer accreting multi-GB of Yjs structs and transcript copies (#966) (0d15a80)
- docs(gui-app,shared): correct the catalog carve-out comments (#983) (8f21d50)
- fix(clients): read negotiated schema versions per session, not per client (#986) (a2dbb42)
- fix(gui-app): restore sidebar item separators (#994) (4c9642d)
- fix(gui-app): close the window for the sole blank Start Page (#1007) (54e4e43)
- fix(gui-app): scope select-all to the active tile (#592) (#1004) (29bd716)
- fix(gui-app): prevent tooltips from swallowing folder-picker clicks (#1008) (802c8dd)
- fix(gui-app): preserve prompt stash editor identity (#1010) (a71049a)
- fix(gui-app): report a workspace-file transport failure against the host (#1013) (dd2f322)
- feat(gui-app): adopt Tailmark for streaming chat markdown (#1016) (a12bcf1)
- feat(gui-app): give a dictation failure a class it can be triaged by (#1017) (f1ffa17)
- feat: add cloud-authoritative Communication Graph (#948) (89a2661)
- feat(protocol,gui-app,traycer-cli): read-only terminal access for agents (#997) (ea05857)
- fix(desktop): don't wait 60s for a host that was never installed (#1018) (1ff64fd)
- fix(cli): drain the event loop instead of process.exit on win32 exit abort (#1019) (f54e974)
- fix(gui-app): retain host contexts through Fast Refresh (#1028) (6940755)
- test(gui-app): de-flake and deepen test drivers (#1031) (19f0390)
- test(gui-app): remove redundant browser API imports (1/2) (#1032) (6c3dcec)
- test(gui-app): remove redundant browser API imports (2/2) (#1033) (41ea759)
- fix(gui-app): stop a Windows path link reloading the renderer (#1039) (272ed03)
- fix(cli): relaunch a crashed host instead of leaving the machine hostless (#1030) (e271685)
- feat(protocol,gui-app): migrate to Diffs 1.3.1 and add safe in-place editing (#933) (1cafd58)
- fix(protocol): move two fields off the lines host-v1.1.10 froze (#1043) (1021eb9)
- protocol: sync released baseline surface fixture (#1038) (a6548e0)
- feat(gui-app): one host picker for all of Settings (#1040) (4b278d2)
- fix(gui-app,protocol): Providers settings UX fixes and provider parity (#1046) (460ed1c)
- feat(gui-app): fuzzy-rank the slash-command menu + step-aware picker height (#1045) (1956743)
- fix(gui-app): preserve chat follow through layout changes (#1042) (549bc36)
- feat(protocol): add a config_unreadable native error code (#1050) (edb68c3)
- test(gui-app): fire a real wheel before asserting a follow departure (#1052) (f59cc00)
- feat: chat-anchored monitors & shells with same-turn delivery wire (#1009) (8d516c8)
- feat(gui-app): Cmd/Ctrl+Enter primary-action shortcut, scroll-to-end pill redesign (#1057) (c4038ba)
- fix(gui-app): gate notification row actions on unread state (#1056) (50975b9)
- feat(gui-app): add archived chat indicators and filters (#1060) (2509500)
- feat(protocol,gui): add the huggingface harness (#1011) (61fedae)
- feat: remote folder picker over workspace.browseFolders (#1054) (10c6744)
- fix(clients): remote-session dial visibility, stranded-query recovery, keep-warm (#1048) (3871835)
- feat(protocol,traycer-cli): frozen-prompt contract and promptSubmitted hook pull (#1063) (6c45acd)
- feat(protocol,gui-app): add per-repo worktree branch-prefix override (#1067) (0821f0e)
- fix: active tile change on tab drop, infinity rotation of empty pane navigation (#1068) (0c5c8b3)
- feat(gui-app): open owner-hover PR pills as native detail tiles (#1069) (dc19fce)
- fix(gui-app): keep active minimap row visible (#1041) (9e2b28c)
- fix(gui-app): open Communication Graph details at latest event (#1070) (388f03a)
- fix(gui-app): preserve resolved prompt icons (#1073) (e6f326b)
- feat: unify monitors and shells into notifying shells (#1065) (e8206d4)
- feat(protocol,cli): add
agent.fork@1.0andtraycer agent fork(#1077) (863ffaf) - feat(agent): expose the resolved run config on agent list rows (#1081) (ebc2841)
- fix(gui): accept highlighted mention with Enter (#1082) (b6a94b0)
- fix(gui-app): stop cross-window relays toasting the focused chat (#1078) (8d2e85b)
- fix(protocol): projection-feasibility additivity checking, with direction-aware response strictness (#1080) (d3c908e)
- fix(gui-app,ci): run Vitest under Node and capture why shard jobs get killed (#1083) (67cba6c)
- fix(notifications): add atomic cloud mark-all-read (#1088) (db2afa4)
- fix(gui-app): align TUI tab completion icon (#1100) (99b046e)
- fix(transport): publish remote hosts' negotiated manifests + split the mux handshake manifest (#1093) (2d7c8f6)
- fix(desktop): stop the removal sentinel's initial load overwriting a completed mark (#1092) (6367d3a)
- test(desktop): observe causal boundaries instead of inferring them from time (#1101) (56d401d)
- fix(worktree): retry generated branch collisions through git (#1104) (863c54a)
- fix(protocol): persist Claude wake retry deadline (#1105) (17058e0)
- fix(gui-app): isolate landing terminal layout per start page (#1107) (9f6278d)
- feat: usage analytics — optional host.usage.summary RPC + usage surfaces (#1102) (e810d6c)
- chore: refresh bun dependencies (#1109) (7a839b4)
- fix(gui-app): coordinate landing terminal focus intent (#1111) (6c97fa5)
- fix(gui-app): keep multi-line pastes inside composer code blocks (#1116) (55a1511)
- fix(gui-app): smooth notification mark-all-read updates (#1117) (ed6fafa)
- Chat-sync v2: host-authoritative chats with cloud backup, unified sidebar, identity pool, and clone-carries-history (#951) (4f37e7e)
- fix(gui-app): stabilize filtered worktree rows (#1121) (a815ce8)
- fix(gui-app): resolve notification outcomes by entity (#1120) (7c905cc)
- fix(gui): polish image rendering (#1119) (f396dd9)
- fix(protocol,clients): make the shared credentials session self-healing and single-spend (#1123) (36f0795)
- feat(providers): let users pick, keep and pause provider CLI versions (#1103) (6d2a24a)
- feat(gui-app): agent mention rows — last-activity time, archived demotion and badge (#1127) (dd6c6ba)
- fix(gui): polish scroll-to-end pill (#1129) (a032ee8)
- feat: Model Providers — wire contract + settings tab (the visual layer over opencode auth login) (#1058) (d424768)
- feat(gui-app): copy details action in About Traycer footer (#782) (8e6627b)
- feat(clients,protocol): remote-host parity — switching, repo resolution, config/diagnostics, lifecycle, overview (#1133) (777ad89)
- fix(gui-app): survive auth changes during the router's initial load + hold TanStack router at pre-refresh pins (#1136) (ed5388e)
- test(gui-app): pin that an env rename survives the panel unmount (#1137) (0215fe6)
- feat(gui): usage dashboard feedback — ECharts area chart, readable axis, by-chat table (#1115) (d5a4dfc)
- fix(gui-app): restore worktree menu keyboard navigation (#1139) (5709a7b)
- feat(clients,protocol): multi-host chat records — delta stream, retraction UX, richer rows (#1134) (692fabd)
- feat(composer): mention GitHub pull requests and issues (#1128) (fa18929)
- fix(gui-app): prevent chat follow correction races (#1140) (3260958)
- fix(gui-app): surface local failures in cloud notifications (#1138) (4fc70b3)
- fix(gui-app): acknowledge Q&A notifications by read state (#1142) (7ddc7ed)
- feat(gui-app): inline image previews for workspace and git diff tiles (#1144) (5732b00)
- fix(gui): draw nothing for an all-zero chart series (#1146) (060a29b)
- fix(gui-app): focus resource search on open (#1145) (9a050f8)
- chore(deps): refresh bun dependencies (#1152) (dd37352)
- feat(protocol,gui-app): chat sharing — visibility RPCs + owner-side controls (#1151) (388c23f)
- fix(gui-app): cloud chat rows render the active-tab highlight (#1153) (67aa09a)
- fix(gui-app): reveal graph agents at creation event (#1155) (a712f93)
- fix(gui-app): resolve abbreviated A2A receiver ids (#1157) (e472019)
- fix(gui-app): prevent hidden chat geometry poisoning (#1159) (8a23c0a)
- feat(protocol,shared): whole-body mux chunking for oversized envelopes (#1160) (af7f9a0)
- feat(clients): host liveness via hosts DTO — retire the presence heartbeat (#1154) (714b92e)
- feat(protocol): chat-sync persistence schema 1.1 — CDC cut plan and cohort membership (#1164) (188eb54)
- fix(gui-app): restore task notification rollups (#1161) (6e41843)
- fix(gui-app): persist collapsed sidebar state (#1162) (0e51a99)
- fix(gui-app): keep minimap navigation clickable with text selected (#1165) (99e5adf)
- fix(gui-app): simplify epic usage windows (#1163) (86934eb)
- feat(gui-app): filter task agents by ownership (#1166) (bb2dc36)
- fix(gui-app): preserve chats during host recovery (#1167) (d83bfd0)
- feat(gui-app): group the usage chart by model (#1168) (72aae6c)
- feat(gui-app): rework host Overview and install versions from a list (#1156) (ae445fd)
- feat(protocol,gui-app): let host.service.status answer externally-managed (#1171) (d552254)
- fix(gui-app): preserve delayed scrollbar departures (#1174) (ad605aa)
- chore(deps): refresh bun dependencies (#1175) (1a01c96)
- fix(protocol,gui-app): restore the hover card's run settings, split its workspace empty states (#1176) (788a5e2)
- fix(gui-app): give resolved PR findings their own collapsed rows (#1177) (422bd2b)
- feat(protocol,gui-app): epic.readChatAttachment - chat-plane image byte channel (#1170) (3d9f632)
- fix(gui-app): clear prompt glyphs when notifications are read (#1180) (be0e09f)
- fix(gui-app): keep dismissed worktree progress quiet (#1181) (f3a6598)
- feat(gui-app): let the epic usage chart group by harness or model (#1184) (7aa7ec5)
- fix(gui-app): make pending queue resume reversible (#1182) (6d72a14)
- fix(gui-app): label worktree hover metadata as a snapshot (#1185) (5e26cc2)
- feat: skills settings redesign — smart import, picker, shared storage fan-out UI (#1173) (e33124b)
- feat(gui-app): surface chat backup status in header (#1186) (22c33a3)
- fix(gui-app): reduce retained tab-switch work (#1187) (f23ba9a)
- fix(gui-app): clarify workspace snapshot timestamps (#1188) (bef6487)
- fix(gui-app,desktop): prevent renderer memory leaks (#1192) (eb0eb63)
- feat(protocol,gui-app): split pr.getLocalDiff into a summary frame + per-file diffs (#1183) (4b1dd27)
- feat(gui-app): search agents by title, ungate artifact search (#1190) (e338ba4)
- feat(protocol,gui-app): surface OpenCode Go usage limits (#1191) (a9d8e0c)
- feat(clients): host stop/restart --force + restore Overview force-restart offer (#1179) (860016c)
- feat(gui-app): scope the resource monitor to a picked host (#1194) (f8ba2f8)
- fix(gui-app): derive the global-resources verdict from the stream itself (#1199) (d473564)
- fix(gui-app): distinguish silent autonomous resumes (#1178) (fac2062)
- feat(protocol): durable turn tail on Claude session anchors (#1172) (edea3c9)
- feat(gui-app): wire the PR diff tile into bundle-find (#1200) (c8d2cde)
- feat(gui-app): date a published copy in the locked-composer sentence (#1189) (3dcd300)
- refactor(gui-app): derive chat announcements from transcript baseline (#1208) (3ba45f7)
- feat(gui-app): add an artifact heading minimap (#1193) (3ad0ad4)
- fix(gui-app): resolve composer host RPCs through the composer's target host (#1206) (bf662d2)
- feat(protocol,gui-app): byte-exact non-UTF-8 paths across the split PR diff (#1210) (61d9881)
- feat(gui-app): rebuild the usage dialogs as fixed-frame mini-dashboards (#1212) (ca23605)
- perf(gui-app): scope the model catalog fan-out to the app-load fill (#1217) (3cf2a07)
- fix(shared): bound cloud chat part downloads (#1196) (9e2bfa0)
- fix(gui-app): make the usage-dialog skeleton visible in preset themes (#1218) (ffdd4a3)
- fix(gui-app): avoid redundant rate-limit refreshes (#1222) (0d2dc2e)
- feat(gui-app): cooperative-first Restart Host from the menu and tray (#1220) (f5eb24a)
- fix(gui-app): key composer last-used state and workspace folders by host (#1223) (dfeb9dc)
- fix(gui-app): stop muted fills vanishing on raised surfaces in preset themes (#1221) (8525cb0)
- feat(gui): add navigation and resource keyboard shortcuts (#1219) (47cf4e2)
- fix(gui-app): hide artifact search on an Epic with no artifacts (#1209) (7c3df7a)
- feat(gui-app): refresh sweep worktree checks (#1225) (8d7a3e3)
- fix(gui-app): distinguish terminal failure notifications (#1211) (7ead719)
- feat(protocol,gui-app): unify A2A capability gates (#1224) (be9ccb1)
- feat(gui-app,protocol): shell/monitor UI consistency — shared vocabulary, preview tabs, floating window chrome, availability model, start/restart cards (#1149) (7edf34a)
- fix(gui-app): key worktree intent by host, remembered and staged (#1226) (d2bc86b)
- fix(gui-app): preserve diff editor focus (#1207) (3f64372)
- fix(gui-app,protocol): fork a chat on the host you actually picked (#1227) (ae62f0f)
- fix(gui): stop the fork dialog waiting forever, and block a doomed submit (#1230) (0b61c2d)
- fix(gui-app): stamp inherited workspace seeds with host identity (#1231) (d4a0e80)
- fix(protocol): make residual capture idempotent; heal nested legacy bags on decode (#1233) (59da02e)
- feat(protocol,gui-app): managedCommand.deliverHeld + held updates on chat.subscribe (#1232) (a71f93b)
- chore(deps): bump electron to 42.9.1 and concurrently to 10.0.5 (#1235) (e9bd2c5)
- fix(gui-app): name the missing worktree in the composer hint (#1238) (5e65c66)
- fix(gui-app): keep artifact minimap ticks within gutter (#1237) (23493f5)
- fix(gui-app): keep the landing terminal mounted across tab switches (#1241) (5c5d969)
- refactor(protocol): collapse the nine unreleased per-method version pairs before release (#1239) (3de9c5a)
- refactor(protocol): rename the v7.0 pre-image schemas so the V70 names are free (#1247) (973f7ba)
- feat(gui-app): export usage dashboards as shareable images (#1240) (e0e1d7d)
- fix(gui-app): retain recently-active pane chats instead of remounting them (#1248) (c241064)
- fix(gui-app): keep unanswered-question glyphs lit, and clear notifications in both modes (#1249) (3f230e1)
- fix(gui-app): inherit current color on primary action shortcut keycaps (#1251) (00a7147)
- fix(protocol): chat-sync preservation — null reader floor, publisher-derived invariant, drop the dead clone seed (#1252) (75fe3d1)
- fix(gui-app): confirm a forced restart in Settings, as the Help menu already does (#1253) (185b555)
- fix(gui-app): tolerate an assistant record that never carried imageResolutions (#1254) (7f0bfe3)
- docs(gui-app): correct the decision-#17 premise left behind by pane chat retention (#1250) (bf9f4a9)
- fix(gui-app): harden diff-edit browser regression startup (#1260) (55ea7d2)
- feat(protocol,gui-app): session-scoped background stop for version-gated commands (#1198) (0025293)
- fix(gui-app): keep paused comm-graph playback static and auto-pan to senders (#1261) (42fb0e1)
- chore(deps): bump @legendapp/list to 3.3.4 — streaming transcript overlap fix (#1255) (3ee0ddb)
- fix(gui-app): use conflict-free history navigation shortcuts (#1262) (93ff565)
- fix(gui-app): claim macOS Command-Up/Down for chat transcript boundaries (#1263) (ff37112)
- feat(protocol,gui-app): host-authoritative plain terminals (#1244) (6a67a20)
- fix(gui-app): close terminal authority review gaps (#1264) (b09605f)
- fix(gui-app): clear terminal retry state after recovery (#1266) (de8664a)
- perf(gui-app): serve worktree branch search from a substring fast path (#1269) (02369f0)
- feat(gui-app): add a notifications keybinding and keyboard feed traversal (#1270) (bbce4f0)
- fix(gui-app): make provider usage refresh reliable (#1268) (18b1e32)
- feat(protocol,gui-app): Cursor account rate-limit indicator (#1265) (0f154d7)
- feat(gui-app): cycle History search matches with the arrow keys (#1272) (698ce7b)
- fix(protocol): allow arbitrary PR detail coordinates (#1267) (e91130f)
- fix(gui-app): preserve LegendList canceller receiver (#1273) (a954fd2)
- fix(gui-app): settle a provider sign-in without the dead-end acknowledgment (#1275) (c53b56c)
- feat(gui-app): share one rail-and-list design for chat and artifact minimaps (#1278) (05735c8)
- Host lifecycle redesign — selection authority, silent failover, pinned surfaces, fleet cadence (OSS leg) (#1243) (22ffa61)
- fix(gui-app): allow editing chat history while messages are queued (#1279) (fbfd7f5)
- feat(protocol,gui-app): say why a host.restart refusal is busy (#1281) (8a86833)
- fix(protocol,gui-app): carry the declared union discriminator; retain a dirty live handle on an involuntary release (#1280) (e74da71)
- fix(protocol,gui-app): make a rate-limit refresh actually refresh (#1277) (fc686c7)
- feat(gui-app): cmd/ctrl-click a PR pill to open it on GitHub (#1283) (d364ba3)
- fix(gui-app): keep a forked agent's title instead of "Untitled agent" (#1282) (ca55d5d)
- fix(gui-app): one boot card for every face of a launch (#1284) (37c09a3)
- fix(gui-app): keep minimap selection visible (#1286) (b06b463)
- fix(desktop,gui-app,shared): make the local host's lifecycle target-independent and self-healing (#1285) (4bb8f45)
- fix(gui-app): give the failed-attempt panel a read it started itself (#1289) (b5092ef)
- fix(gui-app): strip the managed-CLI version popover to its list (#1290) (6e3ee00)
- 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)
- fix(gui-app): stop the legacy-terminal import toast storm (#1370) (792a0ed)
- fix: make compatibility recovery epoch-aware (#1372) (927af1d)
- docs(gui): direct WSL shell users to WSLg (#1374) (0183858)
- fix(gui-app): recover reaped terminal handles (#1373) (1279b9b)
- fix(gui-app): make Add Host success flow actionable (#1377) (85ee596)
Traycer Desktop 1.2.0.