Traycer Desktop 1.3.0-rc.1
Pre-release
Pre-release
What's Changed
- fix(gui-app): clarify nested Git module changes (#1359) (efda273)
- fix(gui-app): keep created worktrees selectable during setup (#1380) (497106b)
- feat: auth-aware harness enablement (protocol v7.1 + GUI surfaces) (#1354) (3fb6c9d)
- feat(protocol): name the artifact projection dirnames and gate dot-prefixed chain segments (#1229) (ffcd474)
- fix(gui-app): move collapse actions to overflow menus (#1386) (b85f830)
- fix(gui-app): standardize refresh controls (#1388) (b244ec4)
- Mobile app (#572) (b8ef446)
- fix(updater): follow release candidate lines to stable (#1401) (8077840)
- protocol: sync released baseline surface fixture (#1385) (a082498)
- feat(gui-app): give the mobile tab switcher a Sharing category (#1412) (54557e2)
- fix(mobile): stop the switcher's category bar scrolling vertically again (#1416) (28800fc)
- fix(shell): flag a WSL that cannot host a terminal instead of offering it (#1378) (eed54b3)
- fix(protocol): move wslHealth to config.shell.listDetected v1.1 (#1426) (dbbe421)
- feat(gui-app): redesign the remote folder picker around search and one path line (#1410) (831dbd6)
- fix(git-diff): mobile parity for the epic canvas diffs surface (#1413) (36a567e)
- fix(gui-app): hide desktop-only Settings controls in the mobile app (#1431) (3d2ccf4)
- fix(gui-app): allow closing terminal tabs bound to an offline host (#1418) (2046ac4)
- fix(gui-app): keep dialog actions above the soft keyboard (#1430) (86fed58)
- docs(gui-app): correct the tabs variant-specificity narratives (#1429) (ce9c280)
- fix(gui-app): hide the Link-a-phone Settings section in the mobile app (#1440) (60509f1)
- feat(gui): add trustworthy interview history review (#1422) (661e32e)
- fix(interview): scope lifecycle projections (#1442) (9970fc3)
- fix(gui-app): stop reading an absent listing as proof a session is dead (#1439) (2f7c881)
- feat(mobile): let a phone read and reply to comments (#1432) (4fa4685)
- fix(gui-app): gate search autofocus on pointer capability (#1435) (487ee96)
- fix(gui-app): wrap and scroll the file viewer sanely (#1445) (9c6155a)
- feat(mobile): bring the Terminals tab to desktop parity (#1415) (e3942c9)
- feat(gui): unify folder picker across hosts (#1443) (cf8b32e)
- feat(reasonix): add harness protocol and GUI support (#1438) (662e438)
- feat(mobile): tap-to-replace tile model across the switcher (#1447) (e0a34e3)
- test(gui-app): pin durable promotion when one preview chat recycles another (#1451) (b8707ad)
- fix(gui-app): stop drag sources from eating touch scroll (#1448) (a9a54df)
- chore: update dependencies (#1452) (586e96e)
- fix(gui-app): drop the status pill tooltip below the title bar (#1425) (042fd0b)
- fix(gui-app): keep light-mode terminals readable for dark-assuming TUIs (#1379) (cae1a8c)
- feat(gui-app): add an Open file action after saving to disk (#1376) (988a9a7)
- feat(gui-app): configurable profile eligibility controls (#1441) (ebeb8d2)
- feat(gui-app): default sharing to editor, hide artifact search on read-only Epics (#1456) (903b669)
- feat(protocol): lifecycle minors — subscribe viewer intent, WORKTREE_BUSY holders, delete stopOwners, submit workspace intent (#1382) (2635ce3)
- feat(terminal): spawner theme hint on terminal.create@2.1 + single-authority OSC 10/11 replies (#1424) (ee3e35a)
- feat(gui): give the shell log its full width back (#1446) (4a6b859)
- feat(gui-app): copy/download actions on expanded user-attached images (#1444) (bef8f10)
- fix(gui): use official Reasonix icon (#1463) (c603386)
- feat(gui): redesign remote folder picker (#1465) (3d6aae9)
- feat(gui-app): pass Ctrl chords through to focused terminals on Windows/Linux (#279) (b443c1c)
- build: migrate tooling to Oxlint and Oxfmt (#1462) (0041bbf)
- feat(gui): unify opener trees with sidebar views (#1471) (c739b88)
- feat(gui-app): find in the Monitor tile's shell output (#1468) (c7bc4f3)
- fix(notifications): carry host.operation.finished on the cloud feed via @1.1 (#1473) (ee65c9a)
- fix(gui-app): stop external epic resolution from drifting the URL to / (#1474) (20dceb7)
- feat(gui-app,protocol): simplify harness enablement to a plain sticky toggle (#1472) (c0f3d53)
- fix(protocol): restore workspace agent selection guides (#1417) (589a425)
- Match Chrome tab drag behavior (#1477) (f6a1f35)
- feat(protocol): per-artifact epic sync — multi-major handshake, epic.subscribe@2, projected reparent (#1458) (3921e57)
- fix(gui-app): keep Overview busy chip until host.status swaps in (#1467) (34064a1)
- fix(gui): keep fresh shell output at live tail (#1479) (1b112ab)
- feat(gui-app): tag keep-warm terminal.subscribe attachments as cache (#1466) (548555c)
- feat(gui-app): reveal a PR's owning chats on row hover (#1484) (ffd0890)
- fix(gui): stabilize in-app Git diff editing (#1482) (8f9bffb)
- fix(gui-app): supersede deferred sticky-scroll end corrections on reader scroll (#1483) (16dd883)
- feat(mobile): bring the switcher's Agents and Artifacts to sidebar search/filter parity (#1449) (f1833ae)
- fix(notifications): show task title in cloud alerts (#1488) (d59d00a)
- fix(notifications): use worktree lifecycle glyphs (#1492) (8f03397)
- fix(gui-app): open a freshly-created epic on its create host (#1486) (cc07fd1)
- fix(gui-app): show cached Sweep snapshot while revalidating (#1493) (7ada6fb)
- fix(gui-app): reveal agent tabs in sidebar (#1487) (848ce6c)
- fix(mobile): recover the relay session fast after an app switch (#1475) (7ec99c2)
- fix(gui-app): mobile file tree matches the desktop tree (#1476) (91639e9)
- fix(gui-app): keep shadow-rooted tree scrollers touch-scrollable in modal sheets (#1495) (50a0107)
- feat(gui-app): worktree rebind as a draft with teardown disclosure (T10) (#1496) (f41b430)
- feat(protocol): worktree.listHolders minor — typed holder read (T7) (#1498) (8e2b691)
- feat(gui-app): confirm force-delete of busy worktrees with teardown disclosure (T8) (#1497) (078abd6)
- feat(mobile): mount desktop's chat tree in the switcher's Agents tab (#1494) (272e495)
- fix(gui-app): restore folders per composer host (#1500) (6f80539)
- fix(gui-app): focus provider settings from model picker (#1499) (0f52ddf)
- fix(gui-app): align active agent activity glyphs (#1507) (ba40f70)
- test(gui-app): keep PR refresh detail-only (#1510) (729266a)
- fix(cli): make host status/doctor observational and port repairs fail safely (#1506) (9979f27)
- fix(gui-app): rebind-draft polish — always-editable, revertible, crash-consistent (T12) (#1514) (3a17315)
- fix(shared): accept in-flight chunk evidence at the remote ready boundary (#1509) (e719b71)
- fix(gui-app): keep the mobile header slot with the surface that claimed it (#1511) (7861433)
- feat(protocol,gui-app): mobile client identity + store-aware update-required remedy (#1515) (f63ef25)
- fix(gui-app): publish the landing terminal toggle only on the surface it acts on (#1512) (81e3349)
- feat(browser): add the end-to-end in-app Browser (#1491) (09c6f1b)
- refactor(clients): share the worktree row-state derivation with the GUI (#1516) (5696d42)
- fix(cli): make host lifecycle commands say what they actually do (#1504) (d37e54c)
- feat(host-update): durable update attempts, dispatch ACK, and compatibility cutover (#1480) (af48205)
- feat(gui-app,desktop): centre-resolved tab drag zones, draft tear-off, edge-split removal (#1527) (7bae68b)
- feat(gui-app): carry the screen with the finger on a mobile history swipe (#1513) (5d2dfae)
- fix(gui-app): reveal full paths on hover in the folder pickers (#1529) (2574b4d)
- feat(protocol,gui): the windowed chat transcript — bounded snapshot, row skeleton, on-demand ranges (#1459) (91acebe)
- fix(gui): flag edge whitespace in an env override instead of trimming it (#1455) (94ba7f1)
- fix(gui-app): resolve the mobile header's right actions from the presented surface (#1524) (fb70c3b)
- feat(protocol): holder identity + revision-consent contract on worktree force-delete (T13A) (#1517) (7d8ca01)
- fix(gui-app): pin the manual link-code button's label color on the hero (#1536) (4b11cd3)
- fix(gui-app): align usage legend colors with harness brands (#1533) (f614006)
- fix(gui-app): allow new Epic chats to switch hosts (#1535) (3b4ba73)
- fix(gui-app): apply an appended index delta whose rows the snapshot already counted (#1541) (f92ab20)
- feat(gui-app): support managed Grok profiles (#1544) (16c3cb5)
- fix(gui-app): preserve system overlay after task creation (#1543) (ebfabb0)
- fix(gui-app): preserve cross-host chat ownership (#1547) (909cf29)
- fix(gui-app): gate sends on a real rebind draft, not on holders (T14) (#1545) (e43b785)
- fix(protocol): sanitize holder-error revisions and unknown failure codes (#1548) (50c0d5b)
- feat(gui-app): two-step sweep dialog with consent-checked execution (T13B) (#1518) (5e13f23)
- test: kill five CI flake classes at their races (desktop timers, Chrome launcher, cli-binary, darwin log replay) (#1552) (f022940)
- fix(gui-app): stabilize windowed transcript hydration (#1546) (95cfe2a)
- fix(gui-app): copy raw artifact code blocks (#1554) (5562fed)
- feat(gui,protocol): disclose the env credential that authenticated a turn (#1550) (1767598)
- fix(gui-app): add the required envCredentialVar to the transcript fixtures two sibling PRs crossed on (#1559) (1a56c3d)
- feat(mobile): make save and export reach the phone's share sheet (#1538) (3dd4676)
- fix(gui-app): reach hover-only paths with a press on touch (#1558) (d73cb32)
- fix(mobile): sign device-flow sessions in as the mobile client kind (#1525) (5b244d3)
- test: share the hardened Chrome launcher across the browser regression drivers (#1561) (92d66fc)
- feat(gui-app): add configurable notification chimes (#1551) (99ed075)
- feat(gui-app): sweep select-all includes in-use worktrees (#1562) (255f1b7)
- fix(desktop): repair Windows, differential, and Linux auto-update failures (#1565) (7410f89)
- fix(gui-app): hand bare-key handlers off in a layout effect so keys never run a stale closure (#1568) (76847bd)
- fix(gui-app): make chime previews immediate (#1566) (bd850c8)
- fix(gui-app): keep the windowed transcript rendered through streaming and rebases (#1555) (eb899d9)
- fix(gui-app): tolerate Pierre tree zoom rounding (#1564) (ff4ab57)
- feat(clients): detect system-clock skew and park streams instead of going terminal (#1567) (a52fa6c)
- feat(gui-app): ask which host before sweeping a multi-host task (#1569) (dc86af4)
- feat(protocol,shared,gui-app): cross-host terminal-agent roster — origin-discriminated records, adopt-only remote tiles (#1570) (4fca857)
- fix(gui-app): autofocus sidebar search (#1572) (107b33e)
- feat(gui-app): mount the in-app Browser on mobile (#1539) (e11e4e6)
- feat(gui-app): run a confirmed sweep in the background (#1578) (00ebb03)
- fix(gui-app): keep dismissed update progress quiet (#1580) (22ab5bd)
- feat(protocol): add the generic harness_message provider-notice kind (#1582) (bf66581)
- feat(gui-app): add /btw and /side to fork a chat into a side chat (#1581) (ee0d594)
- fix(gui-app): flatten notification chime choices (#1584) (fab42de)
- fix(gui-app): stop showing a pre-restart runtime disposal as an answer failure (#1591) (413264a)
- fix(desktop): run the dev Electron loop on Linux; warm up the gui-app dev server (#1526) (2557717)
- fix(desktop): disable the dev sandbox as root; drop the removed ozone hint (#1592) (7bf647e)
- fix(gui-app): keep onboarding row controls readable on dimmed rows (#1593) (492557a)
- fix(gui-app): show true chat activity times (#1597) (cd446a8)
- fix(gui-app): remove typed worktree sweep confirmation (#1598) (36378bc)
- fix(gui-app): contain epic-session crashes at the hosted-tile seam (#1601) (74c12de)
- fix(gui-app): open modified links externally (#1600) (b007bc4)
- feat: session import - bring Claude Code and Codex sessions into Traycer (#1342) (e514fc1)
- fix(worktrees): link single-task sweep notifications (#1602) (a7f8b48)
- feat(gui-app): make Sweep's host a control in the confirmation, not a step in front of it (#1604) (ae16231)
- feat(gui-app): give the installed mobile app its own onboarding tour (#1603) (32c0d03)
- fix(gui-app): restore task-wide rate-limit switching (#1606) (ec0e55e)
- fix(gui-app): suppress retained idle update banner (#1607) (f82c251)
- fix(gui-app): keep a live steer split together when the skeleton predates it (#1608) (47c52cb)
- fix(gui-app): push settings sections on the mobile list instead of replacing (#1605) (c09d36d)
- feat(gui-app): nest the mobile artifacts list (#1615) (c09c8d0)
- fix(gui-app): keep agent names visible and tappable in A2A card headers (#1617) (0a62c02)
- feat(browser): WebRTC display plane, DataChannel input, materialization-time tab placement (#1613) (e79301e)
- fix(gui-app): rename the Link a phone surface to Link mobile app (#1614) (1fa23d6)
- fix(mobile): give the usage export a working download and a share sheet (#1619) (3b30c07)
- fix(gui-app): keep generated titles in history (#1626) (421df7f)
- fix(gui-app): recover host queries when endpoint appears (#1611) (0c30315)
- fix(gui-app): stop stale tile-focus replaces from swallowing tab activations (#1627) (c61f979)
- fix(gui-app): hide pending queue cancellations (#1610) (d4fda09)
- fix(gui-app): wait for worktree census before task deletion (#1630) (7a0e126)
- feat(browser): silent always-on login persistence - encrypted jar, saved-logins management, per-session partitions (#1629) (31eb171)
- fix(gui-app): show canonical owner PR associations (#1633) (940f33a)
- feat(browser): improve diagnostics and dormant tab recovery (#1634) (a29a2d9)
- feat(gui-app): per-host worktree counts and a non-blocking Sweep (#1635) (7c6abcf)
- fix(mobile): plugin-fed keyboard state — key bar padding, deferred PTY re-grid, flap instrumentation (#1612) (462cec1)
- fix(remote-hosts): allow access on every plan (#1639) (f8d8d23)
- fix(gui-app): keep steered messages at their transcript position (#1640) (338ab63)
- fix(remote-host): reprobe retained sessions after plan denial (#1641) (35be15f)
- feat(protocol,shared,gui-app): epic sync overhaul — versioned lanes, replica runtime, worker relocation (#1589) (137f926)
- fix(gui-app): make the comment poll reachable, and release the transport on a worker fatal (#1645) (dbabe05)
- chore: update dependencies (#1646) (29f6c18)
- fix(gui-app): keep dispatched worktree intent visible (#1637) (225d554)
- chore: update dependencies (#1647) (7f225ea)
- feat(browser): unify host-aware browser tabs (#1650) (7154f0c)
- fix(gui-app): re-measure hosted tile geometry when a split reverses (#1651) (287951d)
- fix(browser): remote viewers take the viewer plane, native tiles track zoom, touch toolbar can navigate (#1649) (7a74df3)
- feat: on-demand provider-pack update check (providers.refreshPackDiscovery + Check for updates) (#1653) (06bf5bf)
- fix(gui-app): copy shared Yjs updates before transfer, attribute durable-transport closes, back off plan-denied rebuilds (#1654) (1fcff69)
- feat(gui-app): add Communication Graph search (#1638) (ddca4d5)
- test(gui-app): cover lane-backed epic sessions through the real manifest path (#1657) (ff202f5)
- fix(gui): clear the surface attachment on detach so a returning tile re-sends bounds (#1662) (281b030)
- feat(managed-command): per-command relaunch-on-host-restart switch and configure RPC (#1656) (c674d21)
- feat(resources): truthful host memory (PSS/private), Chromium roles, demand-aware cadence (#1663) (c65bced)
- feat(gui): drop the card-level framing header from interview cards (#1665) (b6cee0f)
- feat(cli): recover npm/nvm CLI invocation for the host (#1655) (dffef6e)
- fix(gui-app): hold cloud-only link drops back 15s before the Epic pill reads amber (#1668) (9e29be8)
- feat(browser): universal sign-in carry-over and security hardening (H01-H12) (#1667) (4ecbaf5)
- fix(mobile): the soft keyboard — clear the stale inset, and keep centred dialogs above it (#1670) (17d8b98)
- feat(browser): re-found the overlay occlusion coordinator (#1672) (a278b65)
- feat(gui-app,protocol): PDF preview (viewing) across workspace and diff surfaces (#1618) (8d5899a)
- fix(desktop): package only the target arch's bundled CLI (#1680) (e053688)
- test(desktop): gate the two-arch pack, not just the single-arch one (#1681) (02b1167)
- feat(canvas): unified tile opening and link routing (#1661) (dc382cc)
- feat(browser): import logins from another browser on this machine (#1677) (be2886b)
- feat(gui): announce login import with a release toast and a tour act; fix the five post-merge findings on #1677 (#1684) (be72a69)
- feat(gui): keep a Queue button beside Stop in the phone composer mid-turn (#1685) (b93c5fc)
- feat(gui-app,protocol): session import as the tour's last act, and a transcript row for the imported-chat divider (#1682) (e924e37)
- fix(gui-app): persist the resource monitor's sort option (#1683) (7f98834)
- fix(gui): drop the browser list from the login-import toast and tour act (#1686) (3f52b0b)
- fix(gui-app): re-measure hosted tile geometry when the canvas split tree moves a pane (#1690) (aa5fd6e)
- fix(gui-app): name the host update, not a retry, when the host has no browsers (#1676) (4c3ef17)
- fix(gui): place Stop beside Send on phone viewports in every composer (#1687) (3c073e8)
- feat(gui): move saved website sessions into a side sheet (#1689) (1976fbe)
- feat(protocol,clients): batch @1.1 consent targets, failure categories, and failure reasons for worktree deletes (#1659) (0a60112)
- test: slim GUI chat monsters and desktop/CLI/shared/protocol suites (#1688) (a3e0a49)
- feat(mobile,shared): report WebView crashes to Sentry, sharing the desktop egress scrub (#1691) (fa45f00)
- test: restore Codex round-7 coverage flagged after #1688 merged (#1693) (bf8ffc7)
- fix(gui-app): clip the content viewport instead of hiding overflow (#1692) (fac6a66)
- fix(gui-app,shared): renderer memory — per-editor marked, an epic cap that works offline, mobile retention, and the recovery refetch storm (#1694) (b6fffdd)
- feat(gui-app): office view for the communication graph (#1666) (f74e6e8)
- feat(browser): import logins from Aside and Helium; group the picker by browser (#1696) (011bed5)
- fix(gui-app,desktop): build the diff worker pool on first use, and read every JS heap from Diagnostics (#1695) (29f47a8)
- fix(gui-app): refresh the provider list from the picker and show Reasonix setup steps instead of a generic signed-out state (#1697) (7f46014)
- fix(gui-app): reveal sidebar targets and identify browser hosts (#1698) (5e48438)
- feat(protocol,gui): editor.openPaths 1.1 — Finder target and VSCodium (#1700) (acf04ab)
- chore: update in-range bun dependencies (#1701) (5707f72)
- fix(gui-app): explain held shell output and follow the live state on held rows (#1658) (a128e8c)
- fix(gui-app): drive status animations from one 12.5 Hz clock instead of per-frame CSS animations (#1702) (c2981d9)
- feat(protocol,gui-app): open a provider's sign-in terminal on the surface the picker is drawn on (#1699) (9c446c5)
- fix(gui-app): expose info notification setting (#1705) (cd7c576)
- fix(gui-app): settle the post-merge review of the provider sign-in terminal (#1699) (#1708) (a44fb9b)
- fix(gui-app,protocol): offer the terminal sign-in on terminalLogin alone, not oauthArgs (#1713) (b3268fb)
- fix(shared): draw a stream's CLOSE seq from the retired counter, not 0 (#1714) (33a3e97)
- fix(gui-app): keep transport legs and the lane projection across an authority replacement (#1716) (0da1a74)
- fix(browser): renderer-owned webview cutover + OAuth-popup / loader / UA fixes (#1715) (1ef475f)
- feat(auth): show the link-login match code on both sides of the approval (#1718) (ebc7de5)
- feat(gui): list Finder alongside the editors as a default open target (#1719) (be556b1)
- feat: browser tabs on the Start Page (OSS half) (#1678) (1a4131b)
- fix(gui-app): clear task notifications from child tabs (#1711) (55280b2)
- feat(gui): host-scoped import/migration settings, per-host runs, and a host picker in the tour (#1721) (feed76e)
- fix(gui-app): prevent sign-in flash during desktop startup (#1724) (dfc54d1)
- feat(gui-app): dispose xterm canvases while a terminal is unpresented (#1725) (9a1b553)
- Revert "feat: browser tabs on the Start Page (OSS half) (#1678)" (#1729) (b011b7c)
- feat(gui): session import - one Deleted Folders group, per-row folders, and a host picker in the dialog (#1732) (a87f530)
Traycer Desktop 1.3.0-rc.1.