Skip to content

upstream moved 172 commits #9

Open

Description

@github-actions

New commits: 172

AKolenda (1):
      fix(web): keep Windows thread notifications clickable until handled (#22520)

Alex (1):
      fix(mobile): center toast actions beside wrapped messages (#24986)

Julius Marminge (125):
      perf(mobile): bound streaming markdown cache and pending work (#24263)
      fix(server): notify parents after delegated background runs (#23542)
      perf(ci): cache server tests individually across shards (#24966)
      fix(ci): shorten delegated follow-up comment
      feat(mobile): one cached native-client install command for agents and machines (#24965)
      feat(infra): native client cache panels on the task cache dashboard
      fix(mobile): report native client installs under the fleet machine label
      feat(infra): native client cache panels on the task cache dashboard (#24994)
      chore(lint): React effects can't grow past each file's budget (#24964)
      feat(mobile): on-demand chrome e2e runner across simulators
      fix: restore files reverted by 5f1f604
      fix(mobile): retain requested PR environment while connecting (#24262)
      fix(knip): mobile-e2e runs agent-device's CLI by path
      feat(mobile): open threads and devices in a resizable iOS inspector (#24985)
      chore(web): measure renders before/after with render scenarios (#24980)
      fix(web): asset URLs re-mint per revision and before expiry without effects (#24970)
      fix(web): queued-message edits survive navigation and settle once (#24972)
      refactor(mobile): thread visits are tracked outside React (#24973)
      refactor(client): cloud account transitions run in one service (#24974)
      refactor(client): one VCS status refresh owner per checkout (#24975)
      refactor(web): document appearance and title are applied from app start (#25004)
      refactor(web): app shell shortcuts register once through one command dispatcher (#25016)
      refactor(web): shared intersection and document-activity stores (#25020)
      refactor(web): the theme store and diff worker pool stop syncing the theme through effects (#25007)
      perf(mobile): compact persisted thread snapshots (#24265)
      fix(server): background compactions no longer flip threads to Working (#25122)
      fix(web): a stale queued-edit save no longer clears a newer edit (#25128)
      fix(client): a thread opened before its shell loads still counts as opened (#25133)
      docs: open and track PRs through GitCafe when origin is git.cafe (#25126)
      perf(web): diff file boundaries observe visibility once instead of on every render (#25134)
      chore(lint): enforce unnecessaryPipeChain (#25077)
      fix(mobile): upgrade react-native-keyboard-controller to 1.22.8 for the Duo fold composer (#25141)
      fix(infra): keep task cache cleanup ahead of uploads (#25143)
      chore(lint): enforce mapSomeToAsSome (#25078)
      chore(lint): enforce flatMapIgnoredParamToAndThen (#25089)
      chore(lint): enforce provideLayerSucceedToProvideService (#25090)
      chore(lint): enforce unicorn/require-module-specifiers (#25102)
      chore(lint): enforce unicorn/no-useless-fallback-in-spread (#25103)
      chore(lint): enforce eslint/no-unneeded-ternary (#25105)
      chore(lint): enforce eslint/no-unsafe-optional-chaining (#25106)
      fix(web): preview favicons resolve their project without ChatView syncing it (#25068)
      refactor(mobile): branch picker owns its search and checkout guard (#25067)
      refactor(web): composer editor stops mirroring props into refs with effects (#25079)
      fix(client): usage-limit Snooze disables at reset even weeks away, via a shared deadline clock (#25005)
      fix(infra): task cache cleanup test provides its service directly (#25164)
      chore(lint): a new React effect states its reason instead of raising the budget (#25163)
      test(web): the diff boundary observer counter lives in its fixture (#25170)
      fix(client): a queued-edit save keeps its claim until it finishes (#25169)
      refactor(web): terminal focus requests name the terminal they focus (#25009)
      fix(web): pull request checks stay current after a checks refresh (#25008)
      chore(devices): bump agent-device to 0.21.31 (#25065)
      refactor(mobile): shared AppState, reduce-motion and back-button helpers (#25011)
      fix(web): settings panels derive state instead of syncing it with effects (#25070)
      refactor(mobile): terminal lifecycle runs in a session store, not screen effects (#25071)
      refactor(web): branch toolbar and dialogs stop syncing through effects (#25072)
      refactor(web): thread find state lives in one store instead of event buses and mirrors (#25073)
      refactor(web): browser panel tabs follow preview sessions without ChatView effects (#25006)
      chore(lint): enforce effectSucceedWithVoid (#25074)
      chore(lint): enforce preferSucceedSomeOrNone (#25080)
      chore(lint): enforce unnecessaryFailYieldableError (#25083)
      chore(lint): enforce catchToOrElseSucceed (#25084)
      chore(lint): enforce allOfMapToForEach (#25085)
      chore(lint): enforce unnecessaryEffectGen (#25086)
      chore(lint): enforce catchToIgnore (#25087)
      chore(lint): enforce optionMatchToFromOption (#25088)
      chore(lint): enforce redundantMapError (#25091)
      chore(lint): enforce raceFirstWithSleepToTimeout (#25092)
      chore(lint): enforce catchUnfailableEffect (#25093)
      chore(lint): enforce preferTypedSchemaDecoder (#25094)
      chore(lint): enforce schemaStructWithTag (#25095)
      chore(lint): enforce tryCatchInEffectGen (#25097)
      chore(lint): enforce eslint/no-unused-vars (#25100)
      chore(lint): enforce unicorn/no-useless-spread (#25104)
      chore(lint): enforce eslint/no-new (#25107)
      fix(web): theme editor returns to its spot after the window shrinks and grows back (#25076)
      refactor(mobile): cloud account transitions run in the shared account service (#25150)
      refactor(client): drop the VCS wake and dispatcher element scope options nobody uses (#25152)
      feat(mobile): mobile:install --session installs into an agent-device session
      fix(mobile): native client fingerprints match across macOS and Linux
      refactor(client): terminal sessions keep one driver per mode (#25186)
      refactor(web): preview tab sync subscribes to the preview store instead of its own listener sets (#25196)
      fix(server): use asSome for initial worktree measurement (#25206)
      chore(lint): enforce eslint/no-empty-pattern (#25101)
      chore(lint): enforce typescript/no-extraneous-class (#25108)
      chore(lint): enforce react/capitalized-calls (#25109)
      chore(lint): enforce react/static-components (#25110)
      chore(lint): enforce react/no-unstable-nested-components (#25111)
      chore(lint): enforce react/no-array-index-key (#25112)
      chore(lint): enforce react/immutability (#25115)
      chore(lint): disable react/jsx-no-constructed-context-values (#25039)
      chore(lint): disable react/no-object-type-as-default-prop (#25040)
      chore(lint): disable unicorn/no-array-reverse (#25041)
      chore(lint): disable unicorn/no-new-array (#25042)
      chore(lint): disable unicorn/prefer-array-find (#25043)
      chore(lint): disable unicorn/prefer-set-has (#25044)
      chore(lint): disable unicorn/prefer-string-starts-ends-with (#25045)
      chore(lint): disable unicorn/prefer-add-event-listener (#25047)
      chore(lint): disable typescript/no-this-alias (#25048)
      chore(lint): disable eslint/no-control-regex (#25049)
      chore(lint): disable returnEffectInGen (#25050)
      refactor(mobile): thread detail and feed reset by key and share one follow owner (#25148)
      fix(web): thread find exports the timeline fields type its context names (#25260)
      chore(lint): enforce react/memo-dependencies (#25117)
      fix(web): Escape and copy work in chat media and markdown widgets, which attach through ref callbacks (#25246)
      fix(web): composer banners, menus and pickers act in their handlers (#25238)
      refactor(web): device panel reads hub state from atoms (#25265)
      fix(web): SSH password prompts wait for their dialog, and the app shell drops its sync effects (#25239)
      refactor(mobile): settings and usage screens drop sync effects (#25227)
      fix(mobile): review opens on Changes and keeps the section you picked (#25223)
      fix(mobile): Android dialogs raised before or during activity replacement now show (#25229)
      chore(lint): enforce react/purity (#25038)
      refactor(web): root notification and toast coordinators start with the app (#25233)
      refactor(web): sidebar thread lists derive state instead of syncing it in effects (#25234)
      chore(lint): enforce react/refs (#25116)
      chore(lint): enforce react/exhaustive-effect-dependencies (#25118)
      chore(lint): enforce react/set-state-in-effect (#25119)
      refactor(mobile): stream and MCP webviews tie their work to the view's lifetime (#25226)
      chore(lint): enforce catchConditionalRefailToCatchIf (#25081)
      chore(lint): enforce flatMapConditionalToFilterOrFail (#25082)
      chore(lint): enforce runEffectInsideEffect (#25096)
      chore(lint): enforce abortControllerInEffect (#25098)
      chore(lint): enforce t3code/no-inline-schema-compile (#25113)
      chore(lint): enforce oxc/no-accumulating-spread (#25114)
      chore(lint): enforce t3code/no-polling-loop-in-tests (#25120)
      docs: read GitHub Actions logs through cafe (#25343)

Theo Browne (27):
      fix(server): running delegates tell agents to end the turn (#24887)
      feat(web): UI design overhaul, with the new look behind a Beta toggle (#24865)
      test(server): tests no longer depend on the host machine (#25001)
      perf: opening a thread loads 85% less data (#24899)
      fix(install): stable installs no longer fail behind a page of nightlies (#22907)
      fix(server): Grok refresh no longer restores removed models from cache (#22849)
      fix(server): resume fallback keeps the latest turn when an older handoff is pending (#22902)
      fix(client-runtime): "Codex (hub)" badges read CH instead of C( (#22918)
      fix(web): usage-limit banner reset time follows the Time format setting (#22915)
      fix(web): terminal drag selection scrolls faster the farther past the edge (#22872)
      chore(lint): main passes lint again with effects merged after the budget (#25055)
      fix(server): ended roots no longer leave provider turns running (#22846)
      feat(server): count how guest sharing gets used (#24996)
      test(web): Arabic arrow-key test no longer drops its first key press (#25145)
      fix(desktop): hidden preview tabs throttle instead of running at full speed (#25184)
      feat(web): New design brings back color where it means something (#25251)
      fix(web): app loads again after a chunk cycle blanked it at boot (#25295)
      fix(web): new thread shortcut focuses palette search, not the Back button (#25315)
      fix(web): composer corners and context strip no longer show double edges (#25316)
      fix(web): VS Code icon in thread details no longer has a box around it (#25321)
      fix(web): sent messages stand out on the black canvas in the new design (#25323)
      feat(web): new design is on by default (#25324)
      fix(web): short branch names no longer get clipped in thread details (#25328)
      fix(web): stacked notices above the composer no longer cast a dark band (#25329)
      feat(web): "could not load" screen tells users how to debug it (#25317)
      fix(web): usage tabs no longer jump when switching to Limits (#25336)
      fix(web): composer bottom toolbar keeps its background under update notices (#25335)

Yannic Charlon (2):
      fix(server): keep history discovery off the writer and pace compaction (#20877)
      fix(server): compact superseded turn-item snapshots (#20990)

Yordis Prieto (4):
      fix(server): orchestrator records command count and duration again (#23966)
      fix(observability): every app reports its own environment and release channel (#24340)
      fix(observability): every exported resource names its service instance (#23973)
      fix(observability): resources add OTel semconv runtime and browser keys (#23972)

maria (11):
      feat(web): play audio inline and open any file the agent shares in the viewer (#21363)
      perf(pull-requests): faster pull request timeline, code tab, summary and search (#22697)
      fix(web): question options show a radio and an aligned shortcut key (#23255)
      perf(source-control): pull request previews read only the pull request (#22583)
      fix(server): make document attachments readable to agents (#21458)
      feat(sidebar): working section is on by default (#25190)
      feat(web): preview office files, fonts, and mermaid diagrams (#21362)
      feat(web): virtualize large file previews (#21466)
      feat(web): preview archives, sqlite databases, and decoded images (#21467)
      feat(web): preview opendocument, epub, rich text, and notebooks (#21469)
      fix(web): thread undo notice sits above the bottom shelves instead of pushing the list (#25270)

oliver (1):
      feat(mobile): composer placeholder reads "Ask anything" (#25176)

Touchpoint overlap

Files overlapping fork feature touchpoints:
packages/contracts/src/settings.ts

Automated sync-check report. No merge was performed — merging is always manual.

Activity

  1. github-actions commented on Nov 2, 2026

    @github-actions
    Author

    New commits: 343

    12ya (1):
          fix(mobile): handle image drops in the Android composer (#25573)
    
    ABDUL RAHMAN JAMSHID NASSER AL RASHDI (1):
          fix(server): provider updates no longer time out mid-download (#28132)
    
    AKolenda (1):
          fix(provider-acp-registry): reopening a Kimi thread no longer collapses its model picker to Default (#25786)
    
    AbdelrahmanTamer21 (1):
          fix(mobile): resume continues a usage-limited thread before its queue (#27662)
    
    Abhijeet Singh (1):
          fix(web): chat text can be cited while file search is open (#27131)
    
    AdEx-Partners-DE (1):
          fix(server): an open question stays in the thread window, so its answer panel shows (#22291)
    
    Adamulek123 (5):
          perf(server): avoid unused history reads during thread waits (#27032)
          perf(server): avoid unused history when acknowledging tasks (#27803)
          perf(server): task waits skip unrelated sibling updates (#27920)
          perf(server): hydrate only the requested project page (#26655)
          perf(server): avoid building unused peer HTTP clients (#28405)
    
    Aditya Garud (2):
          fix(server): match webhook existence filters on wildcard objects (#23414)
          fix(usage): preserve Claude monthly spend through CLIProxy (#23435)
    
    Ahmed Mostafa (1):
          fix(web): Arabic paragraphs with many English terms now read right to left (#26095)
    
    Aleks Tatter (1):
          fix(web): Enter selects the first branch search result (#27434)
    
    Alex (6):
          fix(mobile): keep reduced-motion views visible and aligned (#23230)
          fix(mobile): keep Android thread title spacing consistent (#26666)
          fix(mobile): preserve chat scroll position on tab returns (#27393)
          fix(mobile): restore the reserved compose space on Android (#28819)
          perf(mobile): reuse chat lists across navigation renders (#27026)
          fix(mobile): give drafts the current thread card layout (#28789)
    
    Alex Southwell (9):
          perf(server): connects no longer wait on editor and SSH target discovery (#14519)
          fix(vcs): look up pull request clone URLs on the pull request's host (#15000)
          fix(mobile): release inactive draft Git status demand (#25254)
          fix(web): threads on an unreachable environment no longer hide in the Working shelf (#26195)
          fix(server): finish short reads before returning workspace text (#14989)
          perf(client-runtime): merge shell deltas once per received batch (#18416)
          perf(web): coalesce overlapping file tree refreshes (#18421)
          fix(server): avoid transient GitHub mergeability sync churn (#22022)
          perf(client-runtime): index checkpoint answers in one bounded scan (#25258)
    
    Andrei (2):
          perf(web): terminal updates no longer re-render every sidebar row and chat (#28563)
          perf(web): chat view redraws no longer re-render the composer or side chat timeline (#28564)
    
    Behzad Motaghi (1):
          fix(server): look up a run's turn-start items by run, not by walking thread history (#28343)
    
    BelKed (1):
          fix(web): configure reasoning for the fallback model (#27593)
    
    Bilal Irfan (1):
          fix(web): finished replies keep their hover timestamp while commands run (#28610)
    
    Brandon Julio Thenaro (1):
          fix(web): prevent sidebar shelf animations from overlapping headers (#25384)
    
    Byntham (1):
          fix(server): delegated tasks finish even when the child leaves a watcher running (#27468)
    
    Cameron Chisholm (5):
          fix(mobile): a closed empty search stays closed after returning (#27184)
          fix(server): preview tab list shows desktop tabs that loaded before the server attached (#27456)
          perf(mobile): text files open in half the time on a remote host (#27850)
          fix(mobile): Home list no longer opens scrolled down (#27155)
          fix(server): a preview navigation that fails mid-load keeps its failure (#27537)
    
    Cement (1):
          fix(web): local visit migration preserves mark unread (#25746)
    
    Claudesaul (2):
          fix(mobile): iOS terminal's Attach visible output clears the home indicator (#22418)
          fix(web): maximize button no longer jumps when the right panel closes (#26232)
    
    Craig Davison (1):
          fix(web): Settings search finds rows by their titles (#27540)
    
    Daniel Walsh (2):
          fix(gitlab): report an expired glab OAuth login as an auth error (#27511)
          fix(web): format inline code typed with a dead-key backtick (#27457)
    
    Dmitry Farafonov (1):
          fix(server): let slow worktree submodule checkouts finish (#28482)
    
    Dmytro Mishchenko (1):
          fix(web): bare URL links keep trailing underscores and tildes (#27794)
    
    Dreighto (1):
          fix(server): subagent threads no longer inherit a pending title job (#27990)
    
    Ege Feyzioglu (1):
          fix(web): composer emphasis shortcuts ignore delimiters inside inline code (#25659)
    
    Einar Andersson (1):
          fix(web): Esc in the theme color picker restores the previous color (#27472)
    
    Etan Heyman (3):
          fix(web): horizontal scrolling inside diff and file panes no longer switches threads (#28091)
          fix(server): delegate_task accepts the inherited options orchestrator_capabilities reports (#28133)
          fix(evals): GPT eval summaries no longer call a proxied run free (#28403)
    
    Exotic (2):
          fix(copy): clarify thread and source control settings (#24148)
          fix(copy): clarify unavailable tasks and duplicate requests (#24149)
    
    F4llen (1):
          fix(server): queued delegated completions keep a newer model choice (#22579)
    
    Fatih ÖZDİL (1):
          Show the full title in lineage/side-chat row tooltips (#28326)
    
    Fuksss (2):
          fix(server): run_scheduled_task_now says why a run was refused (#25647)
          docs(orchestration-v2): Codex rollback uses thread/revert on paginated threads (#25705)
    
    G-R3 (1):
          fix(web): sidebar jump hints are readable and sit in the status slot (#26112)
    
    George Nijo (1):
          fix(server): an old link card no longer keeps a thread asking for input (#28491)
    
    Gerardo Torres (1):
          fix(web): PR merge buttons stay in place while the stack loads (#26077)
    
    Gourav Kumar Dhiman (1):
          fix(server): Claude no longer tries to update itself through a mise command wrapper (#27466)
    
    Guanying Chen (1):
          perf(server): reuse untracked paths in Git status (#28374)
    
    Henry Chu (1):
          fix(server): foreground Claude forks no longer show as finished the moment they start (#26459)
    
    Hieu Le (8):
          perf(web): terminal snapshots reuse WASM memory views (#26717)
          perf(effect-acp): frame large ACP stdout lines in linear time (#26686)
          perf(shared): fold command output without copying scrollback per chunk (#26691)
          perf(web): composer serializes each draft doc once per keystroke (#26720)
          perf(clients): thread search reuses per-thread fields across keystrokes (#26936)
          perf(shared): strip plan prefixes in linear time (#28537)
          perf(shared): count terminal resume lines without allocations (#28539)
          perf(server): worktree creation spawns fewer git processes (#28582)
    
    Ian Rowe (1):
          fix(acp): a lost or locked Copilot session restarts on the next message instead of failing every time (#26651)
    
    Igor Makowski (2):
          fix(web): changing the sidebar project filter starts the list at the top (#27327)
          fix(web): many automations no longer hide the thread details Automations section (#28585)
    
    Isaac Mayes (2):
          fix(themes): accept VS Code JSONC imports (#25375)
          fix(desktop): keep preview download settings out of app exports (#25428)
    
    Ivan Fedyunin (1):
          fix(web): honor editableFocus in shortcut conditions (#24134)
    
    Jackson Miller (2):
          fix(web): the welcome wizard keeps the project selection when you go back a stage (#24719)
          fix(server): device list warnings keep the hub's error detail (#25248)
    
    Jagrat (1):
          fix(web): settled shelf no longer crashes with several projects filtered (#27231)
    
    James Tatum (1):
          fix(web): show mixed automatic defaults across environments (#28005)
    
    John Nunemaker (1):
          fix(web): mod+L focuses the browser address bar from a focused page (#22328)
    
    Julius Marminge (12):
          fix(mobile): thread links show their thread's title (#26485)
          fix(web): ChatView browser test no longer times out on CI (#28834)
          feat: managed policy for organization-wide T3 Code configuration (#27197)
          fix(mobile): files with brackets in their names attach on Android (#28983)
          fix(server): Stop ends a run whose provider turn already finished (#28520)
          fix(server): a linked retry closes the waiting link card it names (#28387)
          fix(server): a stored boolean settledOverride no longer stops startup (#28314)
          fix(server): remote updates no longer fail when the staged preflight is slow on a loaded host (#28201)
          fix(server): idle compaction survives a late update for an earlier run (#28102)
          fix(server): usage prices bare model names at the maker's rate when a reseller marks them up (#28004)
          fix(server): open clients no longer stay on "Updating" after a provider update (#27992)
          ci(release): preview releases run from any branch (#27828)
    
    Kayzel (1):
          fix(web): copy and save images embedded as data URLs (#23621)
    
    Keith Vertrees (1):
          fix(ssh): stop asking for a password when the SSH agent can't sign (#23437)
    
    Kim Khoi Lam (1):
          fix(clients): pasting a path copied from Finder or Explorer adds that folder (#28460)
    
    Koushik_xd (1):
          fix(muse): list background children under their turn item's native id (#23856)
    
    Lakshmi Tanmay (9):
          fix(web): find the fallback model in Settings search (#27376)
          perf(server): reuse compiled modules for CLI commands (#27433)
          fix(server): disclose truncated history in imported threads (#27743)
          fix(opencode): recover Go limits after a startup timeout (#27757)
          fix(web): align composer context icons and space their labels (#28083)
          fix(server): remember T3 Connect HTTP/2 fallback across restarts (#28105)
          fix(server): show why Codex hooks stopped a turn (#27399)
          fix(providers): Antigravity API-key setup says Connect (#27759)
          docs(claude): explain idle compaction fallback (#28532)
    
    Lee Keun Hwee (1):
          fix(web): Backspace no longer re-nests a checkbox under a bullet (#27384)
    
    Lukas (2):
          fix(web): make Changes and PR Code file lists resizable (#28244)
          fix(server): Antigravity no longer delays server startup by deleting old runtimes (#27651)
    
    M.Umais Adeed (2):
          fix(client): the folder browser shows folders added or removed while T3 runs (#28064)
          fix(mobile): chat folds stay closed until tapped, as on web and desktop (#28072)
    
    Mantas Kantautas (1):
          fix(web): composer fallback keeps the effort of a model saved under an alias (#27859)
    
    MarcoDotIO (12):
          fix(gitlab): canceling pipelines no longer show as pending (#21543)
          fix(web): PR diffs list a `.logic.test.ts` file beside the source it covers (#23129)
          fix(mobile): Bitbucket and GitCafe approvals show as approved on the PR timeline (#23138)
          fix(server): terminal labels keep the whole name of a command with spaces (#23140)
          fix(acp): cancelled plan steps no longer keep the plan running (#25564)
          fix(cli): trace summary no longer prints near-second durations as "1000ms" (#27266)
          fix(shared): branch names keep accented letters as plain letters (#27274)
          fix(server): worktree threads get their generated branch name when a branch named t3 exists (#27815)
          fix(mobile): single-comment PR discussions say "1 comment", not "1 comments" (#22926)
          fix(server): unlink_pull_request reports a dismissed stack PR as not linked (#25561)
          fix(server): t3_thread_read pages no longer split an emoji in half (#27273)
          perf(client): repeated server settings keep the same settings object (#27818)
    
    Marko Milanovic (1):
          fix(antigravity): accept empty startup skill directories (#27191)
    
    Melbourne Baldove (1):
          fix(web): expanded SVG diagrams fill the image viewer (#27519)
    
    Michael Feldstein (1):
          fix(desktop): allow pointer lock in the built-in browser (#25275)
    
    Michael Morahan (1):
          fix(web): Tab completes folder names in the add-project browser (#28243)
    
    Mike (1):
          docs(readme): list fx as a supported provider (#25974)
    
    Mike Olson (2):
          refactor(desktop): Drop the unused Linux --class switch (#14482)
          fix(web): Queued messages can be edited during Compact and send (#27310)
    
    Narayan Joshi (1):
          perf(server): stop measuring replay bytes once over budget (#27405)
    
    Nate Glasby (2):
          fix(web): keep diff base selector available after errors (#27635)
          fix(desktop): disable blocked t3 CLI installation (#27286)
    
    Naveed Iqbal (1):
          fix(client): reject incomplete GitHub owner paths before lookup (#23024)
    
    Nicholas Wasmiller (1):
          fix(web): the undo notice no longer pushes the update button out of the sidebar (#27695)
    
    Nik (1):
          fix(web): Escape while recording a shortcut no longer closes Settings (#27151)
    
    Nikita Maximilian Grimm (1):
          fix(web): file preview videos keep their own aspect ratio (#21839)
    
    NotAnNvidiaFan (3):
          fix(web): PR links at launch open the PR view with the local environment disabled (#26099)
          fix(web): sidebar drops a deleted project's filter with the local environment disabled (#28179)
          fix(web): skill menus show loading while project skills arrive (#28209)
    
    Omar (1):
          perf(server): skip no-op settlement decisions (#27897)
    
    Otavio Salvador (1):
          fix(acp): turn token spend no longer blocks provider handoffs (#22608)
    
    Pyseph (1):
          perf(server): projects without a repository stop spawning git on every lookup (#27980)
    
    RVZO6 (1):
          fix(mobile): disabled send button is readable in Material You dark (#23155)
    
    Radu-Stefan Popa (1):
          fix(acp): Plan mode switches Copilot into its native plan mode (#26951)
    
    Riccardo Palleschi (1):
          fix(cursor): ignore a stale Keychain login when Cursor is not installed (#27143)
    
    Richard Biroš (1):
          docs: explain how to enable the context window indicator (#21678)
    
    Rishabh_t106 (1):
          fix(forgejo): merged and closed pull request lists only return their own rows (#24772)
    
    Rishit (1):
          fix(server): accept case-insensitive MCP bearer schemes (#23782)
    
    Rob Homewood (2):
          fix(provider-core): Chocolatey Claude installs stay manual-only and compare against choco (#22941)
          fix(clients): open a delegated child's approval on the environment it runs in (#28592)
    
    Ruslan Panamarenka (1):
          fix(server): Codex sessions get T3CODE_THREAD_ID like Claude sessions (#28604)
    
    Ryan McDonough (1):
          fix(desktop): SnapShots keep working on Hyprland after an app update (#28240)
    
    Saikrishna Ambeti (1):
          fix(web): format inline code when the opening backtick is typed last (#23940)
    
    Samuel Newman (1):
          fix(mobile): sent messages rise into place instead of dropping in (#28660)
    
    Shawn (1):
          fix(mobile): finished threads leave Working once the grace ends (#28169)
    
    Shkumbin Hasani (1):
          fix(web): clicking a file in the Files tree keeps focus on that row (#28521)
    
    Simone (2):
          fix(desktop): keep noisy shell probes from blocking PATH capture (#21913)
          fix(shared): allow atomic saves through 40 symlinks (#25604)
    
    Sky Hong (1):
          fix(web,mobile): time out client activity reports that never settle (#24362)
    
    Solomon Botchway (1):
          fix(server): preview browser picks up Chrome 156.0.8078.79 security fixes (#27822)
    
    Sparsh Kaushik (1):
          fix(server): Claude threads revert to the message after a /compact (#27381)
    
    Srijan Dubey (1):
          fix(clients): background work Stop stays pending until the stopped tasks leave (#25002)
    
    Theo Browne (17):
          fix(web): model picker stays put with long names and agent options (#28409)
          fix(web): background command details open above their button (#28446)
          fix(clients): questions always move a thread out of Working (#28515)
          feat(scheduler): run a scheduled task once at a specific date and time (#28104)
          fix(server): interrupted scheduled task runs no longer stay busy (#28474)
          feat(release): update notes lead with up to 7 highlights (#28593)
          test(server): pin clock in saved-usage window test (#28603)
          fix(web): sidebar project filter no longer refocuses after a pick (#28605)
          feat(usage): filter Usage totals by provider and model (#28952)
          fix(preview): agent browser use no longer steals composer focus (#28613)
          fix(server): token telemetry counts each request once and only confirmed models (#29001)
          update the claude entrypoint identifier for accuracy (#28410)
          perf(server): Codex calls t3_thread_wait directly instead of from Code Mode (#29026)
          refactor(server): name Codex's direct-only T3 MCP server t3-code-direct (#29068)
          fix(web): model picker uses the full window height in short windows (#29017)
          fix(desktop): save and copy any image the app can show (#29079)
          feat(chat): threads show when you switch models or effort (#28995)
    
    Tomer Danan (1):
          fix(web,mobile): Hebrew and Arabic read right to left in questions, citations, attachments and diff comments (#24050)
    
    Trevor (1):
          fix(codex): a failed write to the app-server no longer leaves requests hanging (#27924)
    
    Tristan Knight (1):
          test(server): stopped-queue steering test no longer races queue promotion (#22529)
    
    Utkarsh Patil (4):
          fix(cli): close legacy database before deleting it on Windows (#27629)
          perf(shared): skip parsing cached terminal styles (#27041)
          perf(web): compact changed-file directories once (#27073)
          perf(client): avoid temporary arrays in inbox snapshots (#27467)
    
    ValeraZSD (1):
          fix: paste-as-text shortcut on non-Latin layouts (#28470)
    
    Victor (1):
          fix(web): settings search no longer jumps or clears on an IME Enter or Escape (#28298)
    
    Victor Vogel (67):
          fix(cursor): avoid reporting unfinished tool calls as successful (#21448)
          fix(pi): show an extension dialog's title once (#22463)
          fix(server): generated PR text reads source diffs instead of textconv output (#22503)
          perf(desktop): speed up Hyprland and KDE SnapShots (#23137)
          fix(web): show linked pull request state in command palette rows (#23156)
          fix(desktop): read the Chrome cookie key off the main thread on macOS (#23157)
          fix(screenshots): reject corrupt PNGs during validation (#23161)
          fix(web): give non-Latin theme names distinct stable ids (#23162)
          fix(server): generated commit messages use source patches (#23164)
          fix(web): keep newer titles when an untouched header rename ends (#23171)
          fix(observability): record OTLP/JSON spans that leave out empty fields (#23177)
          fix(server): keep the live search index when a refresh times out (#23182)
          fix(web): respect provider permissions in bulk updates (#23183)
          fix(mobile): cap live work-log summaries for long approval prompts (#23227)
          fix(web): keep project name edits open during IME composition (#23231)
          fix(server): put the updated runtime on the macOS service PATH (#23239)
          fix(server): Steer on a queued message keeps the model picked for it (#23240)
          fix(server): review guide stops no longer show the same lines twice (#23725)
          fix(pi): log oversized RPC records instead of dropping them silently (#23947)
          fix(web): show readable errors when a stack action fails (#24118)
          fix(server): t3 update no longer deletes the runtime its launcher runs (#24289)
          fix(relay): long CJK titles no longer stop Live Activity updates (#24679)
          fix(scripts): Alchemy reference sync reads the catalog version (#28268)
          docs(mobile): mobile README links the store apps instead of calling the app unreleased (#28269)
          fix(ci): a change to the T3 Connect troubleshooting guide runs the server test that reads it (#28273)
          fix(scripts): report:renders works on machines without ~/.cache (#28274)
          docs: composer banner guidance names a consumer that still exists (#28276)
          docs(mobile): name the Android 16 Agent Live Updates switch in the notifications guide (#28310)
          fix(server): treat a repository's only non-origin remote as its primary remote (#22119)
          perf(server): sort the working-tree file list once per status read (#22499)
          fix(web): keep theme color alpha when a hex value is typed (#23136)
          fix(web): keep saved sensitive variables from losing their value (#23168)
          perf(server): t3_thread_read loads a page's items in one query (#23176)
          fix(mobile): use loaded branch for untouched worktree base (#23241)
          fix(server): report a created PR as created when its lookup fails (#23242)
          fix(opencode): steers keep the turn's agent, variant and instructions (#23270)
          perf(ci): skip PR vouch jobs for ordinary comments (#23387)
          fix(web): sort pull request lists and timelines by time (#23588)
          perf(ci): thread transfer report stops paging all main CI runs (#23633)
          fix(server): T3 Connect keeps a log file of its tunnel connector (#24485)
          fix(server): saving a shortcut no longer deletes rules it can't read (#24494)
          fix(web): installing two providers at once starts both (#24655)
          fix(server): Codex switches respect each instance's CODEX_HOME variable (#24664)
          fix(server): dev seeding accepts migration histories the server boots (#24665)
          fix(web): interval settings save when editing ends, not per keystroke (#24673)
          fix(web): a failed plan follow-up no longer overwrites the next draft (#24684)
          fix(server): selected-file commits stop when the index reset fails (#28275)
          fix(opencode): OpenCode installs T3 can't identify no longer get an Update button that hangs (#28278)
          perf(server): MCP calls skip the caller's message history (#28282)
          fix(web): streamed replies render a list's code block as the finished reply does (#28285)
          fix(ci): a providerEnv.ts change runs every package's tests (#28286)
          fix(opencode): OpenCode 1.x text generation deletes its scratch session (#28294)
          fix(scripts): check:changed no longer passes failing .github/scripts tests (#28296)
          fix(web): Diagnostics memory no longer reads "1024.0 MB" (#28300)
          perf(server): sending a message no longer rereads the thread from the database after settle, snooze or title updates (#28301)
          fix(web): device tools keep the typed text when a command fails (#28323)
          fix(server): turn diffs keep the agent's files when git's diff.relative is on (#28361)
          fix(server): tracked clones keep an explicit SSH protocol on fallback and Retry (#28365)
          fix(claude): Claude text generation stops saving throwaway transcripts (#28367)
          fix(desktop): bound the Linux xdg-mime registration like its sibling helpers (#28368)
          fix(opencode): OpenCode 1.x text generation gives up after 3 minutes like every other runner (#28372)
          fix(server): a fork no longer inherits the source thread's pin, auto-settle and delegation state (#28378)
          fix(web): deleting a thread clears its saved right-panel, diff-panel and mini-player state (#28386)
          fix(server): command projection failures keep their cause (#28389)
          fix(providers): slow Grok, Pi and fx starts no longer show as unavailable (#28400)
          fix(server): truncated text stays the same when projected again (#28418)
          fix(desktop): a settings relaunch no longer replays the link that launched the app (#28464)
    
    Vikas-Maur (1):
          fix(web): dark-mode <picture> images load instead of showing "Image unavailable" (#26398)
    
    Vitaly Iegorov (2):
          fix(web,mobile): lineage and agent rows show which account a subagent runs on (#24833)
          fix(web,mobile): subagent cards show which account each subagent runs on (#24898)
    
    Vux (1):
          fix(server): scheduled tasks start from the default branch, not always main (#27983)
    
    Wagner Rosa (1):
          docs(opencode): say where compaction is configured (#27614)
    
    Will Adams-Keane (1):
          fix(client): a new thread's content no longer stays blank after an early 404 (#27722)
    
    William Sedlacek (1):
          fix(web): Changes row no longer shows +0 while Diff has edits (#28439)
    
    Yash Singh (15):
          fix(web): prevent composer image thumbnail flicker (#28499)
          fix(desktop): preserve host focus on preview pointer presses (#28549)
          fix(web): add spacing above PR detail metadata (#28573)
          feat(dev): add startup profiling for cold-start diagnosis (#28566)
          feat(clients): surface child approvals in parent threads (#28516)
          feat(desktop): prepare server bytecode cache in native builds (#28572)
          fix(desktop): discover shell environment without blocking startup (#28556)
          fix(server): refresh Changes totals after remote polls (#28600)
          perf(codex): trace app server request latency (#28666)
          fix(web): align pull request file viewed checkboxes (#28665)
          fix(desktop): skip prepared server bytecode on Linux (#28700)
          perf(cursor): load the agent SDK only when needed (#28718)
          fix(web): clarify the waiting label for background work (#28969)
          fix(web): keep pending pull request actions scoped to each request (#29005)
          fix(desktop): load the renderer while the backend starts (#28715)
    
    Yoru (1):
          fix(desktop): skip auxiliary macOS snapshot windows (#22624)
    
    Yuruzuu (5):
          perf(web): main thread updates no longer re-render an open side chat (#28264)
          perf(server): skip unused parent data when forking threads (#28265)
          perf(server): stop summarizing side chat context at its cap (#28266)
          perf(web): typing in a thread no longer re-renders sidebar drafts (#28267)
          perf(web): render minimap highlights without extra nodes (#28270)
    
    Zach (2):
          fix(shared): keep Azure clone URLs valid when switching protocols (#24005)
          fix(scripts): launch check:changed on Windows without a vp shim (#24164)
    
    ahalekelly (1):
          fix(client): a resume no longer re-renders every home row five times (#27404)
    
    ash (3):
          fix(provider-core): provider updates find npm on the provider's custom PATH (#27321)
          fix(web): PDF previews keep their page across thread switches (#25496)
          fix(claude): approval cards close when Claude withdraws the request (#27320)
    
    diddletime (1):
          fix(web): keep inward mini browser resizes from growing (#26027)
    
    fixfon (1):
          fix(web): usage limit toast shows the Limited icon (#24260)
    
    hbw00111 (1):
          fix(server): force-stop timed out login shell probes (#7295)
    
    juuulianx (1):
          fix(web): skill labels show the skill's own name (#27741)
    
    kamkm (1):
          fix(effect-acp): honor advertised session delete capability (#27771)
    
    luke (1):
          perf(clients): bound subagent preview processing to the visible prefix (#21277)
    
    maco (4):
          fix(shared): preserve escaped trailing whitespace in CLI arguments (#27485)
          fix(shared): preserve surrogate pairs in truncated CSV cells (#27497)
          fix(server): preserve surrogate pairs in generated thread titles (#27483)
          fix(shared): preserve files outside log rotation naming (#27503)
    
    maria (5):
          feat(mcp): unlink every PR in given states with one call (#27925)
          feat(mcp): link several PRs to a thread with one call (#27994)
          fix(acp): keep turn spending out of context usage (#27927)
          feat(mcp): preview_open goes straight to a dev-server port (#28027)
          test(web): pass stale to the stack menu refusal test (#28887)
    
    matthias-scale (1):
          fix(web): keep the default instance's draft model off custom instances (#25511)
    
    melvinmng (1):
          fix(server): clean unchanged worktrees without a remote (#27175)
    
    nibarAhmed (1):
          fix(mobile): TalkBack reads the message field before Send (#27249)
    
    oliver (3):
          fix(mobile): images stop re-downloading when their URL is re-signed (#21527)
          fix(server): device tools accept a host's label and reject unknown hosts (#25836)
          fix(web): sidebar metadata uses the theme's colors in dark mode (#27268)
    
    oss96 (1):
          fix(gitlab): merge requests show their approval state (#26877)
    
    samkelly880 (4):
          fix(shared): /Model with a query still opens the model picker (#27837)
          fix(server): empty primary cookie no longer blocks bearer auth (#27848)
          fix(shared): truncate keeps emoji whole (#27841)
          fix(shared): inverted terminal ranges emit no fake lines (#27843)
    
    sergiiopm (1):
          fix(web): folder rows no longer jump at larger interface font sizes (#28428)
    
    shivam (7):
          fix(server): preview status and snapshot never echo a data: page's contents (#22302)
          fix(desktop): allow slow backends to start before showing recovery (#26247)
          fix(web): explain when a theme hides environment artwork (#27936)
          fix(mobile): Android commit sheet scrolls to the commit buttons (#28272)
          fix(provider): show exit details when ACP session startup crashes (#28419)
          fix(web): allow folder references on saved local desktop servers (#27785)
          fix(mobile): explain why voice input is unavailable (#28698)
    
    t3-code-bot[bot] (2):
          test: remove unreachable sidebar helper suites (#26920)
          fix(web): skip star prompt when the server check is unavailable (#28364)
    
    tiliakoos (1):
          fix(web): terminal URLs like redis:// no longer become broken file links (#28189)
    
    tyler-b4innova (1):
          fix(server): keep a gateway's Claude reset time on a direct 429 (#25438)
    
    voida6 (4):
          fix(web): line up the Date and Time fields in custom snooze (#23360)
          fix(web): typed answer moved to the draft by an option click is announced (#24331)
          fix(client-runtime): threads with many images no longer flood a remote with URL requests (#27440)
          fix(mobile): markdown images no longer shake on Android (#27943)
    
    xlurie (1):
          fix(server): restart continuation checks before repeating side effects (#27836)
    
    yaacovcorcos (2):
          fix(server): stopping a Claude turn no longer hangs without an acknowledgement (#16419)
          fix(shared): opening a database waits for another process's lock (#28288)
    
    عبدالسلام (1):
          fix(client-runtime): re-pairing at a new address uses the new token (#25591)
    
    

    Touchpoint overlap

    Files overlapping fork feature touchpoints:
    apps/mobile/src/components/ProviderIcon.tsx
    apps/mobile/src/features/threads/ThreadSettingsSheet.tsx
    apps/mobile/src/lib/modelOptions.test.ts
    apps/mobile/src/lib/modelOptions.ts
    packages/contracts/src/model.ts
    packages/contracts/src/settings.test.ts
    packages/contracts/src/settings.ts

    Automated sync-check report. No merge was performed — merging is always manual.

  2. github-actions commented on Nov 9, 2026

    @github-actions
    Author

    New commits: 729

    12ya (1):
          fix(mobile): accept image drops in the iOS message input (#25532)
    
    ABDUL RAHMAN JAMSHID NASSER AL RASHDI (1):
          feat(web,mobile): move a scheduled task to another thread (#31379)
    
    Abdullah Al Zawad (1):
          fix: side chats start with the parent's permission mode and reasoning level (#32315)
    
    Abhishek B R (5):
          fix(server): reverting files before the first commit no longer leaves them staged (#28647)
          fix(server): truncated Claude task output no longer starts with a replacement character (#28643)
          fix(shared): relative file links with routing punctuation open as files (#28637)
          fix(server): messages cut by a restart no longer stay marked as streaming (#28646)
          fix(acp): file changes show the patch of every diff in a tool call (#28631)
    
    AdEx-Partners-DE (1):
          fix(server): startup no longer hangs on a shell stuck in the kernel (#27938)
    
    Adam Otradovec (1):
          fix(azure-devops): existing pull requests are found for branches containing # (#31928)
    
    Adamulek123 (1):
          perf(server): skip unused parent history in linked task status (#27913)
    
    Advait Paliwal (1):
          perf(server): PR sync stops reading pull requests closed over a day ago (#30071)
    
    Akshar Patel (1):
          perf(server): skip oversized history during handoff selection (#23821)
    
    Ale 🐶 (1):
          fix(server): Antigravity installs on Intel Macs (#30189)
    
    Alex (6):
          feat(mobile): add on-device Android dictation (#26734)
          fix(mobile): transcribe Android audio during recording (#31300)
          fix(mobile): shorten the model picker save action (#32551)
          fix(mobile): center Android header confirmation buttons (#32239)
          fix(mobile): keep side chats readable over the conversation (#32240)
          fix(mobile): keep Android live activity independent of alerts (#24933)
    
    Alex Southwell (125):
          perf(web): PDF previews reload without starting a new pdf.js worker (#29626)
          fix(server): project content search finds matches past a line's first 512 characters (#29167)
          fix(clients): attachment sizes just under 1 MB no longer read "1024 KB" (#29165)
          fix(gitlab): merge request links keep an HTTP remote's port and scheme (#29170)
          fix(server): an upstream shadowed by a local origin/<branch> branch keeps its real remote (#29180)
          fix(server): turn diffs keep signed commits' files under log.showSignature (#29124)
          fix(server): generated commit and PR text no longer reads colored git output (#29126)
          fix(client-runtime): checking out a pull request refreshes cached branch lists (#29161)
          fix(shared): context chip labels no longer split an emoji at the 200-character cap (#29158)
          fix(server): create_threads titles no longer end in a broken character (#29163)
          fix(server): Uncommitted review keeps a staged deletion that git pairs into a rename (#29571)
          fix(cli): t3 thread start titles no longer end in a broken character (#29563)
          fix(web): review comments keep a trailing blank line in their diff (#29575)
          fix(server): side chat and merge-back context no longer cut an emoji in half (#29572)
          fix(forgejo): dismissed reviews no longer read as requested changes or approvals (#29567)
          fix(gitcafe): PR link previews show a GitHub-merged pull request as merged (#29595)
          fix(codex): restoring a checkpoint works after the Codex session was archived (#29582)
          fix(server): diffs keep blank context lines under diff.suppressBlankEmpty (#29579)
          fix(scripts): check:changed passes when only lint-ignored code changed (#29596)
          fix(scripts): check:changed lints Astro components and runs knip for them (#29573)
          fix(codex): a background command's wake no longer hangs when its output tail splits an emoji (#29168)
          fix(server): side chats no longer open with a model switch from the parent's turn (#29752)
          fix(web): copied code blocks keep their blank lines in lists, quotes and longer fences (#29755)
          fix(client): project removal counts only listed threads, not side chats or subagents (#29917)
          fix(opencode): text generation errors explain known provider failures without raw provider text (#29877)
          fix(mobile): multi-file patches show every changed file (#29878)
          fix(server): handoff context names every file of a multi-file patch (#29905)
          fix(server): commits and PR text see changes outside a subfolder project under diff.relative (#29879)
          fix(web): opening a project from the command palette no longer lands in a subagent or side chat (#29891)
          fix(web): device host checks show the error without a stack trace (#29912)
          fix(github): Rebase stack no longer conflicts after a lower layer is squash-merged (#29919)
          fix(server): generated commit and PR text ignores git signature output (#29580)
          fix(web): picking a branch in a subfolder project keeps the thread in the project folder (#29908)
          fix(desktop): Ctrl+R on macOS reaches the preview page instead of reloading it (#29893)
          fix(server): native forks after an undo no longer copy later turns (#29902)
          fix(server): idle compaction still runs after a queued message is removed or steered (#29904)
          fix(server): guests of a forked thread can open files on the messages it inherited (#29794)
          fix(server): cancelling worktree setup no longer leaves its new branch behind (#29781)
          fix(antigravity): rate-limited turns keep their reset time (#29594)
          fix(server): title regeneration works after a thread's worktree is cleaned up (#29606)
          fix(server): dev servers a Codex agent starts show under its thread (#29687)
          fix(server): status no longer fetches a remote named after a local tracked branch (#29670)
          fix(server): preview snapshots no longer cut an emoji in half (#29600)
          fix(server): restart notes no longer split an emoji in a long background task label (#29647)
          fix(server): forking a Codex thread archived outside T3 Code no longer fails (#29618)
          fix(preview): a dropped stream withdraws its stale file picker (#29655)
          perf(opencode): provider event logs skip per-token reply deltas (#29673)
          fix(server): files tree labels ignored folders inside git submodules (#29650)
          fix(server): PR watch wakes no longer split an emoji in a long comment (#29633)
          fix(server): pinning a settled thread stamps its return to the active list (#29602)
          docs: keybindings guide lists the rightPanelOpen when key (#29677)
          fix(desktop): failed settings saves no longer leave temp files behind (#29635)
          fix(acp): a final agent message without a trailing newline is no longer dropped (#29605)
          fix(server): terminal history keeps output after an unterminated OSC (#29604)
          fix(cli): t3 up's pairing hint keeps --base-dir (#29684)
          fix(server): thread titles use linked PR context when the URL is followed by a colon or bold markers (#29656)
          fix(server): terminal history keeps text with C1 characters (#29649)
          fix(server): worktree handoff follows the project's start-from-origin setting (#29810)
          fix(server): review keeps tracked changes when untracked files overflow the listing (#29615)
          fix(server): browser setup advice names the server's T3 home (#29646)
          fix(client-runtime): terminals fit their pane again after a reconnect (#29696)
          fix(server): Run now on a scheduled task says why it was refused (#29620)
          fix(server): a preview_open whose first load fails no longer leaves a hidden tab behind (#29865)
          fix(cursor): Cursor text generation names usage-limit failures (#29748)
          fix(server): review diffs keep working with untracked files outside the sparse cone (#29880)
          fix(opencode): nested custom commands like /git/commit run as commands (#29765)
          fix(source-control): renamed files in GitHub, GitLab and Azure DevOps diffs show as renames (#29774)
          fix(opencode): a command that exits non-zero is stored as failed, not completed (#29824)
          fix(server): linked environments pick up the other machine's new name (#29779)
          fix(server): document text skips tracked deletions and field codes (#29796)
          fix(server): OTLP export settings survive a saved token streaming mode (#29786)
          fix(server): Word text boxes are no longer extracted twice for agents (#29827)
          fix(server): new projects are created when core.safecrlf refuses LF files (#29843)
          fix(web): drafts saved by older versions load instead of being wiped (#29828)
          fix(server): Antigravity text generation shows sign-in and setup errors (#29823)
          fix(web): picking a custom model named like a Codex alias keeps that model (#29789)
          fix(server): turn checkpoints keep LF files when core.safecrlf is true (#29826)
          fix(shared): find in thread matches a word typed with a curly apostrophe (#29759)
          fix(server): review rows for nested repositories load in large diffs (#29693)
          fix(server): t3_worktree_list lists refs after storage cleanup removes a thread's worktree (#29645)
          fix(provider-core): text generation context cuts no longer split an emoji (#29653)
          fix(server): html_preview no longer splits an emoji in a long console line (#29844)
          fix(server): diffs keep submodule changes under diff.submodule=log (#29852)
          fix(opencode): OpenCode 2 titles for image messages skip images the server cannot open (#29819)
          fix(server): orchestrator_capabilities no longer offers providers the project turned off (#29842)
          fix(web): big terminal selections no longer break sending (#29804)
          fix(azure-devops): legacy DefaultCollection pull request URLs can be pasted to check out (#29763)
          fix(shared): preview_open reports about: and mailto: as unsupported instead of misreading them (#29614)
          fix(kiro): slow kiro-cli starts no longer show Kiro as unavailable (#29841)
          fix(client): mark unread sticks on a thread reopened within ten minutes (#29814)
          fix(pi): extension errors name folder extensions instead of "index" (#29768)
          fix(github): Enterprise Server pull request URLs can be pasted to check out (#29892)
          fix(server): a peer refusing one call no longer marks its link as failing (#29914)
          fix(server): t3 service uninstall leaves another T3 home's service alone (#29872)
          fix(server): PR watches wake again when a push leaves the branch conflicting (#29767)
          fix(muse): the thread error banner no longer shows unredacted failure text (#29910)
          fix(server): provider settings changed mid-refresh no longer revert to the old status (#29894)
          fix(cli): t3 update no longer says a service awaiting restart runs the new version (#29901)
          fix(server): preview tabs that fail during setup no longer leave their page open (#29885)
          fix(provider-core): long subagent titles no longer end in a broken character (#29906)
          fix(server): a failed scheduled run shows its error without a stack trace (#29889)
          fix(server): published repos fall back to HTTPS when SSH is refused (#30142)
          fix(server): a link card the user moved past no longer blocks auto-settle (#29847)
          fix(server): deleting a thread also removes its agent preview recordings (#29853)
          fix(server): review guides no longer fail on the repository's checkout hooks (#29907)
          fix(mobile): delivered messages no longer reappear at the bottom of reopened long threads (#31182)
          fix(pi): usage reports include sessions stored in a --session-dir launch argument (#30690)
          perf(mobile): skip unchanged terminal toolbar fade updates (#25312)
          perf(mobile): assemble HTML replacements in one pass (#25278)
          perf(mobile): skip canceled SVG parsing (#25314)
          test(server): strengthen v1 cutover proof with event-stream waits and content snapshots (#11869)
          fix(threads): allow snoozing pending input requests (#20058)
          test(web): worked-for expand test waits for the timeline to finish loading (#29661)
          perf(mobile): skip obsolete queued iOS diff row decodes (#25287)
          perf(mobile): skip obsolete queued full token decodes (#25320)
          perf(mobile): avoid code row scans while dragging file paths (#25484)
          fix(mobile): sending on iOS no longer leaves an autocorrected draft behind (#26452)
          fix(server): a command id reused for two threads at once no longer succeeds for both (#18385)
          fix(server): a publish whose first push fails still shows the new remote (#29688)
          fix(server): reverting files removes what a new .gitignore from the turn was hiding (#29795)
          fix(desktop): quit no longer orphans a backend that is slow to stop (#22572)
          fix(opencode): tools stopped mid-run show as interrupted, not failed (#29762)
          fix(cli): t3 pair's no-running-server hint keeps --base-dir (#30689)
          fix(shared): shortened agent paths like /tmp/... no longer become broken file chips (#30762)
          fix(azure-devops): a fork's same-named branch no longer hides the branch's own pull request (#29817)
    
    Alyx Buckmann (1):
          fix(server): coalesce tool output before it fills the live buffer (#16317)
    
    Andrei (10):
          perf(server): thread snapshots skip serializing a row past the row limit (#29103)
          perf(client-runtime): expanding deferred work skips an unused timeline rebuild (#29114)
          perf(server): loading a file's diff skips unused repository lookups (#29115)
          perf(acp): ACP agents skip decoding output twice for unused diagnostics (#29100)
          perf(client): streamed row updates no longer rescan question history (#29105)
          perf(server): shell updates read a burst of threads once (#29101)
          perf(server): GitHub activity reads skip PR-wide fields on later review-thread pages (8.9 s → 6.8 s median) (#30294)
          perf(server): the headless browser closes after five idle minutes (517 MiB → 1.6 MiB median) (#30306)
          perf(server): a slow host no longer delays other watched PRs' wakes (935 ms → 65 ms median) (#30291)
          perf(server): PR cache invalidation no longer waits on other projects' reads (1,163 ms → 0.12 ms median) (#30293)
    
    Antony (21):
          fix(gitlab): author names link to GitLab profiles (#30418)
          fix(gitlab): merge messages drop agent credits (#30441)
          fix(gitlab): file and image comments appear as review threads (#30425)
          fix(gitlab): bot authors are flagged as bots (#30383)
          fix(gitlab): merge requests can edit their labels (#30483)
          fix(gitlab): edited comments wake PR watchers (#30403)
          fix(gitlab): merge requests can delete their source branch (#30453)
          fix(gitlab): comments link to their note on GitLab (#30411)
          fix(gitlab): the checks and review list filters work (#30433)
          fix(gitlab): unresolved overview threads count as review findings (#30397)
          fix(gitlab): threads on changed code show as outdated (#30423)
          fix(gitlab): the checks panel lists each pipeline job (#28728)
          fix(web): adding to the composer no longer drops earlier findings and selections (#24990)
          feat(pull-requests): PR composers complete @user mentions (#30747)
          feat(web): add pull request comments to the chat (#30579)
          feat(gitlab): link issue, merge request, commit and user references (#30524)
          feat(gitlab): reviews can request changes (#30549)
          feat(pull-requests): PR composers complete #123 and GitLab !123 references (#30857)
          feat(gitlab): merge requests from forks can toggle maintainer edits (#30518)
          fix(prs): reviewer menu searches past the first page and keeps GitLab's requested reviewers (#22489)
          fix(server): saved preview screenshots keep full resolution (#28255)
    
    Arif Ali (1):
          fix(mobile): group settled PR threads in the continue menu (#27941)
    
    Bartłomiej Błoniarz (1):
          fix(web): PR bodies keep before/after video tables intact (#25988)
    
    Behzad Motaghi (1):
          perf(server): bound ordinal recovery to selected messages (#27495)
    
    Ben Davis (1):
          feat(pi): Fast and Ultrafast service tiers for Pi models (#33177)
    
    Bilal Bakr (5):
          fix(web): long server lists in thread details now page 4 at a time (#28684)
          feat(claude): Ultracode works with any effort, like Claude Desktop (#27034)
          perf(pr): pull requests paint from data already held, on web, desktop and mobile (#27798)
          perf(pr): actions update every client from the host's reply instead of re-reads (#25761)
          perf(mobile): faster thread sync, connects, and reconnects on bad wifi (#28487)
    
    Cameron Chisholm (2):
          perf(mobile): call the highlights lexer through Nitro, up to 10x faster calls on Android (#31188)
          perf(mobile): stop iOS syntax highlighting from looking up a thread-local on every lexer call (#31187)
    
    Chunhao Zhang (1):
          fix(server): Claude context meter shows the window for models outside the catalog (#30051)
    
    Derek Trimm (1):
          fix(server): Codex threads open in another client are no longer silently replaced (#21045)
    
    Dharmesh (1):
          fix(web): rank usage provider summaries by the selected metric (#15632)
    
    Djordje Stojanovic (1):
          docs(updates): say when Update all leaves a provider out (#32269)
    
    Dominik Engelhardt (1):
          fix(web): terminal types macOS Option-layer characters (#21596)
    
    Ebrahim Tayabali (1):
          fix(client-runtime): branch picker shows branches changed outside T3 Code (#27438)
    
    Elliot Drel (3):
          test(server): correct Windows path and settings assertions (#30983)
          perf(client-runtime): stop tracing streamed thread batches (#30679)
          perf(server): stop tracing routine port polling helpers (#30678)
    
    Entrpi (1):
          perf(web): long threads stream with 70% less work-row derivation (#29971)
    
    Exotic (2):
          fix(threads): side chats inherit parent permissions by default (#31114)
          fix(marketing): balance fork and download heading text (#32194)
    
    Felix Laga (5):
          fix(shared): inline code like `allocator.cc:217` becomes a file chip (#32403)
          fix(server): theme files saved with a UTF-8 BOM are published instead of rejected (#32405)
          fix(grok): long command titles no longer end in a broken character (#32408)
          fix(gitlab): `glab mr accept` counts as a shell merge (#32400)
          fix(forgejo): tea's `pull` and `m` aliases count as shell merges (#32401)
    
    Frank Hommers (1):
          fix(server): ACP agents get T3CODE_THREAD_ID like Claude and Codex sessions (#30361)
    
    Gabriel De Andrade (2):
          test(evals): measure how agents get secrets only the user has (#30256)
          feat(server): agents ask for secrets through request_secret instead of chat (#30257)
    
    Georgi Todorov (1):
          feat(antigravity): support agy CLI as custom binaryPath (#32503)
    
    Harjot Singh (2):
          fix(server): read continued core.bare values during onboarding (#30174)
          fix(shared): ignore unfinished quoted Git config continuations (#30743)
    
    Hieu Le (2):
          perf(shared): stop single-token message search at the best hit (#28930)
          perf(shared): avoid redundant visibility work on status updates (#28965)
    
    Ishaan Kothari (1):
          fix(ui): snooze menu times match the menu's typography (#30596)
    
    Jai Khurana (1):
          perf(resource-monitor): Linux terminal process checks use a third of the CPU (#30381)
    
    Jeremy Meidinger (1):
          fix(mobile): iOS compose button no longer grows while a tab is pressed (#28955)
    
    Johan Vaz (9):
          fix(web): open files from Claude and ACP tool-call diffs (#29309)
          fix(shared): preserve omitted components in zero-major caret ranges (#29335)
          fix: honor generic MIME aliases in attachment previews (#29360)
          fix(opencode): edits that delete text keep their empty replacement (#30643)
          fix(forgejo): read author assignees once (#30686)
          fix(cli): expand home-relative thread project paths (#30721)
          fix(review-guide): preserve excerpt line terminators (#30717)
          fix(fx): preserve literal unicode escape text in clipped replies (#30701)
          fix(web): restore folder breadcrumb trails when reopening tabs (#30706)
    
    Jolymmiles (1):
          fix(usage): a CLIProxy hub saved as its management.html panel URL shows accounts again (#25579)
    
    Josh Rossi (1):
          fix(desktop): arm64 macOS builds no longer ship x64-only objc-js binary (#31285)
    
    Jui-Chen Chien (1):
          fix(server): git failures are read in English when macOS git follows the system language (#32252)
    
    Julius Marminge (189):
          fix(web): confirm before removing a provider instance's saved settings (#29480)
          fix(server): settled threads no longer re-send relay clears on every PR update (#29369)
          fix(client-runtime): connection diagnosis no longer blames the host while this device's sign-in loads (#29352)
          fix(opencode): Claude usage limits through OpenCode keep their reset time (#29301)
          fix(mobile): keep the conversation steady during layout changes (#29545)
          feat(marketing): fetch GitHub stars at build time (#29555)
          perf(server): pin the index for the unscoped agent event high-water (#29623)
          perf(web): the pull request code tab derives its file model once per diff load (#27833)
          perf(server): stop tracing project enrichment cache reads (#29640)
          perf(server): seek live nodes for the subagent recovery probe (#29644)
          feat(provider-kiro): add Kiro as an ACP provider (#14693)
          perf(server): idle compaction reads only the latest run, live work and newest usage (#29648)
          perf(server): cancelling a task reads only the tasks and runs it uses (#29652)
          chore(deps): upgrade Effect to 4.1.2 and alchemy to beta.85 (#26833)
          fix(web): file save session browser test no longer hangs on the discovery poll (#29813)
          fix(mobile): drafts on threads with colons in their ids upload attachments early (#29717)
          fix(server): provider refresh no longer reverts an enriched sign-in status (#29627)
          fix(server): forked Claude threads keep their compaction chain (#27577)
          fix(server): Claude subagents left by a stopped process no longer stay Running (#28356)
          fix(server): usage-limit auto-resume no longer arms children of settled parents (#27951)
          fix(cursor): a write-after-end in the Cursor SDK no longer stops the server (#27703)
          fix(server): avoid reparsing streamed replies for timestamps (#25252)
          fix(web): project settings can set a checkout's grouping rule again (#23641)
          fix(server): reject oversized goal objectives before dispatch (#23033)
          fix(server): checkpoints no longer rehash every file when one entry is skip-worktree or assume-unchanged (#23624)
          fix(web,mobile): chat images reload when the agent rewrites the file (#29741)
          fix(server): Codex usage keeps requests from interrupted turns (#29415)
          fix(client-runtime): connect to the primary environment while the browser reports offline (#29347)
          fix(server): a failed worktree add no longer leaves its new branch behind (#28373)
          fix(provider-acp): Kiro's html_render pages show in the thread (#28253)
          fix(server): streamed Browser clicks no longer wait behind queued wheel bursts (#28236)
          fix(server): Codex turns that fail with an unlisted error code no longer stay running (#28040)
          fix(opencode): sessions open through OpenCode 2 after an in-place upgrade from 1.x (#27779)
          fix(server): T3 Connect not-linked fix no longer tells Desktop users to run t3 service restart (#27660)
          fix(server): anchor Claude wake cooldowns to result arrival (#25061)
          fix(web): match new-thread hero to selected checkout (#25064)
          fix(server): stop PR lookups in emptied worktree folders (#24803)
          fix(server): agent session scans no longer hang the server on an unreadable .git/config (#23690)
          docs(connect): held webhooks are kept per managed link (#23612)
          fix(server): delegated children keep replies after their parent settles (#23456)
          fix(preview): explain invalid URLs and locators (#23396)
          fix(web): terminal controls no longer cover the first line (#23373)
          fix(server): stop maintaining the unused event correlation index (#23211)
          docs(mcp): document existing recurring-task tools (#23199)
          fix(server): release the previous session when sending to another instance (#23198)
          fix(server): OpenCode no longer drops a $skill read before its directory scan ends (#29535)
          fix(server): coalesced webhook runs use the prompt saved before dispatch (#29476)
          fix(server): slow forge CLI calls no longer delay checkpoints and turn starts (#28431)
          fix(relay): T3 Connect repairs tunnel ingress that drifted from a matching origin (#27961)
          fix(provider-core): npm-installed Claude in ~/.local gets npm updates (#27957)
          fix(server): git hooks keep the user's locale (#27778)
          fix(pi): hold messages until compaction ends (#24388)
          fix(server): show why Claude refuses full access as root (#23804)
          fix(server): preview click timeouts identify the target (#23489)
          fix(cursor): supporting files no longer hide sibling skills (#23326)
          fix(web): usage-limit retry notice shows the timezone (#23029)
          fix(server): preserve nested Claude subagent completion across turns (#23561)
          fix(opencode): publish ordered pending-work snapshots (#21460)
          fix(opencode): decode compaction history from OpenCode 2.1 (#22661)
          fix(server): import valid conversations within each transcript record limit (#23192)
          fix(server): imported Claude sessions resume on their first turn (#23219)
          fix(server): changing a task's wake policy no longer reverts a checkpointed parent run (#25662)
          perf(server): settled PR lookups stop re-spawning git every sweep (#29721)
          fix(mobile): close and reopen pull requests from the actions menu (#29962)
          fix(server): managed policy covers Kiro (#29915)
          fix(server): t3 update installs from the policy's update mirror (#29911)
          fix(desktop): a policy that stops startup no longer points at another release (#30319)
          docs: pin an absolute binary path under a permission cap (#29916)
          fix(mobile): Android follow-up menu shows in full with the keyboard open (#29263)
          fix(web): deleting the open thread no longer opens a snoozed or settled thread (#29643)
          fix(web): closing Settings or Usage no longer jumps back to a quote's source (#29013)
          fix(server): squash-merged branches no longer offer push & create PR (#28494)
          fix(mobile): settings providers show the ACP registry icon (#28135)
          fix(server): Grok usage limits tell Legacy-mode xAI accounts to switch to Privacy Mode (#28097)
          fix(usage): label a proxied Claude account by its e-mail, and drop .json from hub rows (#28065)
          fix(gitlab): a signed-out default glab host no longer hides other signed-in hosts (#27840)
          perf(server): prune events the projections already cover (#29806)
          feat(policy): admins set managed policy from a Group Policy template (#29862)
          feat(server,web,mobile,desktop): Copy thread copies a link that opens the thread (#26290)
          feat(mobile,web): copied thread links open the mobile app (#29815)
          test(web): file editor dismissal test waits for the editor to render (#30350)
          test(web): worked-for heading test clicks once the list is revealed (#30404)
          fix(server): a queued provider switch no longer ends background work (#30401)
          chore(repos): sync reference repos from shallow clones (#30472)
          chore(repos): sync Effect 4.1.2 and Alchemy beta.85, rename effect-smol (#30481)
          Revert "fix(web): terminal controls no longer cover the first line" (#30493)
          feat(web): show a newly created pairing link without expanding the client list (#30498)
          refactor(android): every header goes through AppBar, so the filter stays put (#26741)
          refactor(mobile): one inspector column, declared with <Inspector> (#27085)
          refactor(mobile): a pane's bar draws its own sidebar toggle (#27086)
          refactor(mobile): Android's sidebar is the Home route in the sidebar column (#27087)
          feat(mobile): medium windows float the sidebar over the page (#27088)
          feat(mobile): without an inspector column, the inspector is a sheet (#27090)
          docs(mobile): the five layers of the mobile layout, with x-ray diagrams (#27107)
          refactor(mobile): the inspector's bar is its pane's AppBar (#27205)
          fix(mobile): the iPad inspector hides the sidebar where the page would get too narrow (#27218)
          fix(mobile): iPad workspace tabs live in the sidebar and leave with it (#27229)
          fix(mobile): the drawer surface is only for a sidebar beside a page (#27289)
          feat(server): list Claude models reported by Claude Code (#30511)
          fix(relay): production deploys no longer hang while computing the plan (#30513)
          fix(mobile): smoother Settings and composer transitions on wide Android (#26297)
          fix(mobile): the Android split slides as one strip, so sidebar and detail pane always fill the width (#26328)
          fix(mobile): every Android content pane gets its rounded card from ScreenContent (#30500)
          fix(relay): use released drizzle rc.5 and fail installs on unmet peers (#31016)
          build: typecheck with tsrs and Effect's rules through @effect/tsgo (#31028)
          refactor: replace jose with effect/jose (#30474)
          refactor: move HMAC, key, and random work to effect/crypto (#30501)
          refactor(server): sign server tokens through PayloadSigner (#30523)
          refactor: hold relay signing keys in EnvironmentSigningKey and CloudMintSigner (#30529)
          refactor(client-runtime): share DPoP proof creation across web and mobile (#30540)
          fix(client-runtime): a thread keeps syncing after a stream defect (#31071)
          test(server): AgentSessionScanner blocked-repo test no longer races the git-read timeout (#30554)
          test(web): PDF preview tests wait on pdf.js loads and stop timing out (#31104)
          feat(server): render MCP Apps from Claude tool calls (#29803)
          build: run Effect rules on mobile and lock in clean suggestion rules (#31111)
          revert(web): working threads stay in the Working shelf when their environment disconnects (#31269)
          refactor: Effect code reads env through HostProcess.Environment (#31218)
          refactor: Effect.try calls map failures to typed errors (#31217)
          refactor: errors are Schema.TaggedError, not Data.TaggedError or native Error (#31216)
          feat(server): sends can start a fresh provider session (#30323)
          feat: /clear starts a fresh session in the same thread (#30325)
          feat: scheduled tasks can run in one thread with a fresh session each run (#30326)
          fix(web): dragging a sidebar thread no longer scrolls the list out from under the pointer (#30346)
          fix(assets): preserve the PR repository for GitHub media (#21631)
          fix(server): load PR uploads from SSO organizations (#21632)
          fix(mobile): the Duo inspector stops at its widest instead of vanishing (#31665)
          test(web): source control writing settings test waits for the reset button (#30372)
          fix(web): screen readers no longer read out a secret typed into the request card (#31653)
          feat(mobile): start side chats with /side (#31709)
          feat(settings): Simlock, Antigravity and OpenCode credentials can come from a secret provider (#31652)
          fix(mobile): every inspector pane draws its bar through AppBar
          refactor(mobile): routes declare page, sheet or modal and presets own the platform options
          refactor(mobile): features stop building navigators for their bars
          refactor(mobile): every screen draws one AppBar or SheetHeader, on both platforms
          refactor(mobile): the workspace shell lives in layout and draws the list header
          fix(server): a saved source control token that can't be read no longer falls back to another account (#31646)
          feat(secrets): answer a secret request with a secret provider reference (#31670)
          fix(settings): removing a secret provider clears the fields that used it (#31651)
          docs(user): explain secret providers and secret requests (#31654)
          feat(server): transcribe audio on a chosen environment (#30625)
          feat(web): opt into environment dictation on this device (#30623)
          feat(desktop): dictate into browser annotations with the same consent (#30624)
          feat(mobile): opt in to dictation on a paired environment (#31059)
          fix(web): keep the folder path caret in place while editing (#31642)
          fix(claude): turns use the downloaded model catalog (#31717)
          fix(mobile): iPad composer drops when the keyboard floats or minimizes (#31251)
          fix(mobile): iOS terminal accepts Chinese, Japanese and Korean input (#30546)
          fix(pr): GitCafe attachments render in pull request bodies (#31741)
          fix(mobile): Android alerts and the live card show the same status bar icon (#29738)
          fix(mobile): keyboard state follows Android's nonanimated IME show (#25847)
          fix(mobile): Android composer no longer accepts autofill (#27489)
          fix(voice): insert Unicode word boundaries for dictation (#31799)
          fix(mobile): use preferred languages for on-device iPhone dictation (#31800)
          fix(mobile): keep the opening words of local iPhone dictation (#31801)
          fix(web): dragging a sidebar thread no longer scrolls the list to the bottom (#27691)
          perf(server): provider-thread reads start from owned rows, not every node of the thread (#31012)
          perf(server): stop tracing the per-event background-work probe (#31584)
          perf(server): stop tracing each transcript file in usage scans (#31586)
          perf(cursor): stop tracing the per-event account usage hash (#31017)
          perf(server): background PR discovery no longer delays git status after a restart (#32162)
          fix(web): the citation comment box opens at the quote instead of sliding in from the corner (#32141)
          fix(clients): dictating a citation comment or preview annotation uses the full width (#32142)
          fix(web): relay-connected microphone destinations authorize speech requests (#31778)
          fix(mobile): review diff no longer goes blank after switching sections (#27960)
          fix(mobile): iOS filter menus close back into their pill without clipping or garbling (#31168)
          fix(mobile): Android composer renders DM Sans (#30230)
          feat(voice): opt into cloud dictation with OpenAI, Grok, or OpenRouter (#31769)
          fix(web): make first-run dictation setup discoverable (#32197)
          fix(web): first-run voice setup offers a model for the user's language (#32035)
          fix(mobile): center the Choose project empty-state buttons (#27450)
          fix(muse): a declined /compact reports its reason and no longer wedges the thread (#28454)
          fix(web): restore bold weight in rendered Markdown (#25694)
          fix(web): device tool update buttons fit their popovers (#27030)
          fix(web): mobile sidebar keeps its width when shelves expand (#27541)
          fix(web): lineage phase headers truncate instead of overflowing the details card (#27582)
          fix(server): storage report lists project worktrees nested inside plain folders (#25883)
          fix(web): boring sidebar threads drag onto the composer again (#26724)
          perf(mobile): thread list resumes from the saved cache, and large gaps reload over gzip HTTP (#32287)
          feat(mobile): iOS socket compresses traffic (#32288)
          fix(server): a duplicate variable row no longer deletes a stored secret (#31337)
          chore(mobile): sync Enriched Markdown with upstream 1d00a92a (#32180)
          feat(mobile): Mermaid and math fences render like they do on web (#32190)
          fix(provider-core): agents ask for a sudo password through the private secret card (#27748)
          refactor(mobile): components/ui platform primitives are iOS files with .android overrides (#33173)
          feat: text generators let model APIs write titles, commits, and transcript cleanup (#33147)
          fix(mobile): feature screens use the components/ui menu, dialog and search primitives (#33193)
          fix(web): Markdown tasks no longer stay checked after their source is unchecked (#27353)
          fix(mobile): SVG markers with orient="auto-start-reverse" no longer crash Android (#32812)
          fix(mobile): compose button no longer covers the last tab on iPhone (#32995)
    
    Kalle Ahlström (1):
          fix(mobile): Android app no longer stays offline after reopening (#28625)
    
    Kayzel (1):
          perf(server): Windows git reads no longer start a console host (#19288)
    
    Lakshmi Tanmay (21):
          fix(server): honor relocated systemd user configuration (#29244)
          fix(cli): make relative install homes produce working commands (#29241)
          fix(shared): Linux file links preserve literal backslashes (#29245)
          perf(desktop): keep Linux MIME helpers off the startup path (#29247)
          fix(opencode): forks from compacted threads no longer fail (#29221)
          fix(opencode): expand home-relative executable paths (#29326)
          fix(server): clean up child worktrees after their parent settles (#30026)
          fix(client): keep snoozed failures hidden without completion times (#30063)
          fix(cli): validate npm runtime before caching it (#30099)
          fix(opencode): fail stalled event subscriptions promptly (#30201)
          test(web): avoid PDF worker startup timeouts in attachment tests (#29933)
          test(web): keep the work heading test inside the viewport (#30613)
          fix(server): report Claude settings compaction threshold (#29220)
          docs: explain Linux desktop installation (#30819)
          feat(web): sort and filter transcription models (#32045)
          fix(azure-devops): default-branch lookup no longer fails for missing --repository (#29586)
          perf(server): avoid lsof polling when Linux proc is usable (#30011)
          fix(providers): remove incomplete ChatGPT connections (#29280)
          feat(web): delete archived threads from the archive page (#22160)
          fix(web): keep Pi thinking controls visible before selection (#27397)
          fix(server): respect gh Unix sockets for GitHub requests (#27733)
    
    Lenori (1):
          fix(desktop): declare Calendar access for hosted commands (#21592)
    
    MarcoDotIO (15):
          fix(acp): Always allow no longer cancels the turn when an agent only offers allow-once (#29463)
          fix(server): server updates reclaim partial database backups left by killed updates (#29464)
          fix(source-control): remotes like github.com:owner/repo reach their host (#29457)
          fix(client-runtime): pull request bodies with CRLF line endings keep their code blocks whole (#30352)
          fix(cli): t3 connect unlink no longer warns about a server that is gone (#30324)
          fix(server): failed Claude text generation shows Claude's error instead of raw JSON (#30331)
          fix(server): message search keeps results when a short non-Latin word differs in case (#30332)
          fix(server): a branch tracking another local branch no longer shows that branch's PR (#30563)
          fix(cli): t3 project remove finds a deleted project by a relative or trailing-slash path (#30562)
          fix(server): an invalid regex in project search still finds its text when Match case is off (#30569)
          fix(server): agents see why a project update was refused instead of a generic failure (#30564)
          fix(server): rewound Codex threads import their history from before the rewind (#30652)
          fix(server): a policy that manages observability endpoints is refused instead of ignored (#30973)
          fix(shared): underline styles and colours no longer scramble command output colours (#21542)
          fix(web): removing a secret provider lists the Simlock tokens that read from it (#31754)
    
    Matthew Feroz (1):
          fix(desktop): update xa11y to 0.15.4 so App Shots read window text faster (#33135)
    
    Maxim (1):
          feat(claude): expose Ultracode on Claude Sonnet 5.5 and Haiku 5.5 (#30781)
    
    Md Ehsanul Haque (1):
          fix(mobile): Android dictation works with regional preferences set (#31030)
    
    Mika Hertler (1):
          test(server): three more tests stop assuming a POSIX host (#32263)
    
    Muzammil Hussain (1):
          fix(server): Codex titles no longer fail on ChatGPT accounts without gpt-6-luna (#30078)
    
    Narayan Joshi (1):
          test(server): pin post-commit outbox settle boundary (#27560)
    
    Nate Glasby (1):
          fix(server): native Claude updates use the native release feed (#27958)
    
    Navid Nadali (3):
          fix(server): MCP auth spans no longer include the tool call (#30834)
          fix(server): a late checkpoint keeps the stopped run's baselines (#30830)
          perf(server): each live event is projected once for all subscribers (#30860)
    
    Nick Anisimov (1):
          fix(android): keep diagonal horizontal swipes inside HTML blocks (#21652)
    
    Nico (1):
          fix(provider-acp-registry): surface agent error message on sign-in failure (#30295)
    
    Patrick C. Toulme (1):
          feat(antigravity): identify as T3 Code to agy acp 1.5.1+ (#31158)
    
    Peyton Lamb (1):
          fix(desktop): published themes reach the app when it uses this machine's service (#26324)
    
    Prince Yadav (1):
          fix(web): file chip tooltips show the whole path (#27993)
    
    Pyseph (3):
          test: use an empty config file instead of the null device for git fixtures on Windows (#30772)
          perf(ci): boot the built web client in Build and Typecheck, not Test Web (about 22 s off the longest job) (#30752)
          perf(dev): knip:check runs its two passes side by side (34 s → 26 s median on 4 CPUs) (#30737)
    
    Rishabh_t106 (2):
          fix(tailscale): escalate hung serve commands to SIGKILL (#28529)
          fix(pi): the T3 MCP extension file is written atomically (#32231)
    
    Roger V (1):
          fix(server): request_secret asks for one value per card (#30805)
    
    Romil (4):
          fix(shared): accept whitespace after engine range operators (#29730)
          fix(shared): ignore unsupported command output control parameters (#29736)
          fix(mcp): accept CR and mixed line endings in response streams (#29727)
          fix(shared): ignore unsupported command output erase modes (#29737)
    
    Ryan Hughes (1):
          fix(server): mise-installed providers update through mise instead of their own updater (#21524)
    
    Satya Benson (1):
          fix(mobile): text no longer clips in Android desktop windows on external displays (#19064)
    
    Sebastian Pugliese (1):
          test(web): linked-environment subagents keep opening in their own thread (#26492)
    
    Serhiy Khvala (1):
          fix(cursor): show Cursor usage after signing in with Cursor (#29419)
    
    Shaun Hawk (1):
          fix(web): refresh resource timeline while diagnostics is open (#30528)
    
    Simone (2):
          fix(shared): preserve IPv6 hosts when switching clone protocols (#30798)
          fix(ssh): host discovery skips hidden Include matches (#30910)
    
    Solomon Botchway (1):
          fix(server): preview browser picks up Chrome 157 security fixes (#30820)
    
    Srivishal Sivasubramanian (1):
          fix(web): sidebar search results can be dragged onto the composer (#28016)
    
    Sudharsan (1):
          fix(muse): recover from unavailable session views (#32154)
    
    Taylor Dolezal (3):
          fix(server): delegated threads no longer share one provider event log (#29770)
          perf(server): Claude skill discovery resolves each repository root once (#29757)
          perf(server): stop tracing per-event live coalescer work (#29758)
    
    TheGuyWithHAT (4):
          fix(server): ACP MCP bridge no longer splits messages on U+2028/U+2029 (#30719)
          fix(shared): command output no longer prints the final byte of escape sequences with intermediates (#30724)
          fix(client-runtime): sanitized error stacks keep line and column for URLs with a query (#30726)
          fix(server): agents read RTF paragraphs that end with a backslash (#30848)
    
    Theo Browne (40):
          feat(web): ask for a GitHub star when idle, and star in one click (#29922)
          fix(server): subagent questions reach a busy parent agent (#29909)
          feat(web): celebrate a GitHub star with confetti (#29987)
          feat(scheduled-tasks): tasks link to their thread (#31764)
          fix(web): tagging a thread by drag no longer scrolls the sidebar (#31924)
          ci: stacked PRs stop evicting the shared pnpm cache (#31937)
          fix(web): remote subagents no longer split from the lineage list (#29285)
          perf(ci): release uploads stop recompressing installers and CLI archives (#31942)
          ci(release): JS bundle jobs stop building an unused Linux helper (#31941)
          feat(marketing): help search engines tell t3.codes apart from copycat sites (#31142)
          perf(server): background service launcher uses 75% less memory (#29284)
          perf(release): fetch the nightly Android APK in a background step (#31949)
          perf(release): macOS CLI notarization no longer blocks the desktop build (#31945)
          ci(release): npm publish no longer checks out and installs the workspace (#31936)
          ci(release): macOS arm64 stops compressing a pnpm store it cannot save (#31955)
          feat: auto-settle inactive threads after 7 days by default (#32325)
          feat(server): html tools take a file path, so agents stop retyping pages (#32833)
          perf(server): Codex tool calls no longer wait on reasoning summaries (#31149)
          fix(web): Copy MCP URL uses the T3 Connect address (#32937)
          fix(web): cmd+shift+o picks the current project before pinned ones (#33109)
          perf(server): macOS worktrees open 2x faster by cloning a cached checkout (#32927)
          fix(web): mic button always sits next to send (#33133)
          feat: Settings reclaims freed database space in one click (#32941)
          fix(github): hidden GitHub comments and reviews no longer show in T3 Code (#33134)
          feat(mobile): long-press an image to save it to Photos (#29598)
          feat(settings): clean up Labs: promote tool calls, remove plan mode and old toggles (#33131)
          feat: Labs option to suggest your next prompt after Claude and Codex turns (#28047)
          fix(antigravity): agy CLI threads open in Full access and Auto-accept edits (#33143)
          test(web): OpenInPicker announcement test no longer hears the previous test (#33139)
          ci(release): retry transient GitHub API errors when resolving the release commit (#33149)
          fix(muse): retries show while Muse waits and fold away once it recovers (#33151)
          feat(cli): npx t3 offers to install the t3 command (#33150)
          feat(desktop): a fresh install sets up the t3 command (#33153)
          fix(release): Windows signing retries transient Azure Trusted Signing errors (#33148)
          fix: secret cards show the agent's sign-in link as a button (#33157)
          ci(release): scheduled nightly checks read 10 KB instead of 28 MB (#33141)
          ci(release): Linux desktop builds reuse cached AppImage, FPM, and 7-Zip downloads (#33142)
          ci(release): hosted web alias job checks out 3 files, not the repo (#33145)
          ci: startup and sidebar changes open the seeded thread before merge (#33146)
          fix(mobile): older chat messages show the date, not just the time (#33189)
    
    Trevor (1):
          fix(provider-acp): ACP threads keep receiving events after a rollback (#28987)
    
    Tristan Knight (3):
          fix(server): Changes totals no longer diff against a guessed base after a branch rename (#26125)
          refactor(server): provider registry owns explicit model cache invalidation (#19599)
          test(server): launcher PATH lookup test no longer drops the Windows drive letter (#22534)
    
    Tyler Jennings (1):
          fix(server): WSL servers avoid ports already used by Windows (#22962)
    
    Utkarsh Patil (4):
          perf(client): skip idle inbox placement serialization (#27460)
          feat(web): add refresh to provider status banners (#24861)
          fix(web): compact model picker row indicators (#26415)
          fix(web): open project picker from boring sidebar's header (#26495)
    
    Valerii Kuznietsov (1):
          fix(mobile): keep Android tablet cold launches in landscape (#28825)
    
    Valtrizt Khalifah Warri (1):
          fix(desktop): bump Electron to 44.10.1 for October Chromium security backports (#30161)
    
    Victor (7):
          test(server): replay tests delete their temp directories (#23445)
          test(lint): pin which ResizeObserver constructions no-raw-resize-observer reports (#28781)
          test(mobile): drop two deleted tests from the React test list (#28800)
          fix(mobile): Android terminal Backspace deletes on the first press (#24983)
          fix(mobile): Android terminal sends hardware-keyboard arrows, Tab, and Escape to the PTY (#32666)
          fix(scripts): report:renders starts on Windows without a vp shim (#32777)
          fix(mobile): Android keyboard clipboard pastes fold into attachments (#24482)
    
    Victor Valentine Romo 🌴 (1):
          docs: scope managed-policy LAN note to old background services (#30900)
    
    Vincent Guillebaud (1):
          fix(mobile): Android navigation bar follows the app theme (#27576)
    
    William Sedlacek (1):
          fix(github): keep review-required until required reviewers approve (#32395)
    
    Wout Stiens (13):
          feat(pi): show extension status in existing controls (#23901)
          fix(acp): retain streamed child tool output (#32411)
          fix(web): recover ACP settings when projects change (#32409)
          fix(provider-acp): preserve UTF-8 across interleaved terminal streams (#32391)
          fix(pi): preserve explicit thinking when switching models (#32389)
          fix(acp): bound unread raw notification retention (#19585)
          fix(acp): preserve native form questions and typed answers (#19659)
          fix(antigravity): explain missing SOCKS dependency during refresh (#19660)
          perf(sidebar): avoid full git status for branch labels (#32947)
          perf(desktop): speed up cold Linux x64 backend startup (#32987)
          perf(server): batch worktree branch allocation and avoid path collisions (#32934)
          perf(server): skip unnecessary worktree cleanup scans (#32933)
          fix(server): wake idle parents for late delegated results (#32573)
    
    Yash Singh (39):
          fix(desktop): prepare macOS x64 bytecode under Rosetta (#29484)
          fix(server): keep PR watches active after host failures (#29450)
          feat(web): open full access menu from the new thread context strip (#30275)
          fix(web): keep the project filter menu aligned with its trigger
          fix(evals): resume browser verification after unavailable status (#30298)
          perf(server): bound streaming recovery reads by active runs (#30357)
          perf(server): read pull request metadata from a lightweight snapshot
          fix(server): route missing read-only queries to readers
          perf(server): index delegated recovery candidates (#30359)
          fix(web): give dialog titles a readable line height (#30527)
          fix(tools): show images from MCP and OpenCode outputs (#30389)
          fix(server): retry unstarted runs after recovery (#30560)
          perf(server): narrow agent awareness startup reads (#30561)
          fix(web): validate terminal links against filesystem metadata (#30526)
          fix(server): avoid message ordering scans during recovery and settlement (#30582)
          fix(client-runtime): expire missing file metadata per thread (#30606)
          fix(web): align usage table padding and thread status rows
          fix(web): load selected diff metadata before file patches (#30567)
          fix(server): refresh divergence after a merged branch ref changes (#31342)
          fix(server): threads follow their worktree's branch changes (#31599)
          fix(server): repair cutover test crypto import breaking main CI (#31630)
          fix(server): keep writes moving with a larger WAL limit (#31804)
          perf(server): batch queued provider writes without waiting (#31656)
          fix(server): prepare restart continuations faster on shutdown (#31807)
          fix(web): keep change totals aligned beside the label (#31814)
          fix(server): wait for automatic follow-ups before settling threads (#31815)
          fix(server): keep PR generation focused on the change (#31819)
          chore(desktop): trace shutdown phases (#31850)
          perf(server): batch shutdown recovery commits (#31854)
          perf(server): batch projection recovery reads into one query (#31842)
          feat(server): stop opted-in project actions when threads settle (#31857)
          fix(build): skip Koffi source builds during cross-packaging (#31864)
          fix(web): keep task updates static in the timeline (#31888)
          fix(web): isolate scrollbar styles from iframe owners (#32398)
          fix(antigravity): check account access after installation (#32446)
          fix(cursor): use the SDK account for usage data (#32448)
          fix(clients): unloaded thread links show their title and project icon (#32830)
          fix(desktop): prepare server bytecode on Linux ARM64 (#33050)
          fix(web): return focus to composer after timeline prompts (#33192)
    
    Yordis Prieto (6):
          fix(shared): saving one source control token no longer drops the other hosts' tokens (#29554)
          feat(server): read usage limit source keys from a secret provider (#27760)
          feat(device): read the EAS access token from a secret provider (#27763)
          fix(contracts): a stored secret reference is always sensitive (#31403)
          fix(server): a settings save no longer reads an unreadable secret again (#31226)
          docs(secrets): sign op in with a service account or Connect on remote servers (#31760)
    
    Zack Jackson (1):
          fix(clients): parse angle-bracketed thread link destinations (#30709)
    
    astarktc (1):
          fix(pi): short-lived Pi processes no longer lose rotated OAuth tokens (#30187)
    
    benjamin-di (1):
          test(server): retain delegated child events when detaching a parent (#29622)
    
    domvox (1):
          fix(relay): read migrations in checkout paths with spaces (#30080)
    
    fixfon (3):
          fix(desktop): open cursor:// and vscode:// file links from chat (#23486)
          fix(server): macOS Bash terminals now start as login shells (#22295)
          fix(web): keep the wide table scrollbar visible when it overflows (#24084)
    
    gyurix (1):
          fix(server): SSH device host no longer reconnects on a single slow health probe (#30159)
    
    hari (1):
          docs: clarify diagnostic exports and their separate controls (#30942)
    
    jacobcorbett (1):
          docs: fix worktree cleanup path in FAQ (#31000)
    
    levelorbit (1):
          fix(server): quitting no longer waits on an unreachable telemetry endpoint (#30033)
    
    luke (3):
          fix(clients): cancel oversized project icon responses (#29006)
          perf(web): reuse repeated inline skill lookups (#29008)
          perf(shared): scan usage-limit support once per provider catalog (#32179)
    
    maco (1):
          fix(shared): recognize numeric bare-repository config (#27500)
    
    maria (11):
          perf(server): skip redundant claude session naming (#28910)
          revert(web): undo hover timestamp change from #28610 (#29680)
          fix(desktop): native builds prepare server bytecode again after the Effect 4.1.2 upgrade (#29780)
          test(scripts): expect the unmatched-pattern flag in the Astro check:changed test (#29839)
          fix(web): show the project pin before the remote badge (#29704)
          fix(claude): a background-task wake run no longer hangs after a user turn absorbed its wake (#28010)
          fix(server): GPT-6.1 Sol no longer compacts after every tool call on managed Codex (#30004)
          test(desktop): the Windows shell kill test waits for each spawn before advancing the clock (#30463)
          fix(server): allow slow Antigravity browser preflights (#25211)
          fix(server): name rejected certificates when linking peers (#28060)
          fix(mobile): Android chip taps open the chip from either half (#33126)
    
    medric (1):
          fix(server): thread titles no longer fail when the text generation provider can't run (#29607)
    
    nibarAhmed (1):
          fix(web): screen readers can browse and Tab through the threads sidebar again without going into focus mode (#26690)
    
    oliver (4):
          fix(web): mouse wheel over the thread minimap glides instead of jumping (#29038)
          feat(web): a Labs setting hides tool calls so threads read like a chat (#30000)
          fix(web): settings descriptions use the full row and stay two lines (#31826)
          fix(web): agent sign-in defaults to Auto access (#32186)
    
    parmartejas (1):
          fix(server): Antigravity Auto asks instead of approving every request (#23698)
    
    shivam (57):
          fix(mobile): shorten the iOS undo toast and balance its insets (#29775)
          fix(desktop): Linux .deb no longer installs files any local user can overwrite (#28351)
          fix(mobile): keep iOS composer empty after sending an autocorrected word (#30308)
          fix(server): idle agent tabs free a slot when the server's 32-tab browser limit is full (#24186)
          fix(web): keep message navigation visible on touch when there is room (#26806)
          fix(mobile): pinch wide images from anywhere in the Android viewer (#30929)
          fix(mobile): preserve autocorrect in custom question answers (#30744)
          fix(web): show Setting up during worktree setup (#28832)
          fix(mobile): keep iOS thread menus short enough for drag selection (#30944)
          fix(web): show the comparison base beside Changes totals (#30085)
          fix(mobile): use H.264 for iOS previews and keep Close reachable (#28622)
          fix(mobile): iOS image previews open without waiting for the gallery (#29044)
          feat: optionally clone repos into ghq-style <host>/<owner>/<repo> folders (#24904)
          fix(devices): explain Windows SSH host failures (#30941)
          fix(web): make styled composer Markdown markers editable (#30421)
          fix(mobile): configure another Claude account from Providers (#28928)
          fix(web,mobile): save pull request description checkbox changes (#30704)
          fix(client): a big server config on a slow link no longer drops the connection in a loop (#23758)
          fix(server): restart T3 Connect's tunnel client when Cloudflare drops it (#24946)
          fix(mobile): compact stale Claude threads before sending (#27935)
          fix(web): show saved service access with Local environment off (#26464)
          fix: keep older pending questions answerable (#26435)
          fix(web): deleted forks no longer remain in Lineage (#29000)
          fix(server): preserve sibling wakeups when interrupting a completion wake (#28204)
          fix(server): attribute usage-limit auto-resume to T3 Code (#29838)
          fix(acp): time out silent Antigravity prompts (#30377)
          fix(codex): sharing usage limits offer the existing recovery options (#25341)
          fix(web): sidebar project filter rows line up and stay still on hover (#29639)
          fix(server): a stopped run no longer shrinks thread history to one row (#31266)
          fix(mobile): one aligned notice for ChatGPT sharing limits (#31277)
          fix(mobile): composer keeps the keyboard when a queued edit ends (#31317)
          fix(mobile): approval card buttons line up (#31415)
          fix(mobile): show one Android notification per thread completion (#27699)
          fix(mobile): stop Android composer flicker at the wrap boundary (#27682)
          fix(chat): show one usage-limit recovery notice (#29292)
          fix(server): explain fake-IP DNS failures in HTML previews (#30318)
          fix(desktop): let the window shrink to 400x360 so it fits half-screen tiles (#28223)
          fix(web): improve Changes row text and spacing (#31858)
          fix(devices): keep devices listed when simulator discovery fails (#25971)
          fix(server): a usage-limit auto-resume survives a server restart (#31292)
          fix(desktop): open Teams web in the preview browser (#31489)
          fix(web): popovers over the desktop header respond to the pointer (#31794)
          fix(web): add installable icons for Firefox on Android (#30420)
          fix: show latest reply age in active thread rows (#31825)
          fix(mobile): keep settled status pills readable (#31635)
          fix(mobile): preserve line breaks in Markdown table cells (#29355)
          fix(mobile): stop the work-row shimmer from updating every frame (#28530)
          fix(server): t3 service install no longer moves a --base-dir service onto an empty ~/.t3 (#23878)
          fix(web): the main sidebar stays collapsed after relaunch (#24202)
          fix(codex): explain speed limits on managed connections (#30322)
          fix(mobile): share PDFs from the Android attachment viewer (#32266)
          fix(server): refresh linking tools in existing agent sessions (#26737)
          fix(search): keep whole-word title matches above busy prefixes (#32242)
          fix(connect): show why relay unlink failed (#25198)
          fix(mobile): keep scheduled task prompts clear of microphone (#32498)
          fix(web): fill combobox search fields (#32926)
          fix(mobile): iOS Agent Activity widget shows your agents instead of a blank tile (#21163)
    
    spoukyii (10):
          fix(shared): long assistant quote chips no longer end in a broken character (#30367)
          fix(server): accept a case-insensitive DPoP authorization scheme (#30337)
          fix(server): usage-limit auto-resume no longer arms subagents of archived or deleted parents (#30363)
          fix(provider-core): background work notices no longer end in a broken character (#30369)
          fix(client-runtime): subagent previews no longer end in a broken character (#30391)
          fix(server): pull request tools point a bare thread uuid at its mcp: thread (#30375)
          fix(web): preview annotation chip labels no longer end in a broken character (#30345)
          fix(shared): command output keeps text after an unterminated OSC (#30479)
          fix(cli): t3 up's retry and restart hints keep --base-dir (#30480)
          fix(client-runtime): untitled subagent titles no longer end in a broken character (#30390)
    
    t3-code-bot[bot] (3):
          chore(release): prepare v0.1.7
          test: remove unreachable github cli decoding test (#28115)
          test: remove stale tests for unused thread and onboarding helpers (#30817)
    
    tiliakoos (2):
          fix(web): terminal links keep route and pnpm paths in one piece (#30603)
          fix(shared): CSV and TSV attachments keep their table under generic file types (#30601)
    
    u9g (1):
          fix(server): Claude's commands no longer run Electron apps as Node (#29413)
    
    voida6 (1):
          fix(mobile): Android secret requests no longer offer password manager logins (#29825)
    
    wenshen18643 (1):
          fix(server): Antigravity sign-in no longer blames the network while the runtime starts (#30079)
    
    wojas (3):
          fix(mobile): iOS composer text no longer turns invisible mid-draft (#30135)
          fix(mobile): iOS 26 scroll edge effect no longer hides composer text (#30138)
          fix(mobile): typing after in-app dictation reaches the draft again on iOS (#30139)
    
    yaacovcorcos (1):
          fix(pi): send SIGTERM before closing Pi's stdin on teardown (#30025)
    
    

    Touchpoint overlap

    Files overlapping fork feature touchpoints:
    apps/mobile/src/components/ProviderIcon.tsx
    apps/mobile/src/features/threads/ThreadSettingsSheet.tsx
    apps/web/src/components/Icons.tsx
    apps/web/src/session-logic.ts
    packages/contracts/src/model.ts
    packages/contracts/src/settings.test.ts
    packages/contracts/src/settings.ts
    packages/contracts/src/settingsSecretValue.ts

    Automated sync-check report. No merge was performed — merging is always manual.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions