github traycerai/traycer desktop-v1.5.2-rc.1
Traycer Desktop 1.5.2-rc.1

pre-release2 hours ago

What's Changed

  • feat: inline agent pages, MCP Apps, and shared task files (#2459) (885fd24)
  • fix(desktop): keep a support report's feedback event under Sentry's size limit (#2467) (3cc2ccf)
  • feat(gui-app): keep late dictation finals, warm the recogniser from a focused composer, and name the model set (#2471) (10e345a)
  • fix(gui-app): trim the Link mobile app panel copy (#2473) (be2155f)
  • feat(mobile): tap the iOS status bar to scroll back to the top (#2472) (45ddf33)
  • fix(gui-app,desktop): make the sandbox loader document self-contained (#2474) (f22756c)
  • fix(gui-app): hash query-key service segments by instance, not by their fields (#2475) (366312f)
  • fix(gui-app): measure terminal emoji as grapheme clusters (#2477) (098b824)
  • feat(gui-app): Ctrl+N/P and Ctrl+J/K move through lists on macOS (#2478) (7c6f7d0)
  • fix(gui-app): cut the Voice input description back to what a user needs (#2481) (abe6c2f)
  • fix(gui-app): stop keeping the host's dictation recogniser warm from a focused composer (#2482) (fc1f842)
  • test(desktop): CLI observation cells wait for the presence rewrite, not the view (#2470) (ad0ef19)
  • chore(deps): refresh in-range catalog dependencies (#2492) (91b7f26)
  • fix(gui-app): Enter sends in a zoomed or narrow desktop window; only a touch phone turns it into a newline (#2496) (f5e4f81)
  • fix(gui-app): an agent's delete dialog no longer says its nested agents are deleted (#2497) (3f32cba)
  • style(gui-app): fix Oxfmt failure after #2497 (#2498) (91392cf)
  • fix(gui-app): let long-running Settings dialogs close while their action runs (#2507) (ee45181)
  • fix(desktop): the desktop log names why /device/authorize failed (#2508) (31d9f10)
  • style(shared): format device auth test (#2512) (c2a0b90)
  • fix(gui-app): follow the latest when a restored free scroll has no anchor (#2513) (6549af0)
  • feat: show Claude cron next-run time (#2511) (cc2f481)
  • fix(browser): stop a locked screen failing viewport changes and a hidden tile pinning 300x150 (#2518) (b730b00)
  • fix(shared): compose host RPC authority on WebViews without AbortSignal.any (#2519) (70dfa7d)
  • fix(shared): guard AbortSignal.any in the auth fetch helpers (#2520) (62e97ff)
  • feat(gui): PR panel shows stacks and can hide finished pull requests; pr.subscribeListForEpic@1.1 (#2515) (46eb88c)
  • fix(gui): bulk delete removes every selected agent, nested ones included (#2524) (9e8ccc9)
  • fix(shared): guard AbortSignal.timeout at the mobile-reachable fetch sites (iOS < 16) (#2523) (8b15c31)
  • feat(mcp): native remedy and notice contracts (#2525) (34ff3ef)
  • feat(gui-app): show the credit view for any plan the server grants plan credits (#2526) (fd0a11d)
  • test(gui-app): rate-limit plan fixtures carry no plan credits (#2527) (392fb45)
  • fix(gui-app): log a paused or unconfirmed send and carry the tab host in the support context (#2529) (8d4c73f)
  • fix(gui-app): wrap long option labels in the pending interview card (#2530) (a947e76)
  • fix(gui-app): say why Enter did nothing while the composer's send is disabled (#2535) (70c4e74)
  • feat(protocol,gui-app): Code - OSS editor target and no-editor notice on no-menu open buttons (#2532) (a7b91ad)
  • feat(protocol): worktree.deleteBatchByPath@1.3 names why a target was declined (#2531) (dba2ec0)
  • docs: correct Antigravity platform comments (#2536) (5021b73)
  • fix: prevent duplicate comments and preserve drafts during saves (#2538) (a5aae08)
  • Fix composer focus in new-agent dialog after model changes (#2542) (22998d7)
  • Keep model picker trigger stable while tooltip closes (#2544) (f61824d)
  • fix(gui-app): raise a split pair's focused half on its underline again (#2539) (39eff6c)
  • feat: host.status@1.7 and the host crash digest carry heap limit, heap used and RSS (#2540) (4dd4fb1)
  • fix(gui-app): dim the joined top tab with the modal backdrop beside it (#2541) (018649b)
  • fix(gui-app): send a refused session to sign-in once the host refuses its token (#2543) (ffe3f6f)
  • fix(gui): show timestamps on outgoing agent messages (#2551) (c5af6b4)
  • fix(dev-desktop): pass the registry client its onProgress argument (#2545) (8c4bc86)
  • fix(browser): drop the Electron token from the guest User-Agent (#2550) (8d0ea23)
  • feat(providers): explain Antigravity macOS requirements (#2547) (27fd664)
  • fix(desktop): the desktop log names why a sign-in poll failed (#2553) (39e9c2b)
  • fix(gui-app): select every matching History task (#1950) (#2555) (b0933d8)
  • feat(gui-app): say a host is offline when an owner-routed write cannot reach it (#2546) (d6c44be)
  • fix(gui-app): preserve inline HTML frames when chat rows reorder (#2557) (74c5b87)
  • fix(mobile): open on iOS 15-17 again by updating the barcode scanner to 3.1.3 (#2552) (a677e3d)
  • fix(gui-app): keep a sent-and-dropped keyed request out of 'never received it' (#2549) (e2589a1)
  • test(gui-app,protocol): pin the GUI and released parsers on a host-projected Kimi sign-in response (#2558) (286353c)
  • fix(gui-app): refuse a task delete sent as a different account than it was chosen under (#2561) (13f531d)
  • feat(protocol): add environment.list for team environments (#2564) (cd589ca)
  • feat(protocol): add the bot.* namespace and bot.subscribe for Tracy Bots (#2565) (600a901)
  • feat(protocol): add environment.host.read and environment.host.bind (#2566) (e03f879)
  • fix(gui): one batch notice for mixed owner-host write outcomes (#2556) (b42f609)
  • feat(protocol): bot task entries carry a check-in cadence and lifecycle (Tracy Bots T8) (#2567) (d58df6a)
  • feat(protocol): bot conversations - request rows, conversation-message queue item, bot.conversation.* (Tracy Bots T7) (#2568) (b1a7c0d)
  • feat(protocol): chat.subscribe@1.26 - the task-checkin queue item, and the GUI check-in chip (Tracy Bots T9) (#2572) (915c6af)
  • fix(cli): end a refused managed-profile selection as an expected INVALID_ARGUMENT (#2571) (7be0057)
  • Keep edited chats at the new transcript tail (#2581) (bc6dc4e)
  • feat(protocol): bot.subscribe carries each task's last check-in and a nullable open-request count (Tracy Bots T9b) (#2579) (e4826e7)
  • feat(gui-app): Home bots section, bot tab, under the hood, host environment (Tracy Bots T11) (#2583) (2c10793)
  • fix(gui): format bots T11 files and update test fixtures (#2585) (b1280a9)
  • feat(protocol): environment.host.list, enrolling member on the host binding, bot createdByUserId (Tracy Bots T15) (#2586) (69e767d)
  • fix(gui-app): gate the bot tab on bot.list and record the proxy gates for the bot.* mutation hooks (#2589) (33191fb)
  • style(gui-app): format the bot tab surface and its test (#2593) (23c7a63)
  • test(gui-app): type the bot tab surface's support mock from null (#2594) (b7625b7)
  • feat(protocol,gui-app,cli): chat.subscribe@1.27 task-overdue item and the no-agent-yet still-running reason (Tracy Bots T14) (#2588) (8739fad)
  • fix(gui-app): leave an undisturbed chat list alone when its tab is shown again (#2591) (5230218)
  • feat(protocol): the host's kind on environment.host.list entries (Tracy Bots T16) (#2596) (8cfae78)
  • fix(gui-app): name the provider and reason in a re-auth banner report (#2587) (7dcabda)
  • Add advertised Codex speed tiers to the model picker (#2592) (ce907ff)
  • feat(protocol): bot.open 1.0, open a bot on the serving host (Tracy Bots T18) (#2600) (a153853)
  • fix: archive and delete agents and Tasks whose host is gone (#1628, client and protocol) (#2554) (ac9fc58)
  • chore: daily quality sweep for 2026-10-18 (#2599) (b4c46e7)
  • fix(gui-app): give the bot transcript the service-tier labels its display context requires (#2602) (cf66a7e)
  • feat(data-root): configurable Traycer data folder with offline migration (#718) (#2575) (d673f70)
  • feat(gui-app,protocol): the team as Owner, and the host leaves the bot flow (Tracy Bots T17) (#2603) (ffc9082)
  • Show image results on generic tool cards (#2604) (421ee96)
  • Add Kilo MCP settings carriers and GUI support (#2595) (e5dd672)
  • fix(gui): offer Clone as soon as an agent's remote host reads offline (#2580) (dba9fe8)
  • fix(protocol): serialize config.json read-modify-writes so concurrent settings writes are not lost (#2598) (c2983d5)
  • feat(cursor): show Max Mode catalog availability (#2590) (e50a73a)
  • feat: expose Claude plugin catalogs and session notices (#2597) (7baf31e)
  • feat(gui-app): a team's bots run on the team's machines; Settings offers a team only to a team host (Tracy Bots T22) (#2606) (2a6d294)
  • fix(gui-app): keep the mobile reading position when new messages arrive (#2607) (5d0298a)
  • feat(bots): bot list changes ring an environment-room doorbell (Tracy Bots T24) (#2610) (d44a62a)
  • feat(providers): reset an unusable provider settings file from Settings (#2573) (3c65086)
  • fix(protocol,cli): keep task lists on the round trip; agent.list@10.1 carries profile and mode (#2574) (80c2e0b)
  • fix(gui): phone push copy and docs say every host-emitted event is delivered (#2615) (2e6852d)
  • fix(gui-app): drop a startup chunk warm-up failure instead of leaving it unhandled (#2614) (af49c31)
  • chore: remove repeated bot tests and unused state (#2613) (479fb5a)
  • feat(gui-app): short-press select and long-press edit menu on phone terminals (#2619) (2218d57)
  • feat(gui-app,protocol): environment.members names and pictures the people in a bot conversation (Tracy Bots T21) (#2611) (6ad3a3d)
  • fix(gui): a bot creates on an install whose default selection predates profiles (#2622) (6b4a732)
  • fix(gui): the status bar counts Traycer Desktop when the watched host is this machine (#2624) (9ca0f1d)
  • feat: platform-provisioned sandboxes, clients and protocol (98763c4)
  • fix(gui): log why a provider sign-in await ended without a verdict (#2625) (4d2e5fb)
  • fix: keep artifact text stable on the round trip and name the way out of a hung host (#2584) (667df71)
  • fix(transport): credential recovery keeps whether a request may have reached the host (#2626) (773cb31)
  • fix(cli,shared): a sent request whose answer was lost is no longer reported as an unreachable host (#2628) (59462c4)
  • test(shared): read the register bootout's revalidation through its combined guard (#2629) (bcac7f5)
  • feat(bots): bot.create carries a request key so a retried create makes one bot (#2630) (3f92dab)
  • fix(gui-app): organization subscription ignores an earlier mount's cached view (#2636) (fb5b060)
  • fix(gui-app): phone header rename is a hold, the hamburger is a touch target (#2637) (4f2e286)
  • test(gui): update History keyboard key inventory (#2639) (f99af98)
  • feat(providers): per-provider "Native subagents" switch (#2640) (b3d65de)
  • feat(protocol,gui-app): chat.subscribe@1.28 marks a prompt held for a sign-in, and the GUI offers its cancel (#2621) (75c7b0f)
  • fix(gui-app): the active agents rows drop the GUI/TUI badge (#2641) (b463f9d)
  • fix(protocol): keep native-subagent providers in v1 responses (#2642) (2f1522b)
  • feat(protocol): label paused chat completions as unverified (#2645) (f89f61c)
  • feat(protocol,gui-app,cli): cross-host send state, agent send --workspace, paused-messages doctor warning (#2578) (2c1a644)
  • fix(gui-app): say a chat's task was deleted or not accessible (#2646) (69f0969)
  • feat(protocol): authenticated-user-response major 3 carries the caller's environments and actingAs (#2650) (61ee50b)
  • fix(gui-app): say a usage reading could not load, and retry it once (#2644) (7ad012c)
  • fix(gui-app): the sandbox card reads what a suspend keeps from its own OS's catalogue entry (#2657) (8f1f46a)
  • feat(gui-app): remove the Hosts section from the Agents panel (#2658) (09200b4)
  • test(gui-app): await the About details report button instead of reading it right after the store write (#2660) (036cf49)
  • test(desktop): the retried quit-verdict cell waits for the presence rewrite, not the write call (#2663) (1b07687)
  • feat(simulator): mobile simulators panel — protocol, tile, Host panel settings (#2661) (3985454)
  • test(gui-app): the opener list and the key-read inventory count the simulator surface (#2665) (0539aa1)
  • test(gui-app): the sidebar suite renders the Browsers panel without the Simulators group (#2667) (52a2f3b)
  • test(gui-app): the reopened Speed menu click waits for the chosen menu to be hidden (#2664) (208cb06)
  • Render diffs in one column below the mobile breakpoint (#2668) (a22acdc)
  • test(gui-app): sample the tab-strip close after the page's frame loops have idled (#2669) (68c03a3)
  • feat: HTML artifacts, canvases and file artifacts (#2617) (e772a93)
  • test(gui-app): expect HTML artifact filter label (#2673) (03fe861)
  • test(gui-app): give the MCP app fullscreen fixture a request context (#2675) (b9b2737)
  • refactor: trim redundant client code and tests (#2674) (92dbc2b)
  • test(gui-app): match canvas selection assertions to Inspector (#2677) (2779519)
  • feat(protocol,gui-app,cli): a per-agent routing choice, wait it out here on a usage limit (#2676) (41d551e)
  • Fix horizontal trackpad scrolling in the file viewer (#2681) (e18c5e7)
  • test(gui): supply routing menu dependencies in tab group fixture (#2683) (a8c556c)
  • fix: close the code-scanning alerts on main (#2678) (04e6447)
  • fix(gui-app): render reads of objects that change in place go through subscribed values (#2686) (a07865a)
  • fix(gui-app): never start a router load under an in-flight one on an auth flip (#2690) (12d343e)
  • fix(gui-app): restore the cloud verdict when a valid check promotes an unverified session (#2692) (881e590)
  • fix(gui-app): r14 - remove the landing Belongs to chip; a new task's owner follows the host picker (#2694) (89b87a9)
  • fix(gui,protocol): the cross-host send card shows failures only, plus an offline note (#2697) (3cf65f6)
  • fix(gui-app): a lifecycle verb's toast names the state the server's row reached (#2698) (6cb4895)
  • feat: the server pool (#2696) (6cdb086)
  • feat(mobile): Quote in the phone's text-selection menu (#2699) (3e62490)
  • fix(gui): a create refused at the epic.create@1.1 floor tells the person to sign in again or update the device (#2703) (24380e5)
  • refactor: clean up artifact code and test settlement (#2702) (d66dd6c)
  • fix(gui-app): one set of tab groups, the account's (#2688) (c662c1e)
  • Improve HTML artifact controls, version browsing, and bundle downloads (#2704) (4191bee)
  • test(gui): cover Reasonix turn usage consumers (#2707) (5d0fba1)
  • test(gui-app): fixtures seed the account's organization, not the retired local API (#2712) (f3b6340)
  • feat(protocol,cli): report terminal-agent idle evidence on activity hooks (#2713) (683f6a1)
  • fix(gui): a repo with no commit seeds its default worktree intent as local (#2715) (0104d4a)
  • feat(cli): traycer task create starts a Task from a shell or a scheduled job (#2716) (2273ab7)
  • feat(protocol,gui): a chat send owns its turn from Enter and pre-starts its runtime while the person types (#2717) (da47319)
  • fix(gui): a preparing opening prompt drops its "Setting up" status while the working row shows it (#2724) (7e675ff)
  • feat(protocol): the agent listing names the owner of a row that is not yours (#2725) (f7c707f)
  • feat(protocol,cli): bot threads on bot.conversation.send, bot.thread.list, and bot send --wait follows the thread (Tracy Bots T41) (#2720) (ca3c294)
  • fix(desktop): an app update restarts the host's supervisor from the new bundle once the host is idle (#2731) (8e2fad3)
  • feat(protocol): the assistant message carries an announcement kind and link (Tracy Bots T42) (#2727) (7efdee6)
  • fix(gui): a forked agent can be dragged under another agent without a reload (#2730) (41cc8b3)
  • feat(providers): reset one provider whose settings row cannot be read (#2732) (42b7b32)
  • feat(protocol,gui): environment.setMainBot, bot.list mainBotIds, memory-curation queue item (Tracy Bots T44b) (#2729) (18c6ab7)
  • feat(gui): the bot surface is Slack - channels, threads, sidebar (Tracy Bots T43) (#2733) (270e20b)
  • feat(protocol,gui): bot directive on BotRecord and bot.create, bot.updateDirective, the Directive field (Tracy Bots T46/T49) (#2735) (fb9d480)
  • fix(shared): a 403/404 the refresh gets from something other than authn is an outage, not a deleted account (#2736) (63d7c42)
  • feat(protocol,gui): the bot record names its channel, and the bot view opens it (Tracy Bots T33b) (#2737) (375ee33)
  • test(gui-app): the account-verdict fixtures answer the refresh with authn's error envelope (#2738) (310432f)
  • feat(protocol,gui): team onboarding, one chat lock, team cost as the sum of its bots, thread-list freshness (Tracy Bots T47/T43b/T48) (#2741) (bc7fc04)
  • feat(protocol,gui-app): Tracy Bots batch D: question announcements, reply options, announcement threads, task creator (T46b/T51a/T51b/T44c) (#2743) (a437470)
  • feat(protocol,gui-app,cli): Tracy Bots T52: reply mode, a personal bot answers in the channel by default, a team bot in a thread (#2745) (08bdf4e)
  • feat(protocol,gui): the Environment group, team configurations, the consented move and secret custody (environments redesign) (#2742) (0dd2de8)
  • refactor: simplify swept helpers and test assertions (#2752) (83b635f)
  • fix(gui,cli): the main test suites to the environments redesign contract (#2753) (bec4fff)
  • fix(deps,protocol): bump zod to 4.6.7 for GHSA-mrhx-c7xc-m3w5 and keep protocol's JSON Schema form (#2748) (8c3e6f8)
  • OpenCode 2: Managed 1.x and Managed 2.x, the chat's line, and the opencode2 pack budget (clients and protocol) (#2746) (80a510a)
  • chore(gui): the move sheet no longer groups a notification mail password (#2754) (1599279)
  • fix(desktop): preserve host startup errors in support diagnostics (#2757) (82a9eb8)
  • docs(protocol): describe Copilot person-only approval markers (c317a58)
  • feat(gui,protocol): sandboxes re-design, the GUI and protocol half (integration) (#2740) (23babc9)
  • feat(chat): distinguish compaction attempts that were not applied (#2744) (872ed6d)
  • fix(gui): send the chat's OpenCode line on catalog reads for every OpenCode-family harness (#2765) (22aca1f)
  • fix(gui): the notification center opens a sandbox's row without reading host data (#2766) (d6c15ce)
  • test(gui): the reach mark's tooltip and hover line carry the reach sentence (#2771) (9450a1d)
  • test(gui-app): the sidebar selection-mode suite leaves out the sandbox list (#2773) (6b88374)
  • fix(gui-app): say Agent selection does not configure native subagents (#2768) (a583d01)
  • feat(desktop): publish Traycer Desktop to winget and a Scoop bucket (#2769) (e97baad)
  • docs(protocol): publish provider authentication evidence contract (#2761) (352c0a8)
  • protocol: sync released baseline surface fixture (#2425) (2e37953)
  • fix(gui-app): recover offline chat owners from visible published copies (#2759) (2603769)
  • fix(gui-app): a refused host-credential mint climbs the escalation ladder (#2774) (6b14a63)
  • fix(gui-app): the Automations row states its idle stop, not a day with no shell (#2778) (475d292)
  • feat(gui-app): offer the sandbox catalogue's listed shapes (#2776) (6c66999)
  • feat(gui-app): a configuration's sandbox defaults are one shared value (#2779) (49eff46)
  • fix(desktop): staging sandbox calls carry the IAP proxy token (#2780) (5920f0c)
  • test(gui-app): the home picker suites' query mocks answer the sandbox defaults read (#2781) (35128b8)
  • fix(gui-app): the sandboxes staging pass's picker and copy findings (#2782) (8e72cc5)
  • test(gui-app): the landing draft-id suite mocks the sandbox defaults read (#2785) (307a7ec)
  • fix(gui-app): the usage dialog falls back to UTC when the runtime names no time zone (#2786) (c440d7a)
  • fix(gui,protocol,cli,desktop): environments staging end-to-end fixes (#2787) (5b403e6)
  • feat(gui): read a reply aloud with the device's own voices (#2762) (50fe6ca)
  • fix(gui-app): a send while scrolled up no longer throws the reader through the transcript void (#2791) (0d5d177)
  • fix(gui,desktop): main's gui-app tests are green again and the copy says computer (#2792) (c7f41c9)
  • fix(gui-app): Tracy Bots T57, a bot channel the host has not created yet shows as empty and recovers (#2793) (f301abf)
  • feat(gui-app): Tracy Bots UX re-cut T58–T61, a permanent Tracy home, team setup behind a +, a clean header with a typing line, errors in the channel (#2794) (07789dd)
  • feat(protocol,gui-app): Tracy Bots T64, bot.subscribe carries the bot's live activity and the GUI reads it (#2796) (7259dfc)
  • fix(gui-app): the Credits card holds only the balance and Add credits (#2797) (717468a)
  • feat(protocol,gui-app): Claude terminal session name template in Settings (#2772) (d02ee30)
  • feat(worktrees): show bounded error tails for failed batch deletions (#2770) (21201ea)
  • feat: existing OpenCode chats follow the line setting (protocol and client) (#2795) (84db191)
  • fix(gui-app): the new-agent modal keeps open for clicks in its model picker (#2802) (777440e)
  • fix(gui-app): the window's own host is always a selectable viewing host (#2800) (2b125b2)
  • test(protocol): the auto-mode line table covers chat.subscribe 1.38 (#2801) (12f0d49)
  • Canvas Artifact Fixes (#2798) (fc769dc)
  • Fix protocol registry-head test pins after the canvas-point minors (#2807) (04a2b19)
  • Canvas comments read in one place; board moves glide (#2806) (9c386f4)
  • Fix the canvas-play browser specs for the single comments surface (#2809) (b6f47ab)
  • fix(mobile): keep the Browsers empty state whole above a long Simulators list (#2810) (24a663b)
  • feat(gui-app,protocol): Tracy Bots T62/T63, a bot looks like a bot, and a channel's settings behind the header's ⋮ with a notification level (#2811) (f01c7e3)
  • fix(gui): the usage popover rail follows the saved usage order (#2813) (bec49e2)
  • feat(mobile,gui-app,shared): per-phone push severity toggles (#2814) (032cdf8)
  • feat(gui-app,protocol,cli): Tracy Bots T65, the bot tab is served by whichever host the app is connected to (#2815) (edfad24)
  • Fix environment settings across hosts, teams and secret recovery (#2805) (3030b3c)
  • Fix environment settings post-merge test failures (#2818) (2c9d684)
  • fix(gui-app): open every web link in the phone's own browser in the mobile app (#2820) (b753b34)
  • feat(gui-app): an Alerts settings page for the OS and push rows; Sounds keeps the chimes (#2817) (617c7b7)
  • Keep invalid secret-name move choices local (#2822) (5770ddd)
  • feat(desktop): two-finger back/forward swipe on macOS (#2825) (b4d3e70)
  • fix(desktop,gui-app): a covered or minimised window stops rendering (#2355) (#2790) (5492d96)
  • feat(protocol,gui-app): Kimi usage on the rate-limit card (host.getRateLimitUsage@6.0) (#2764) (4ce42bc)
  • feat(gui-app): PR panel follows the canvas host, drop its host picker (#2821) (7188be0)
  • fix(gui-app): clear the desktop history swipe lint and test fallout (#2825) (#2826) (74b90f5)
  • fix(protocol,shared,cli): redact the OS home-folder name from Sentry events (#2750) (7399772)
  • test(gui-app): the usage-provider order list includes kimi (#2827) (9c7e26b)
  • feat(gui-app): bot channel dogfood fixes: + on every section, hover reply, resizable panes, no hash, static Tracy entry (T66) (#2831) (44e1b4b)
  • feat(gui-app): step a fullscreen canvas board through the reading order (#2835) (5096b28)
  • fix: the sandboxes staging.145 fix round (send, idle, sessions, rows, Automations) (#2804) (4c3832f)
  • fix(desktop): leave the host autostart to a separately installed CLI on uninstall (#2838) (2058531)
  • Clean up unused client contracts and await test completion (#2840) (34056d9)
  • fix(gui-app): a bot channel draws no turn minimap (#2848) (1fac762)
  • fix(gui-app): place artifact cards beside tools and open artifact links (#2846) (7a25daf)
  • fix(gui-app): the phone transcript no longer bounces during a flick (#2849) (80fd43b)
  • fix(gui-app): the edit-row reveal no longer overshoots on the phone (#2850) (dfc4178)
  • feat(gui-app): the PR panel filter names the listed state (#2851) (145d252)
  • fix(gui): a drafts listing's tombstones no longer rewrite whole persisted stores (#2843) (b545c14)
  • test(gui-app): the sample sidebar PR rows case lists all states (#2855) (e12f91a)
  • fix(gui-app): Tracy's copy says "host" for a host (T70) (#2852) (ed62d2b)
  • fix(gui-app): bind the tab host for the phone's terminal current-tile bar (#2853) (2cb2d71)
  • feat(gui): give Browser agent access its own Permissions tab (#2858) (51437a8)
  • feat(protocol,gui-app): a failed bot answer says what failed and offers Retry or Edit (T69) (#2856) (11e6ae3)
  • fix(gui-app): a published chat copy converts itself into the live tile when its owner is back (#2857) (8b9eead)
  • fix(gui-app): a thread opens on its post, a failed answer is a quiet line on it, no Review, no APP tag, no collapse (T72) (#2867) (94e9a2f)
  • feat(protocol,gui-app): @ mentions for HTML artifacts and canvases, and New canvas in the create menu (#2836) (d6ba05f)
  • fix(protocol): read the artifact kind schema through the registry, not _internal (#2875) (a3169af)
  • test(gui-app): the bot settings Apply goes to the tab host and re-seeds from the refetched row (T73) (#2885) (a92f246)
  • feat(browser): discover sessions across devices (#2879) (7677723)
  • fix(browser): preserve cleanup without IndexedDB and repair integration fixtures (#2888) (60b6ec0)
  • fix(gui-app): tab strip reads the cloud chat title for a chat with no projected record (#2870) (3aeb1a8)
  • fix(gui-app): open find with Ctrl+F/Ctrl+G outside a focused terminal (#2887) (5db696a)
  • perf(gui-app): stop mutation observer option cache fan-out (#2880) (f777ad2)
  • perf(gui-app): draw a long agent turn as several transcript list items (#2882) (72e4719)
  • feat(gui-app): one card for every background event (#2891) (c8c4a3e)
  • fix(gui-app): finish the mutation watcher migration on main (#2903) (bb6a091)
  • Refuse recognizable foreign provider API keys before sending (#2908) (02f7a18)
  • test(gui-app): await History rename input focus (#2911) (4f79370)
  • refactor(browser): cut the session catalog back to a discovery index (#2899) (8a86747)
  • feat(gui-app): make the suggested-reply accept key rebindable (#2915) (11bca3b)
  • test(browser): align the discovery-only layout fixture with live inventory authority (#2921) (1c51753)
  • fix(gui-app): green main after the accept-key squash (#2915) (#2922) (e40c3bb)
  • feat(gui-app): a post in threaded reply mode opens its thread (T74) (#2923) (12760d6)
  • fix(gui-app): keep "placeholder" out of the accept key's description (#2927) (a408725)
  • fix(gui-app): a browser tab closed from the task list stays closed (#2924) (b413ede)
  • fix(sandboxes): staging 154 round — sends, rows, Automations, money and notices (#2904) (ea7e1de)
  • refactor: simplify daily sweep source and consumer tests (#2928) (f05c420)
  • feat(gui-app): Slack semantics on bot rows, and task ids as chips (T75, T76) (#2931) (839d338)
  • feat(gui-app): a browser opened from the app lands on the app's own host (#2918) (8ca5b43)
  • feat(gui-app): the main bot carries a star (T79) (#2938) (4194ce4)
  • Land the environments 154 round into main (#2932) (1fba1ee)
  • style(gui-app): format the environment skills test the 154 round left unformatted (#2942) (0beb378)
  • feat(gui-app): a bot's answer is counted in the bell, the Tracy entry and each thread (T78) (#2941) (bb28914)
  • feat(host-protocol,gui-app): a personal bot subscribes to its person's notification feed (T84) (#2948) (a0467e1)
  • Sandboxes staging.158 fix round (#2958) (1d6d1e2)
  • fix(desktop,gui-app): restart a browser stream that ended, and leave Simulator device alone on a browser reveal (#2961) (6ba5b1b)
  • build: type-check, build and type-aware lint on tsrs (#2960) (d6bcdf1)
  • fix(gui): preserve queued steer consent and refusal ownership (#2777) (72041a9)
  • feat(protocol,gui-app): a thread roots on the message replied to, a bot's answer included (T85) (#2967) (a7a5cc7)
  • fix(gui-app): keep the chat transcript where the reader puts it, and stop rows overlapping (#2964) (ccea877)
  • feat(protocol,gui-app): a bot's tasks and a thread's tasks say where each came from (T82) (#2966) (5beef4c)
  • fix(gui-app): mark the formal trace script executable (#2973) (e1e571f)
  • feat(gui): Close Tab in the task tab's context menu (#2969) (4fceb01)
  • fix(gui-app): sandbox state leaves the notification center (#2971) (394857f)
  • fix(gui): the notification center carries agent states only (#2985) (c72cb98)
  • fix(gui-app): name an unlisted host by its account label, never its id (#2983) (ea44780)
  • feat(bots): a bot asks a question without waiting (Tracy Bots T91) (#2994) (b81d5ee)
  • fix(gui-app): narrow the thread composer send button before reading disabled (Tracy Bots T91) (#3000) (82766f6)
  • feat(bots): the Activity tab and check-in history (Tracy Bots T86 Pair A) (#3003) (7b7ebdf)
  • refactor: remove redundant source and test scaffolding (#2999) (b56be46)
  • feat(bots): How Tracy answered, per turn (Tracy Bots T86 Pair B) (#3010) (f5fe0b1)
  • fix(gui-app): the staging.162 sandboxes fix round (#2988) (9010ccc)
  • fix(gui-app): one click on a toast's Undo works while a dialog is open (#3012) (cad7536)
  • fix(gui-app): a hosted chat tile reads through the epic session's host (#2981) (b0aa7c6)
  • fix(gui): the Remove skill confirm says its folder in Traycer's skills folder is deleted (#3015) (0cc2521)
  • fix(gui): a membership change re-reads the signed-in identity, so a removed member is told (#3017) (c8ff250)
  • fix(gui-app): a refused-write chat teardown leaves one copy of the prompt (#3013) (ce6f36d)
  • fix(gui-app): keep the reader where they are when estimates or a cancel move the list (#3014) (34ea308)
  • test(gui-app): the tab-strip route test stubs the auth service the organization provider now reads (#3018) (0cd1e64)
  • feat(protocol, gui-app): simulators modelled like browsers: protocol 1.1, catalog contracts, panel, picker and tile (T1, T6) (#2970) (6e89f62)
  • feat(gui-app,cli): a build-time switch turns sandboxes, environments and bots off for this release (#2968) (b500fff)
  • test(gui-app): every rail enumeration carries railSimulators; the browsers filter spec uses the shipped label (#3024) (c620f51)
  • feat(protocol,gui-app): say up front when a host's updates are managed elsewhere (#3023) (e4bc9d3)
  • fix(protocol,gui-app): trunk fixes for #3023: thunk-scan allow-list, activation one-shot waits for the first catalog answer (#3026) (e7d43e1)
  • fix(gui-app): the activation one-shot also waits out a catalog re-ask over retained data (#3027) (5e188fd)
  • fix(gui-app): retire a superseded end correction, follow a fling that reaches the end, release a wheel's arm only on its own movement (#3022) (91b85f5)
  • test(gui-app): suites that mount the epic surface and sidebar stub the simulator seams #2970 added (#3025) (3e830e4)
  • feat(bots): task actions from the Activity tab: Run now, Pause, Stop, Stop watching, recent digests (T92) (#3030) (af9abd7)
  • fix(gui-app): hold the estimates above the view in every pass that anchors nothing, releasing them once at the initial scroll's end (#3019) (1cbe2df)
  • fix(gui-app): hold a reader the end pad drops onto until the turn rests, keep a following reader's drag toward the end, and never write the end into the list's padding (#3031) (9b6034f)
  • docs(protocol): describe the Antigravity Gemini pool read and per-group limit scopes (#3033) (e451201)
  • fix(protocol): acknowledge supported rich artifact deletions (#3032) (01cbf9b)
  • feat(gui): Check again for the mobile simulator platforms (#3034) (9b20cb7)
  • feat(bots): what the bot knows, memory inspection (T87) (#3020) (b4a5a78)
  • feat(protocol,gui): surface references on a bot post, and the channel card (Tracy Bots T89) (#3016) (356a600)
  • test(gui-app): wait for the list to hold no command before the idle-wheel check, and run the two settled-claim checks on virtual time (#3042) (56b0bf4)
  • fix(gui-app): read a following reader's pan that no input announced as their departure, telling it from the list's own movement by the writes the list and the app announce (#3035) (762570f)
  • feat(protocol,gui-app): skill update policies, upstream state and import (#2920) (d696929)
  • fix(protocol,gui): say the CLI isn't signed in instead of blaming the account (#3045) (f697b1a)
  • fix(gui-app): measure a resting finger from a clamp a read saw, and take the follow ledger from the first report after a lift that a held-back iOS write may land after (#3047) (0f736eb)
  • feat(protocol,gui-app): show claimed credit offers in Settings > Credits (#3049) (2a1e914)
  • fix(protocol): the skill import token schema is lazy, as the eager-schema gate requires (#3055) (a669334)
  • fix(gui-app): retire a free reader's gesture away from the end once its scroll lands, so the end they reach next follows (#3048) (9f1ff84)
  • fix(gui-app): keep a contained body a scroller, and read focus inside a closed shadow root, in the frame's reveal (#3051) (9af4020)
  • feat(protocol,gui-app): claim credit offers from Settings > Credits (#3052) (d21cd8e)
  • fix(gui-app): arrive a lifted finger's momentum only once the view has moved toward the end since the end was recorded (#3053) (0ff62b8)
  • fix(gui-app): leave a reader at the top they asked for when an end command's target row grows under them (#3059) (f8da747)
  • test(protocol): judge the credit offer list's per-card safeParse as pure (#3068) (0f65a47)
  • feat(bots): the bot's session, readable whole (T93) (#3046) (6000398)
  • fix(gui-app): format the credits offers test, so pre-commit stops redding trunk (#3070) (436a534)
  • fix(gui-app): a scrollbar press departs its reader only once the press itself has scrolled (#3064) (1266884)
  • fix(gui-app): keep a departed reader held where their own scroll leaves them, and follow them when the end meets them at rest (#3062) (d0f13d2)
  • feat(bots): team setup as a static flow in the team's main bot channel until the team has a host (T67) (#3054) (21840d8)
  • fix(gui-app): end the approval card's wait line before the paused sentence (#3058) (393f057)
  • fix(gui-app): reveal nothing inside skipped contents, in the frame's reveal (#3066) (553ca94)
  • feat(gui-app): Reply in thread on every row of a bot's channel (Tracy Bots T68) (#3074) (ee8cf49)
  • fix(gui-app): the inline artifact's Expand reuses the artifact's open tile (#3076) (c106103)
  • feat(gui-app): a bot's send card reads the post it wrote (Tracy Bots T94) (#3077) (b085e4a)
  • feat(gui-app): an outdated provider CLI is a classified failure with an Update action (Tracy Bots T71) (#3078) (95e5fc2)
  • fix(gui-app): walk the flat tree through a closed root's slots (#3075) (2c104b0)
  • fix(gui-app): the list announces the clamp its own pad restore causes (#3081) (861c574)
  • fix(gui-app,desktop): play media from where its bytes already are, and read artifact objects in 512 KiB spans (#3028) (8990535)
  • fix(gui-app): download a published file on another machine's host straight from the cloud (#3029) (0eb6225)
  • fix(gui-app): keep a detached reader detached when the end comes to them, turn or no turn (#3079) (0c9863c)
  • fix(gui-app): read a lifted finger's travel from the writes the list announces and its end from the content it was thrown at (#3071) (ef13d50)
  • fix(gui-app): the media probe waits for this mount's own answer, and for the local host id to be known (#3083) (4706d7b)
  • fix(gui-app): a turn the host's shutdown ended reads as an interruption (#3060) (efc1483)
  • fix(gui-app): keep a reader detached with no report of theirs detached when the end comes to them (#3086) (e6b63c8)
  • fix(protocol,cli): say the cloud could not be reached instead of not found (E_CLOUD_UNREACHABLE) (#3061) (2526375)
  • test(gui-app): chat scroll TLA+ model and its regression run (#3082) (6ef6262)
  • fix(gui-app): a gesture the viewport cannot answer does not retire the restore (#3089) (dd0e303)
  • fix(gui-app): a view the scroll range moved is nobody's scroll (#3085) (bc394d0)
  • fix(gui-app): decline a thrown end whose unrendered row changed size (#3088) (66529da)
  • feat(protocol,gui-app): say which credential chats use when it isn't the Claude plan (#3091) (bee6e81)
  • fix(gui-app): html, canvas and file rows get their icon colour, and file artifacts show the glyph of the viewer they open in (#3090) (8a618d0)
  • fix(cli): give the host job its whole shutdown budget before launchd kills it (#3069) (1fc44fe)
  • test(gui-app): align scroll model with landed latch fixes (#3092) (9e743f4)
  • fix(cli,shared): main red after #3069: scan markers and the uninstall fake runner follow the drain wait (#3098) (1ad3de3)
  • Keep canvas boards stable while panning and bound live memory (#3093) (72dab23)
  • ci(formal): give hosted TLC checks time to finish (#3099) (c6c71eb)
  • Fit canvas titles and simplify comment controls (#3102) (06506bc)
  • feat: add per-chat Ultracode request for Claude (#3087) (4dbf3ea)
  • feat(protocol): resume a remote session across a relay leg reset (#3096) (74df0cc)
  • fix(gui-app): every surface that names an artifact draws it the way its sidebar row does (#3100) (ed84bb4)
  • fix(gui-app): main red after #3102: the title fit spec expects preserved spacing (#3104) (31c2f72)
  • fix(protocol,shared): main red after #3096: prev tests expect the slugged reason (#3105) (4c18fcf)
  • test(gui-app): complete the mounted mention fixture auth store (#3106) (30fd2e6)
  • feat(gui): draw Ultracode after the effort in the model chip, styled in Layout (#3103) (728ef88)
  • fix(gui-app): let a toward-end key at the end re-attach a held reader, as a wheel down there does (#3110) (dc2094b)
  • fix(gui-app): a restore accepts only once the saved row's position holds still (#3101) (e75dad0)
  • feat(bots): a team's main bot keeps its setup as history once it goes live (Tracy Bots T67b) (#3113) (8d28775)
  • fix(gui-app): type the sizes and positions the list can withhold (#3108) (7468d4f)
  • fix(gui-app): narrow the withheld row position the restore's held-still check reads (#3114) (58a98f4)
  • fix(gui-app): narrow the withheld row position the past-target guard reads (#3116) (d2c23f9)
  • fix(gui-app): the notification separator tests pin the clock so the first minute of a day can't drop Today (#3115) (0a5a0b3)
  • fix(gui-app): end a concealed restore's settle loop only when the box collapsed (#3119) (2768521)
  • feat(bots): a bot's Slack app in its settings, and a send posted in Slack on its card (Slack for Tracy S4, S4b) (#3117) (bc76a3e)
  • docs(protocol): a secret's plaintext consent is recorded on the secret (#3121) (a593329)
  • chore(gui-app): retire ticket and review-round markers in the chat area (comments only) (#3120) (76824b3)
  • fix(gui-app): no "See reply" link under a member's post (Tracy Bots T95) (#3123) (cd5e6c3)
  • fix(gui-app): animate a cloud chat row's position like a local row (#3122) (33ab91c)
  • chore: simplify client helpers and focused test fixtures (#3127) (aeaca26)
  • feat(bots): thread follow, three notification levels, mentions, read cursor drives bold (VN3, VN6) (#3126) (ed86c2b)
  • feat(gui): the bot's model is a top-level group in Channel settings; Make main moves to the sidebar row (Tracy Bots T96) (#3129) (282f2f7)
  • feat(gui): bot avatars draw from a 24-swatch palette so same-named bots differ (Tracy Bots T97) (#3130) (85633a5)
  • fix(gui-app): a held scrollbar press keeps its arm against a key that cannot move the view (#3135) (9110ab9)
  • feat(gui): a team's Enable cloud creates the team's kept sandbox (Tracy Bots T100) (#3134) (0c3c7f0)
  • feat(gui-app): the Tracy page sits on the task page's grounds with a quiet selected channel (Tracy Bots T98) (#3131) (47b3530)
  • feat(gui): the memory pane groups Shared and Its own, says adds are refused when full, and Channel settings opens it (Tracy Bots T102) (#3136) (7c89e25)
  • feat(gui-app): Switch on a bot's failed answer writes the bot's model, then retries (Tracy Bots T99) (#3132) (2e40397)
  • feat(gui-app): Threads is a sidebar view across every bot; the bot's Threads tab goes (Tracy Bots T103) (#3137) (57a35c5)
  • feat(gui-app): the voice layer in the app (Tracy Bots voice VT2) (#3125) (5049201)
  • test(clients): complete the voice layer fixtures (#3139) (f6cb8fd)
  • fix(gui-app): a correction under a held press leaves the list no queued end command (#3138) (b3c5aaf)
  • fix(gui-app): every chat's markdown runs the bot-mention pass only with the unreleased features on (#3133) (aed3be7)
  • fix(gui-app): the side strip's talk-control slot exists only with the unreleased features on (#3143) (3ded91e)
  • feat(gui-app, desktop): dictation pauses voice until resumed, the Talk shortcut, the menu-bar and notification-area voice item (Tracy Bots voice VT6) (#3140) (2ea0bac)
  • fix(gui-app): match formal follow guard to away input (#3128) (54baf9e)
  • fix(gui-app): park a scroll request's landing across a collapsed hide (#3124) (1209820)
  • fix(desktop): the bundled-CLI verification retries stapler validate when Apple's ticket lookup drops the connection (#3145) (d77c21d)
  • fix(protocol): prev reports the leg that carried the session, not a dial that never attached (#3147) (846c739)
  • feat(gui-app, clients): the voice router, directory, pending action and verbs (Tracy Bots voice VT3) (#3141) (ddd603a)
  • fix(gui-app): a bot's chat opens the bot's tab from chat search, session links and notifications, never an epic tab named after the bot id (#3144) (2eac8b0)
  • fix(gui-app): the mobile app's desktop-only chord arm runs only with the unreleased features on (#3150) (6afbdaa)
  • fix(desktop): the production microphone prompt keeps the dictation-only wording until voice ships (#3151) (6331aa7)
  • feat(gui-app): send to chat from the comment draft box, HTML artifact comments (#3152) (35bebac)
  • fix(gui-app): the comment composer and canvas selection fixtures pass the props #3152 made required (trunk fix) (#3154) (402c014)
  • fix(gui-app): an end request supersedes any pending scroll-request landing (#3148) (bf8ca36)

Traycer Desktop 1.5.2-rc.1.

Don't miss a new traycer release

NewReleases is sending notifications on new releases.