Repository navigation
fix(clients): async questions keep a running thread Working - #15430
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused, backwards-compatible fix for how async questions are represented while a run is still working, including matching awareness and snooze behavior. It introduces no new capability, schema migration, deployment change, sensitive-code change, or static-analysis override, and the production logic is covered by targeted tests. You can add or adjust custom eligibility rules. Learn more. |
|
Warning Review limit reachedOnly developers with an assigned seat can use this organization's usage-based review budget, and seats here are assigned manually. Ask an admin to assign a seat, or change the review continuation mode in Billing. Next included review available in 2 minutes. View limit details
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Dismissing prior approval to re-evaluate 1a9de45
Dismissing prior approval to re-evaluate edd5263
|
Taking over this one. I will rebuild the async-question status fix on current main, retain focused projection and client behavior coverage, and verify the web behavior before pushing here. |
…rking-status # Conflicts: # packages/client-runtime/src/state/models.ts
Dismissing prior approval to re-evaluate 85dfbea
## What's Changed * fix(server): a Claude /goal no longer reads as complete while a background subagent runs by @Jreevo in pingdotgg/t3code#16598 * fix(clients): image threads use readable titles by @saphid in pingdotgg/t3code#19822 * fix(server): storage cleanup reaches archived threads' worktrees by @Info-Cado in pingdotgg/t3code#16473 * fix(server): skip native sessions during bulk import by @maria-rcks in pingdotgg/t3code#15634 * fix(web): settings project picker lists only the chosen environment's projects by @SwiggitySwerve in pingdotgg/t3code#18503 * fix(server): keep the shared Codex app-server scope alive after a tool OOM kill by @only21mil in pingdotgg/t3code#18329 * fix(server): review guides in a fork checkout cover only the pull request's change by @tris203 in pingdotgg/t3code#18312 * fix(server): isolate pull request sync reads by project by @saphid in pingdotgg/t3code#18854 * fix(opencode): send pasted images with turns and steers by @nkoynov in pingdotgg/t3code#16145 * fix(server): one bad legacy message no longer stops the server from starting by @shivamhwp in pingdotgg/t3code#15920 * fix(web): record the layout character in the keybinding editor by @macodev00 in pingdotgg/t3code#15972 * fix(web): new thread shortcut works while a sent draft sets up its worktree by @Gigioxx in pingdotgg/t3code#14538 * fix(web): preserve images copied from unsent drafts by @StiensWout in pingdotgg/t3code#17821 * fix(server): settle OpenCode model catalog before caching it by @ignaciorasetti in pingdotgg/t3code#16448 * fix(web): reject file suggestions from an older composer query by @saphid in pingdotgg/t3code#18845 * fix(threads): snoozed threads no longer wake early after background updates by @RakshithBhat03 in pingdotgg/t3code#16517 * fix(server): pnpm provider updates only offer versions pnpm will install by @tris203 in pingdotgg/t3code#19580 * fix(ssh): concurrent archive installs no longer race on uutils mkdir by @tris203 in pingdotgg/t3code#20059 * fix(provider-core): refresh installer metadata before explicit probes by @juliusmarminge in pingdotgg/t3code#21451 * fix(opencode): stop cancelled text generation sessions by @yashranaway in pingdotgg/t3code#10606 * fix(web): usage limits show one account popover at a time by @RakshithBhat03 in pingdotgg/t3code#18076 * fix(web): preview viewports keep their size when the main window is zoomed by @Ta-noshii in pingdotgg/t3code#14039 * fix(mobile): Android thread pane no longer ends short after switching threads by @PixPMusic in pingdotgg/t3code#18963 * fix(mobile): Android review diff scrolls to the end of long lines by @shivamhwp in pingdotgg/t3code#19431 * fix(web): open Azure DevOps PR links in the panel by @jvzijp in pingdotgg/t3code#10987 * fix(server): Changes totals compare the default branch with its tracking upstream by @abderbejaoui in pingdotgg/t3code#15393 * fix(desktop): explain why the update button is disabled by @saphid in pingdotgg/t3code#18404 * fix(ci): skip production workflows in forks by @JustYannicc in pingdotgg/t3code#21216 * test(web): fix flaky attachment preview and ACP search tests by @juliusmarminge in pingdotgg/t3code#21893 * fix(server): agent-device no longer launches the desktop app from Codex shells by @im-kvijay in pingdotgg/t3code#18301 * fix(clients): subagent bar stops guessing the subagent's effort by @fixfon in pingdotgg/t3code#15710 * fix(mobile): scroll to end jumps instead of glides when Reduce Motion is on by @saphid in pingdotgg/t3code#16015 * fix(desktop): preserve WSL runtime installation errors by @juliusmarminge in pingdotgg/t3code#21658 * fix(shared): read JSONC block comments containing URLs by @Lucenx9 in pingdotgg/t3code#19166 * fix(server): storage cleanup no longer counts hardlinked files as recovered space by @tris203 in pingdotgg/t3code#17910 * fix(server): answer requests that arrive before the HTTP handler attaches by @Gigioxx in pingdotgg/t3code#12291 * fix(server): clear snooze when settling threads by @rickheere in pingdotgg/t3code#17547 * fix(web): keep review comments inside the pull request's hunks by @agomesp in pingdotgg/t3code#12583 * fix(server): session import skips Codex subagent sessions by @Mnigos in pingdotgg/t3code#16662 * fix(prs): refresh viewed files after partial batch failures by @saphid in pingdotgg/t3code#14954 * fix(server): show recovery commands for stale Homebrew metadata by @juliusmarminge in pingdotgg/t3code#21452 * fix(web): the Cite button comes back once the timeline stops scrolling by @Mnigos in pingdotgg/t3code#15818 * fix(web): programmatic scrolls jump instead of glide when Reduce Motion is on by @saphid in pingdotgg/t3code#16014 * fix(server): scheduled tasks for No project launch in a scratch folder by @Mnigos in pingdotgg/t3code#17451 * fix(desktop): include Chrome app text in macOS SnapShots by @shivamhwp in pingdotgg/t3code#11325 * fix(shared): recognise Azure DevOps Server pull request links by @leorivastech in pingdotgg/t3code#14626 * fix(web): format text typed between existing backticks as inline code by @macodev00 in pingdotgg/t3code#17435 * fix(clients): handoffs between accounts show which account is on each side by @vitalyiegorov in pingdotgg/t3code#15477 * fix(mobile): app no longer stays on Loading environments after a locked background launch by @nekohasekai in pingdotgg/t3code#15894 * fix(desktop): stop window setup once the app starts quitting by @saphid in pingdotgg/t3code#18380 * fix(server): serve static files when the platform cannot open file handles by @pujitha24 in pingdotgg/t3code#14161 * fix(server): stop both completion-wake task cohorts by @matsvarn in pingdotgg/t3code#15331 * fix(web): PR code view keeps its scroll when a turn finishes by @sameerr03 in pingdotgg/t3code#13835 * fix(opencode): OpenCode Go quota stops show as usage limits by @Marker-bit in pingdotgg/t3code#18315 * fix(relay): preserve conversation routing in iOS push responses by @dannyclifford in pingdotgg/t3code#16350 * fix(server): a mid-turn usage update no longer hides a failed probe by @andrewwbuilds in pingdotgg/t3code#15116 * fix(server): settle Claude background agents when their process exits by @Exotic209093 in pingdotgg/t3code#19464 * fix(web): long pull request lists no longer hide thread details controls by @tannerpolley in pingdotgg/t3code#20031 * fix(server): show Codex Enterprise monthly credit limits by @Kamkmgamer in pingdotgg/t3code#14657 * fix(server): the turn after a stopped turn shows its diff again by @Ieruss in pingdotgg/t3code#17150 * fix(web): urgent and warning notices no longer hide behind activity banners by @mxdhavgautam in pingdotgg/t3code#18919 * fix(server): keep a failed service start out of the current state by @vitalyiegorov in pingdotgg/t3code#12199 * fix(desktop): Linux URL handler quotes the Exec path only when it must by @Mnigos in pingdotgg/t3code#16670 * fix(desktop): preserve signals in backend exit logs by @SunkenInTime in pingdotgg/t3code#15406 * fix(contracts): older clients still load PRs from newer servers by @tris203 in pingdotgg/t3code#19899 * fix(mobile): picking a model shows its remembered options before saving by @nekohasekai in pingdotgg/t3code#15719 * fix(web): right-panel launcher letters work while a closed menu stays mounted by @macodev00 in pingdotgg/t3code#18132 * fix(server): cloning into a new folder directly under a drive root no longer fails by @pujitha24 in pingdotgg/t3code#18265 * fix(server): forking a Claude thread works on instances with their own home by @singul-oss in pingdotgg/t3code#18662 * fix(server): Codex file-change approvals list the files they change by @only21mil in pingdotgg/t3code#18248 * fix(server): self-hosted GitLab projects resolve bare pull request numbers by @TonybynMp4 in pingdotgg/t3code#15395 * fix(web): loading no longer shifts the Files tree by @ilkaydnc in pingdotgg/t3code#13904 * fix(server): checkpoints work in Windows workspaces with paths over 260 characters by @K3irara in pingdotgg/t3code#13538 * fix(web): keep colliding diff paths readable and selectable by @macodev00 in pingdotgg/t3code#18133 * fix(web): repo-root-relative file chips open in subfolder projects by @Gigioxx in pingdotgg/t3code#14510 * fix(web): keep large collapsed file trees virtualized by @UtkarshUsername in pingdotgg/t3code#21831 * fix(web): place worktree details below their disclosure by @UtkarshUsername in pingdotgg/t3code#21853 * fix(bitbucket): advance pull request pages through tied updates by @saphid in pingdotgg/t3code#18813 * fix(server): Stop no longer leaves a killed background command showing as running by @spiky02plateau in pingdotgg/t3code#18163 * fix(desktop): keep PDF preview reloads inside the guest by @fsioni in pingdotgg/t3code#21733 * fix(usage): deduplicate native subscription accounts by @stephenjason89 in pingdotgg/t3code#10700 * fix(web): show native coordinator status in member lineage by @ashx-j in pingdotgg/t3code#18149 * fix(mobile): the split-view sidebar no longer crashes in an update loop by @PixPMusic in pingdotgg/t3code#21867 * test(web): pass openInShortcutEnabled in ThreadDetailsPanel browser test by @juliusmarminge in pingdotgg/t3code#21912 * fix(web): empty diff panel no longer flashes a loading skeleton on every refresh by @abhijeetsingh-22 in pingdotgg/t3code#17886 * fix(web): composer context strip no longer counts its padding as free space by @thymikee in pingdotgg/t3code#13642 * fix(web): default-branch confirmation keeps its copy while closing by @otavio in pingdotgg/t3code#16907 * fix(mobile): unsent drafts lead the thread list, matching web by @tris203 in pingdotgg/t3code#19818 * fix(web): remove collapsed sidebar controls from keyboard navigation by @saphid in pingdotgg/t3code#18849 * fix(server): storage cleanup finds the default branch when the remote has no HEAD ref by @tris203 in pingdotgg/t3code#17909 * fix(desktop): restore missing Start Menu shortcut by @itsmeares in pingdotgg/t3code#7829 * fix(desktop): handle macos command-plus zoom input by @maria-rcks in pingdotgg/t3code#18439 * fix(android): space the New thread FAB 16dp from the edge and tab bar by @PixPMusic in pingdotgg/t3code#18578 * fix(server): keep worktree creation working when git config is locked by @Gigioxx in pingdotgg/t3code#11773 * fix(server): recognize partial-clone remote annotations by @maxwellyoung in pingdotgg/t3code#16316 * fix(server): a retried thread creation replays after the project turns its provider off by @yordis in pingdotgg/t3code#18360 * fix(server): report ffmpeg errors when opening Android emulators by @tris203 in pingdotgg/t3code#18784 * fix(provider-cursor): use the selected context window for handoff budgets by @noahcuadrado in pingdotgg/t3code#17462 * fix(clients): async questions keep a running thread Working by @Gigioxx in pingdotgg/t3code#15430 * fix(web): keep action shortcuts when editing other fields by @saphid in pingdotgg/t3code#18412 * fix(composer): don't send attached threads to a machine that can't read them by @NikitaMGrimm in pingdotgg/t3code#18310 * fix(mobile): lift thread status above composer suggestions by @camchis in pingdotgg/t3code#17964 * fix(server): a git failure caused by a missing ref now says so by @tris203 in pingdotgg/t3code#17794 * fix(server): settings saves no longer revert external edits to settings.json by @f4llenz in pingdotgg/t3code#18582 * fix(desktop): preserve Linux device scale across updates by @jkramer5103 in pingdotgg/t3code#14421 * fix(web): worktree threads warn when the checkout branch changes by @tris203 in pingdotgg/t3code#14883 * fix(web): scope stash shortcuts to the composer and drawer by @saphid in pingdotgg/t3code#18841 * fix(web,mobile): stop the model preferences migration from looping on older servers by @f4llenz in pingdotgg/t3code#18581 * fix(web): sidebar test runs in the browser project and jsdom pragmas are rejected by @juliusmarminge in pingdotgg/t3code#21937 * refactor(mobile): use shared legal document controls by @juliusmarminge in pingdotgg/t3code#21914 * refactor(mobile): use shared project settings actions by @juliusmarminge in pingdotgg/t3code#21915 * refactor(mobile): use shared cache action rows by @juliusmarminge in pingdotgg/t3code#21916 * refactor(mobile): use shared open source license rows by @juliusmarminge in pingdotgg/t3code#21917 * refactor(mobile): consolidate shared action buttons by @juliusmarminge in pingdotgg/t3code#21940 * refactor(mobile): share settings and connection actions by @juliusmarminge in pingdotgg/t3code#21941 * refactor(mobile): share preview actions by @juliusmarminge in pingdotgg/t3code#21942 * refactor(mobile): simplify commit sheet and share thread actions by @juliusmarminge in pingdotgg/t3code#21943 * refactor(mobile): share pull request actions by @juliusmarminge in pingdotgg/t3code#21944 * refactor(mobile): adopt connection choice controls by @juliusmarminge in pingdotgg/t3code#21945 * refactor(mobile): reuse shared search fields by @juliusmarminge in pingdotgg/t3code#21946 * fix(client-runtime): incompatible hosts no longer switch environments off for good by @vitalyiegorov in pingdotgg/t3code#15052 * fix(web): settings shows the model a hidden default falls back to by @ValeraZSD in pingdotgg/t3code#13479 * fix(server): Codex turns without a saved effort run at the model's default by @davisonio in pingdotgg/t3code#20991 * refactor(mobile): unify sheet header actions by @juliusmarminge in pingdotgg/t3code#21978 * fix(server): new worktrees fetch their base branch's own remote by @stbenjam in pingdotgg/t3code#21032 * fix(web): show idle server updates on environment controls by @juliusmarminge in pingdotgg/t3code#21950 * fix(web): icons line up with the first line of their text by @akash3444 in pingdotgg/t3code#18636 * fix(provider-opencode): render native reads without XML envelopes by @juliusmarminge in pingdotgg/t3code#21507 * fix(web): settings search reaches rows in collapsed sections by @Gigioxx in pingdotgg/t3code#18903 * fix(web): style Antigravity download progress with accessible system colors by @juliusmarminge in pingdotgg/t3code#21874 * fix(pi): support persisted sessions in RPC launch by @juliusmarminge in pingdotgg/t3code#21511 * fix(web): render completed Mermaid blocks while streaming by @NikitaMGrimm in pingdotgg/t3code#18308 * fix(server): read only checkpoint rollback targets by @juliusmarminge in pingdotgg/t3code#21804 * fix(chat): open thread links across connected environments by @juliusmarminge in pingdotgg/t3code#21505 * fix(web): copy file paths relative to the thread workspace by @juliusmarminge in pingdotgg/t3code#21497 * fix(web): thread switches show only selected thread messages by @juliusmarminge in pingdotgg/t3code#21560 * takeover/composer chat 01 14372 by @juliusmarminge in pingdotgg/t3code#21441 * fix(server): preserve Codex hub plan metadata by @juliusmarminge in pingdotgg/t3code#21413 * fix(ssh): host discovery follows quoted Include paths by @juliusmarminge in pingdotgg/t3code#21396 * fix(web): dismiss removed usage popups without a corner jump by @juliusmarminge in pingdotgg/t3code#21879 * fix(shared): retain SQLite connection ownership through execution by @juliusmarminge in pingdotgg/t3code#21798 * fix(contracts): preserve exact transcript file identities by @juliusmarminge in pingdotgg/t3code#21463 * fix(ci): isolate full workspace dependency caches by @juliusmarminge in pingdotgg/t3code#21885 * fix(providers): blank question descriptions no longer fail runs by @juliusmarminge in pingdotgg/t3code#21762 * fix(contracts): preserve authoritative URLs on pull request links by @juliusmarminge in pingdotgg/t3code#21575 * fix(gitlab): pin merge actions to the current source SHA by @juliusmarminge in pingdotgg/t3code#21523 * fix(contracts): accept legacy writing styles when reading settings by @juliusmarminge in pingdotgg/t3code#21665 * fix(providers): preserve workspace model options by @juliusmarminge in pingdotgg/t3code#21531 * fix(server): stop shipping delegated task results twice by @bmdavis419 in pingdotgg/t3code#19759 * fix(acp): retain errors reported by idle work state by @juliusmarminge in pingdotgg/t3code#21614 * fix(web): add dividers around the load earlier label by @Yash-Singh1 in pingdotgg/t3code#22014 * fix(web): keep macOS Command-arrow navigation at editor boundaries by @Yash-Singh1 in pingdotgg/t3code#22011 * fix(server): provider settings saved during startup are no longer lost by @yaacovcorcos in pingdotgg/t3code#16580 * perf(acp): coalesce streamed text snapshots by @StiensWout in pingdotgg/t3code#19626 * feat(markdown): render LaTeX across web and native mobile by @Yash-Singh1 in pingdotgg/t3code#18735 * perf(acp): avoid re-encoding terminal output for every chunk by @StiensWout in pingdotgg/t3code#19607 * perf(server): stop each delegated child conversation once by @saphid in pingdotgg/t3code#18826 * fix(desktop): raise the window when a thread notification is clicked … by @zytact in pingdotgg/t3code#12567 * fix(device): launch older Android emulators and report boot failures by @Yash-Singh1 in pingdotgg/t3code#22012 * fix(server): Claude task lists survive a server restart by @TonybynMp4 in pingdotgg/t3code#18398 * fix(acp): keep model discovery and selection on the same option by @StiensWout in pingdotgg/t3code#19567 * fix(providers): badge initials stay readable on light accent colors by @ipanasenko in pingdotgg/t3code#16128 * fix(web): queued follow-ups show the quoted text instead of the citation link by @Mnigos in pingdotgg/t3code#18999 * fix(server): reject unusable user-input answers before the request resolves by @JonasFocus in pingdotgg/t3code#14884 * fix(web): collapsed diff files defer highlighting until opened by @stevan-borus in pingdotgg/t3code#16027 * fix(mcp): t3_thread_read tells agents which thread sent a message by @Mnigos in pingdotgg/t3code#18194 * fix(web): implementation menu opens while preserving composer focus by @NikaCholadze in pingdotgg/t3code#17111 * fix(pi): T3's orchestration guidance no longer overrides other extensions' prompt changes by @chrisb4096-alt in pingdotgg/t3code#18933 * fix(desktop): stop dev cleanup from terminating other worktrees by @saphid in pingdotgg/t3code#18397 * fix(server): honor disabled usage hub polling by @yashranaway in pingdotgg/t3code#10310 * fix(server): stop superseded provider startups by @Adamulek123 in pingdotgg/t3code#15784 * fix(server): removing a worktree on Windows no longer leaves junctions behind by @SunkenInTime in pingdotgg/t3code#15833 * fix(claude): Plan mode asks before writes in Auto and Full access by @maxwellyoung in pingdotgg/t3code#17963 * fix(preview): release original browser downloads after saving copies by @saphid in pingdotgg/t3code#18435 * fix(server): a Claude account with no rate-limit data no longer stays unsupported by @fixfon in pingdotgg/t3code#18624 * fix(server): allow more time for Pi model discovery by @MarcusNeufeldt in pingdotgg/t3code#15529 * fix(opencode): read usage from each instance data directory by @fixfon in pingdotgg/t3code#17759 * fix(codex): launch-arg MCP servers survive the thread's t3-code server by @lnieuwenhuis in pingdotgg/t3code#15839 * fix(server): select linked files when revealing on Linux by @AksharP5 in pingdotgg/t3code#14044 * fix(server): checkpoints skip a project folder its parent repo ignores by @JonasFocus in pingdotgg/t3code#14892 * fix(server): a zero Git fetch interval also stops the fetch on window focus by @Mnigos in pingdotgg/t3code#13253 * fix(server): cap checkpoint diffs across all batches by @saphid in pingdotgg/t3code#18395 * fix(opencode): a failed background subagent no longer pins its thread by @Fluffy-Bunny-23 in pingdotgg/t3code#21979 * fix(server): Device panel Portrait and Landscape no longer swap on Android tablets by @shivamhwp in pingdotgg/t3code#20182 * fix(server): file saves no longer follow symlinks out of the workspace by @saphid in pingdotgg/t3code#18819 * fix(server): stop reporting a separate git dir as a branch's worktree by @pujitha24 in pingdotgg/t3code#14157 * fix(server): automatically settle empty inactive threads by @Adamulek123 in pingdotgg/t3code#15783 * fix(mobile): synchronize Expo network path updates by @Yash-Singh1 in pingdotgg/t3code#22043 * fix(server): stop threads without resolving a run by @Yash-Singh1 in pingdotgg/t3code#22052 ## New Contributors * @Jreevo made their first contribution in pingdotgg/t3code#16598 * @Info-Cado made their first contribution in pingdotgg/t3code#16473 * @SwiggitySwerve made their first contribution in pingdotgg/t3code#18503 * @ignaciorasetti made their first contribution in pingdotgg/t3code#16448 * @Ta-noshii made their first contribution in pingdotgg/t3code#14039 * @abderbejaoui made their first contribution in pingdotgg/t3code#15393 * @rickheere made their first contribution in pingdotgg/t3code#17547 * @agomesp made their first contribution in pingdotgg/t3code#12583 * @matsvarn made their first contribution in pingdotgg/t3code#15331 * @Marker-bit made their first contribution in pingdotgg/t3code#18315 * @dannyclifford made their first contribution in pingdotgg/t3code#16350 * @andrewwbuilds made their first contribution in pingdotgg/t3code#15116 * @Ieruss made their first contribution in pingdotgg/t3code#17150 * @singul-oss made their first contribution in pingdotgg/t3code#18662 * @ilkaydnc made their first contribution in pingdotgg/t3code#13904 * @K3irara made their first contribution in pingdotgg/t3code#13538 * @fsioni made their first contribution in pingdotgg/t3code#21733 * @stephenjason89 made their first contribution in pingdotgg/t3code#10700 * @ashx-j made their first contribution in pingdotgg/t3code#18149 * @thymikee made their first contribution in pingdotgg/t3code#13642 * @itsmeares made their first contribution in pingdotgg/t3code#7829 * @noahcuadrado made their first contribution in pingdotgg/t3code#17462 * @f4llenz made their first contribution in pingdotgg/t3code#18582 * @jkramer5103 made their first contribution in pingdotgg/t3code#14421 * @davisonio made their first contribution in pingdotgg/t3code#20991 * @stbenjam made their first contribution in pingdotgg/t3code#21032 * @zytact made their first contribution in pingdotgg/t3code#12567 * @NikaCholadze made their first contribution in pingdotgg/t3code#17111 * @chrisb4096-alt made their first contribution in pingdotgg/t3code#18933 * @MarcusNeufeldt made their first contribution in pingdotgg/t3code#15529 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261019.3373...v0.1.1-nightly.20261020.3386 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261020.3386
## What's Changed * fix(server): a Claude /goal no longer reads as complete while a background subagent runs by @Jreevo in pingdotgg/t3code#16598 * fix(clients): image threads use readable titles by @saphid in pingdotgg/t3code#19822 * fix(server): storage cleanup reaches archived threads' worktrees by @Info-Cado in pingdotgg/t3code#16473 * fix(server): skip native sessions during bulk import by @maria-rcks in pingdotgg/t3code#15634 * fix(web): settings project picker lists only the chosen environment's projects by @SwiggitySwerve in pingdotgg/t3code#18503 * fix(server): keep the shared Codex app-server scope alive after a tool OOM kill by @only21mil in pingdotgg/t3code#18329 * fix(server): review guides in a fork checkout cover only the pull request's change by @tris203 in pingdotgg/t3code#18312 * fix(server): isolate pull request sync reads by project by @saphid in pingdotgg/t3code#18854 * fix(opencode): send pasted images with turns and steers by @nkoynov in pingdotgg/t3code#16145 * fix(server): one bad legacy message no longer stops the server from starting by @shivamhwp in pingdotgg/t3code#15920 * fix(web): record the layout character in the keybinding editor by @macodev00 in pingdotgg/t3code#15972 * fix(web): new thread shortcut works while a sent draft sets up its worktree by @Gigioxx in pingdotgg/t3code#14538 * fix(web): preserve images copied from unsent drafts by @StiensWout in pingdotgg/t3code#17821 * fix(server): settle OpenCode model catalog before caching it by @ignaciorasetti in pingdotgg/t3code#16448 * fix(web): reject file suggestions from an older composer query by @saphid in pingdotgg/t3code#18845 * fix(threads): snoozed threads no longer wake early after background updates by @RakshithBhat03 in pingdotgg/t3code#16517 * fix(server): pnpm provider updates only offer versions pnpm will install by @tris203 in pingdotgg/t3code#19580 * fix(ssh): concurrent archive installs no longer race on uutils mkdir by @tris203 in pingdotgg/t3code#20059 * fix(provider-core): refresh installer metadata before explicit probes by @juliusmarminge in pingdotgg/t3code#21451 * fix(opencode): stop cancelled text generation sessions by @yashranaway in pingdotgg/t3code#10606 * fix(web): usage limits show one account popover at a time by @RakshithBhat03 in pingdotgg/t3code#18076 * fix(web): preview viewports keep their size when the main window is zoomed by @Ta-noshii in pingdotgg/t3code#14039 * fix(mobile): Android thread pane no longer ends short after switching threads by @PixPMusic in pingdotgg/t3code#18963 * fix(mobile): Android review diff scrolls to the end of long lines by @shivamhwp in pingdotgg/t3code#19431 * fix(web): open Azure DevOps PR links in the panel by @jvzijp in pingdotgg/t3code#10987 * fix(server): Changes totals compare the default branch with its tracking upstream by @abderbejaoui in pingdotgg/t3code#15393 * fix(desktop): explain why the update button is disabled by @saphid in pingdotgg/t3code#18404 * fix(ci): skip production workflows in forks by @JustYannicc in pingdotgg/t3code#21216 * test(web): fix flaky attachment preview and ACP search tests by @juliusmarminge in pingdotgg/t3code#21893 * fix(server): agent-device no longer launches the desktop app from Codex shells by @im-kvijay in pingdotgg/t3code#18301 * fix(clients): subagent bar stops guessing the subagent's effort by @fixfon in pingdotgg/t3code#15710 * fix(mobile): scroll to end jumps instead of glides when Reduce Motion is on by @saphid in pingdotgg/t3code#16015 * fix(desktop): preserve WSL runtime installation errors by @juliusmarminge in pingdotgg/t3code#21658 * fix(shared): read JSONC block comments containing URLs by @Lucenx9 in pingdotgg/t3code#19166 * fix(server): storage cleanup no longer counts hardlinked files as recovered space by @tris203 in pingdotgg/t3code#17910 * fix(server): answer requests that arrive before the HTTP handler attaches by @Gigioxx in pingdotgg/t3code#12291 * fix(server): clear snooze when settling threads by @rickheere in pingdotgg/t3code#17547 * fix(web): keep review comments inside the pull request's hunks by @agomesp in pingdotgg/t3code#12583 * fix(server): session import skips Codex subagent sessions by @Mnigos in pingdotgg/t3code#16662 * fix(prs): refresh viewed files after partial batch failures by @saphid in pingdotgg/t3code#14954 * fix(server): show recovery commands for stale Homebrew metadata by @juliusmarminge in pingdotgg/t3code#21452 * fix(web): the Cite button comes back once the timeline stops scrolling by @Mnigos in pingdotgg/t3code#15818 * fix(web): programmatic scrolls jump instead of glide when Reduce Motion is on by @saphid in pingdotgg/t3code#16014 * fix(server): scheduled tasks for No project launch in a scratch folder by @Mnigos in pingdotgg/t3code#17451 * fix(desktop): include Chrome app text in macOS SnapShots by @shivamhwp in pingdotgg/t3code#11325 * fix(shared): recognise Azure DevOps Server pull request links by @leorivastech in pingdotgg/t3code#14626 * fix(web): format text typed between existing backticks as inline code by @macodev00 in pingdotgg/t3code#17435 * fix(clients): handoffs between accounts show which account is on each side by @vitalyiegorov in pingdotgg/t3code#15477 * fix(mobile): app no longer stays on Loading environments after a locked background launch by @nekohasekai in pingdotgg/t3code#15894 * fix(desktop): stop window setup once the app starts quitting by @saphid in pingdotgg/t3code#18380 * fix(server): serve static files when the platform cannot open file handles by @pujitha24 in pingdotgg/t3code#14161 * fix(server): stop both completion-wake task cohorts by @matsvarn in pingdotgg/t3code#15331 * fix(web): PR code view keeps its scroll when a turn finishes by @sameerr03 in pingdotgg/t3code#13835 * fix(opencode): OpenCode Go quota stops show as usage limits by @Marker-bit in pingdotgg/t3code#18315 * fix(relay): preserve conversation routing in iOS push responses by @dannyclifford in pingdotgg/t3code#16350 * fix(server): a mid-turn usage update no longer hides a failed probe by @andrewwbuilds in pingdotgg/t3code#15116 * fix(server): settle Claude background agents when their process exits by @Exotic209093 in pingdotgg/t3code#19464 * fix(web): long pull request lists no longer hide thread details controls by @tannerpolley in pingdotgg/t3code#20031 * fix(server): show Codex Enterprise monthly credit limits by @Kamkmgamer in pingdotgg/t3code#14657 * fix(server): the turn after a stopped turn shows its diff again by @Ieruss in pingdotgg/t3code#17150 * fix(web): urgent and warning notices no longer hide behind activity banners by @mxdhavgautam in pingdotgg/t3code#18919 * fix(server): keep a failed service start out of the current state by @vitalyiegorov in pingdotgg/t3code#12199 * fix(desktop): Linux URL handler quotes the Exec path only when it must by @Mnigos in pingdotgg/t3code#16670 * fix(desktop): preserve signals in backend exit logs by @SunkenInTime in pingdotgg/t3code#15406 * fix(contracts): older clients still load PRs from newer servers by @tris203 in pingdotgg/t3code#19899 * fix(mobile): picking a model shows its remembered options before saving by @nekohasekai in pingdotgg/t3code#15719 * fix(web): right-panel launcher letters work while a closed menu stays mounted by @macodev00 in pingdotgg/t3code#18132 * fix(server): cloning into a new folder directly under a drive root no longer fails by @pujitha24 in pingdotgg/t3code#18265 * fix(server): forking a Claude thread works on instances with their own home by @singul-oss in pingdotgg/t3code#18662 * fix(server): Codex file-change approvals list the files they change by @only21mil in pingdotgg/t3code#18248 * fix(server): self-hosted GitLab projects resolve bare pull request numbers by @TonybynMp4 in pingdotgg/t3code#15395 * fix(web): loading no longer shifts the Files tree by @ilkaydnc in pingdotgg/t3code#13904 * fix(server): checkpoints work in Windows workspaces with paths over 260 characters by @K3irara in pingdotgg/t3code#13538 * fix(web): keep colliding diff paths readable and selectable by @macodev00 in pingdotgg/t3code#18133 * fix(web): repo-root-relative file chips open in subfolder projects by @Gigioxx in pingdotgg/t3code#14510 * fix(web): keep large collapsed file trees virtualized by @UtkarshUsername in pingdotgg/t3code#21831 * fix(web): place worktree details below their disclosure by @UtkarshUsername in pingdotgg/t3code#21853 * fix(bitbucket): advance pull request pages through tied updates by @saphid in pingdotgg/t3code#18813 * fix(server): Stop no longer leaves a killed background command showing as running by @spiky02plateau in pingdotgg/t3code#18163 * fix(desktop): keep PDF preview reloads inside the guest by @fsioni in pingdotgg/t3code#21733 * fix(usage): deduplicate native subscription accounts by @stephenjason89 in pingdotgg/t3code#10700 * fix(web): show native coordinator status in member lineage by @ashx-j in pingdotgg/t3code#18149 * fix(mobile): the split-view sidebar no longer crashes in an update loop by @PixPMusic in pingdotgg/t3code#21867 * test(web): pass openInShortcutEnabled in ThreadDetailsPanel browser test by @juliusmarminge in pingdotgg/t3code#21912 * fix(web): empty diff panel no longer flashes a loading skeleton on every refresh by @abhijeetsingh-22 in pingdotgg/t3code#17886 * fix(web): composer context strip no longer counts its padding as free space by @thymikee in pingdotgg/t3code#13642 * fix(web): default-branch confirmation keeps its copy while closing by @otavio in pingdotgg/t3code#16907 * fix(mobile): unsent drafts lead the thread list, matching web by @tris203 in pingdotgg/t3code#19818 * fix(web): remove collapsed sidebar controls from keyboard navigation by @saphid in pingdotgg/t3code#18849 * fix(server): storage cleanup finds the default branch when the remote has no HEAD ref by @tris203 in pingdotgg/t3code#17909 * fix(desktop): restore missing Start Menu shortcut by @itsmeares in pingdotgg/t3code#7829 * fix(desktop): handle macos command-plus zoom input by @maria-rcks in pingdotgg/t3code#18439 * fix(android): space the New thread FAB 16dp from the edge and tab bar by @PixPMusic in pingdotgg/t3code#18578 * fix(server): keep worktree creation working when git config is locked by @Gigioxx in pingdotgg/t3code#11773 * fix(server): recognize partial-clone remote annotations by @maxwellyoung in pingdotgg/t3code#16316 * fix(server): a retried thread creation replays after the project turns its provider off by @yordis in pingdotgg/t3code#18360 * fix(server): report ffmpeg errors when opening Android emulators by @tris203 in pingdotgg/t3code#18784 * fix(provider-cursor): use the selected context window for handoff budgets by @noahcuadrado in pingdotgg/t3code#17462 * fix(clients): async questions keep a running thread Working by @Gigioxx in pingdotgg/t3code#15430 * fix(web): keep action shortcuts when editing other fields by @saphid in pingdotgg/t3code#18412 * fix(composer): don't send attached threads to a machine that can't read them by @NikitaMGrimm in pingdotgg/t3code#18310 * fix(mobile): lift thread status above composer suggestions by @camchis in pingdotgg/t3code#17964 * fix(server): a git failure caused by a missing ref now says so by @tris203 in pingdotgg/t3code#17794 * fix(server): settings saves no longer revert external edits to settings.json by @f4llenz in pingdotgg/t3code#18582 * fix(desktop): preserve Linux device scale across updates by @jkramer5103 in pingdotgg/t3code#14421 * fix(web): worktree threads warn when the checkout branch changes by @tris203 in pingdotgg/t3code#14883 * fix(web): scope stash shortcuts to the composer and drawer by @saphid in pingdotgg/t3code#18841 * fix(web,mobile): stop the model preferences migration from looping on older servers by @f4llenz in pingdotgg/t3code#18581 * fix(web): sidebar test runs in the browser project and jsdom pragmas are rejected by @juliusmarminge in pingdotgg/t3code#21937 * refactor(mobile): use shared legal document controls by @juliusmarminge in pingdotgg/t3code#21914 * refactor(mobile): use shared project settings actions by @juliusmarminge in pingdotgg/t3code#21915 * refactor(mobile): use shared cache action rows by @juliusmarminge in pingdotgg/t3code#21916 * refactor(mobile): use shared open source license rows by @juliusmarminge in pingdotgg/t3code#21917 * refactor(mobile): consolidate shared action buttons by @juliusmarminge in pingdotgg/t3code#21940 * refactor(mobile): share settings and connection actions by @juliusmarminge in pingdotgg/t3code#21941 * refactor(mobile): share preview actions by @juliusmarminge in pingdotgg/t3code#21942 * refactor(mobile): simplify commit sheet and share thread actions by @juliusmarminge in pingdotgg/t3code#21943 * refactor(mobile): share pull request actions by @juliusmarminge in pingdotgg/t3code#21944 * refactor(mobile): adopt connection choice controls by @juliusmarminge in pingdotgg/t3code#21945 * refactor(mobile): reuse shared search fields by @juliusmarminge in pingdotgg/t3code#21946 * fix(client-runtime): incompatible hosts no longer switch environments off for good by @vitalyiegorov in pingdotgg/t3code#15052 * fix(web): settings shows the model a hidden default falls back to by @ValeraZSD in pingdotgg/t3code#13479 * fix(server): Codex turns without a saved effort run at the model's default by @davisonio in pingdotgg/t3code#20991 * refactor(mobile): unify sheet header actions by @juliusmarminge in pingdotgg/t3code#21978 * fix(server): new worktrees fetch their base branch's own remote by @stbenjam in pingdotgg/t3code#21032 * fix(web): show idle server updates on environment controls by @juliusmarminge in pingdotgg/t3code#21950 * fix(web): icons line up with the first line of their text by @akash3444 in pingdotgg/t3code#18636 * fix(provider-opencode): render native reads without XML envelopes by @juliusmarminge in pingdotgg/t3code#21507 * fix(web): settings search reaches rows in collapsed sections by @Gigioxx in pingdotgg/t3code#18903 * fix(web): style Antigravity download progress with accessible system colors by @juliusmarminge in pingdotgg/t3code#21874 * fix(pi): support persisted sessions in RPC launch by @juliusmarminge in pingdotgg/t3code#21511 * fix(web): render completed Mermaid blocks while streaming by @NikitaMGrimm in pingdotgg/t3code#18308 * fix(server): read only checkpoint rollback targets by @juliusmarminge in pingdotgg/t3code#21804 * fix(chat): open thread links across connected environments by @juliusmarminge in pingdotgg/t3code#21505 * fix(web): copy file paths relative to the thread workspace by @juliusmarminge in pingdotgg/t3code#21497 * fix(web): thread switches show only selected thread messages by @juliusmarminge in pingdotgg/t3code#21560 * takeover/composer chat 01 14372 by @juliusmarminge in pingdotgg/t3code#21441 * fix(server): preserve Codex hub plan metadata by @juliusmarminge in pingdotgg/t3code#21413 * fix(ssh): host discovery follows quoted Include paths by @juliusmarminge in pingdotgg/t3code#21396 * fix(web): dismiss removed usage popups without a corner jump by @juliusmarminge in pingdotgg/t3code#21879 * fix(shared): retain SQLite connection ownership through execution by @juliusmarminge in pingdotgg/t3code#21798 * fix(contracts): preserve exact transcript file identities by @juliusmarminge in pingdotgg/t3code#21463 * fix(ci): isolate full workspace dependency caches by @juliusmarminge in pingdotgg/t3code#21885 * fix(providers): blank question descriptions no longer fail runs by @juliusmarminge in pingdotgg/t3code#21762 * fix(contracts): preserve authoritative URLs on pull request links by @juliusmarminge in pingdotgg/t3code#21575 * fix(gitlab): pin merge actions to the current source SHA by @juliusmarminge in pingdotgg/t3code#21523 * fix(contracts): accept legacy writing styles when reading settings by @juliusmarminge in pingdotgg/t3code#21665 * fix(providers): preserve workspace model options by @juliusmarminge in pingdotgg/t3code#21531 * fix(server): stop shipping delegated task results twice by @bmdavis419 in pingdotgg/t3code#19759 * fix(acp): retain errors reported by idle work state by @juliusmarminge in pingdotgg/t3code#21614 * fix(web): add dividers around the load earlier label by @Yash-Singh1 in pingdotgg/t3code#22014 * fix(web): keep macOS Command-arrow navigation at editor boundaries by @Yash-Singh1 in pingdotgg/t3code#22011 * fix(server): provider settings saved during startup are no longer lost by @yaacovcorcos in pingdotgg/t3code#16580 * perf(acp): coalesce streamed text snapshots by @StiensWout in pingdotgg/t3code#19626 * feat(markdown): render LaTeX across web and native mobile by @Yash-Singh1 in pingdotgg/t3code#18735 * perf(acp): avoid re-encoding terminal output for every chunk by @StiensWout in pingdotgg/t3code#19607 * perf(server): stop each delegated child conversation once by @saphid in pingdotgg/t3code#18826 * fix(desktop): raise the window when a thread notification is clicked … by @zytact in pingdotgg/t3code#12567 * fix(device): launch older Android emulators and report boot failures by @Yash-Singh1 in pingdotgg/t3code#22012 * fix(server): Claude task lists survive a server restart by @TonybynMp4 in pingdotgg/t3code#18398 * fix(acp): keep model discovery and selection on the same option by @StiensWout in pingdotgg/t3code#19567 * fix(providers): badge initials stay readable on light accent colors by @ipanasenko in pingdotgg/t3code#16128 * fix(web): queued follow-ups show the quoted text instead of the citation link by @Mnigos in pingdotgg/t3code#18999 * fix(server): reject unusable user-input answers before the request resolves by @JonasFocus in pingdotgg/t3code#14884 * fix(web): collapsed diff files defer highlighting until opened by @stevan-borus in pingdotgg/t3code#16027 * fix(mcp): t3_thread_read tells agents which thread sent a message by @Mnigos in pingdotgg/t3code#18194 * fix(web): implementation menu opens while preserving composer focus by @NikaCholadze in pingdotgg/t3code#17111 * fix(pi): T3's orchestration guidance no longer overrides other extensions' prompt changes by @chrisb4096-alt in pingdotgg/t3code#18933 * fix(desktop): stop dev cleanup from terminating other worktrees by @saphid in pingdotgg/t3code#18397 * fix(server): honor disabled usage hub polling by @yashranaway in pingdotgg/t3code#10310 * fix(server): stop superseded provider startups by @Adamulek123 in pingdotgg/t3code#15784 * fix(server): removing a worktree on Windows no longer leaves junctions behind by @SunkenInTime in pingdotgg/t3code#15833 * fix(claude): Plan mode asks before writes in Auto and Full access by @maxwellyoung in pingdotgg/t3code#17963 * fix(preview): release original browser downloads after saving copies by @saphid in pingdotgg/t3code#18435 * fix(server): a Claude account with no rate-limit data no longer stays unsupported by @fixfon in pingdotgg/t3code#18624 * fix(server): allow more time for Pi model discovery by @MarcusNeufeldt in pingdotgg/t3code#15529 * fix(opencode): read usage from each instance data directory by @fixfon in pingdotgg/t3code#17759 * fix(codex): launch-arg MCP servers survive the thread's t3-code server by @lnieuwenhuis in pingdotgg/t3code#15839 * fix(server): select linked files when revealing on Linux by @AksharP5 in pingdotgg/t3code#14044 * fix(server): checkpoints skip a project folder its parent repo ignores by @JonasFocus in pingdotgg/t3code#14892 * fix(server): a zero Git fetch interval also stops the fetch on window focus by @Mnigos in pingdotgg/t3code#13253 * fix(server): cap checkpoint diffs across all batches by @saphid in pingdotgg/t3code#18395 * fix(opencode): a failed background subagent no longer pins its thread by @Fluffy-Bunny-23 in pingdotgg/t3code#21979 * fix(server): Device panel Portrait and Landscape no longer swap on Android tablets by @shivamhwp in pingdotgg/t3code#20182 * fix(server): file saves no longer follow symlinks out of the workspace by @saphid in pingdotgg/t3code#18819 * fix(server): stop reporting a separate git dir as a branch's worktree by @pujitha24 in pingdotgg/t3code#14157 * fix(server): automatically settle empty inactive threads by @Adamulek123 in pingdotgg/t3code#15783 * fix(mobile): synchronize Expo network path updates by @Yash-Singh1 in pingdotgg/t3code#22043 * fix(server): stop threads without resolving a run by @Yash-Singh1 in pingdotgg/t3code#22052 ## New Contributors * @Jreevo made their first contribution in pingdotgg/t3code#16598 * @Info-Cado made their first contribution in pingdotgg/t3code#16473 * @SwiggitySwerve made their first contribution in pingdotgg/t3code#18503 * @ignaciorasetti made their first contribution in pingdotgg/t3code#16448 * @Ta-noshii made their first contribution in pingdotgg/t3code#14039 * @abderbejaoui made their first contribution in pingdotgg/t3code#15393 * @rickheere made their first contribution in pingdotgg/t3code#17547 * @agomesp made their first contribution in pingdotgg/t3code#12583 * @matsvarn made their first contribution in pingdotgg/t3code#15331 * @Marker-bit made their first contribution in pingdotgg/t3code#18315 * @dannyclifford made their first contribution in pingdotgg/t3code#16350 * @andrewwbuilds made their first contribution in pingdotgg/t3code#15116 * @Ieruss made their first contribution in pingdotgg/t3code#17150 * @singul-oss made their first contribution in pingdotgg/t3code#18662 * @ilkaydnc made their first contribution in pingdotgg/t3code#13904 * @K3irara made their first contribution in pingdotgg/t3code#13538 * @fsioni made their first contribution in pingdotgg/t3code#21733 * @stephenjason89 made their first contribution in pingdotgg/t3code#10700 * @ashx-j made their first contribution in pingdotgg/t3code#18149 * @thymikee made their first contribution in pingdotgg/t3code#13642 * @itsmeares made their first contribution in pingdotgg/t3code#7829 * @noahcuadrado made their first contribution in pingdotgg/t3code#17462 * @f4llenz made their first contribution in pingdotgg/t3code#18582 * @jkramer5103 made their first contribution in pingdotgg/t3code#14421 * @davisonio made their first contribution in pingdotgg/t3code#20991 * @stbenjam made their first contribution in pingdotgg/t3code#21032 * @zytact made their first contribution in pingdotgg/t3code#12567 * @NikaCholadze made their first contribution in pingdotgg/t3code#17111 * @chrisb4096-alt made their first contribution in pingdotgg/t3code#18933 * @MarcusNeufeldt made their first contribution in pingdotgg/t3code#15529 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261019.3373...v0.1.1-nightly.20261020.3386 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261020.3386
Merges upstream `pingdotgg/t3code` at `143ab1606d` (base `ab6be13d43`, 376 commits) into the fork. No merge PR was open, so this branches from `main`. ## Merge - **Landed:** 1177 files out of 1177 in the upstream range. The only missing files are `apps/server/src/cli/pair.ts` and its test, which the fork deliberately keeps deleted. The fork delta is now 817 files. - **Conflicts:** 14, each resolved by its `preflight.mjs` verdict. The tracker entry in `docs/fork/upstream-merge-log.md` covers each one. The ones a reviewer should read: - **`ProjectDefaultsSettings.tsx`:** upstream moved the agent-browser-access row to `IntegrationsSettings.tsx` (`AgentBrowserAccessSetting`). The fork's `workspaceOwnsProjectDefaults` gate moved with it and returns null at a Workspace project scope. - **`terminal.ts`:** keeps the fork's `TerminalMetadataState` seed and takes upstream's `Stream.drop(1)`. Upstream's new `runtime.test.ts` metadata test now reads `.terminals`. - **`Sidebar.tsx` / `Sidebar.logic.ts`:** upstream's new `resolveSidebarRowThreadId` resolves against the unfiltered shells. It now takes `source`, because the fork's `isSidebarSubagentThread` hides only provider-native subagents. - **`ChatView.tsx` (auto-merged):** the fork's hosted script path calls `storeSetActiveTerminal` again. The local path drops its early `setTerminalOpen(true)`, following upstream pingdotgg#18340, so the drawer no longer claims the default terminal id. - **`AGENTS.md`:** keeps the fork's prose and adds upstream's new `Effect.fn` rule. - **`apps/mobile/package.json`:** takes upstream's test script and keeps `tsc` rather than `tsc-rs`. - **`pnpm-lock.yaml`:** `tsc-rs` entries stripped, then re-derived with `install.mjs`. - **Other fixes:** - `fork/goToDefinition.test.ts` moved to browser mode for upstream's new `no-dom-test-environment` lint rule. - `ThreadDetailsPrRows.browser.test.tsx` now passes `activeProjectScriptsEditable`. - One new `duplicateAddExceptions` entry was added and one stale one retired. - **Unsupported methods:** ADD 0, DROP 0, KEEP 2. `packages/contracts/src/rpc.ts` is unchanged. ## Verification `verify.mjs --sequential`: - duplicate-adds, tripwires, resolution-check, unsupported-methods, lockfile, fmt, lint, typecheck and build all pass. - `test` fails. The files that fail when run alone are the same five as on 2026-10-19 (`AgentScope`, `OpenCodeServerLedger`, ssh `tunnel`, `AcpAdapterV2`, `OrchestratorReplayFixtures`), all sandbox process-reaping or auth issues. - Two new failures are also environmental: the partial-clone tests in `GitVcsDriver.test.ts` and `RepositoryIdentityResolver.test.ts`. The sandbox's `~/.gitconfig` rewrites `git@github.com:` to https with `insteadOf`. - `@t3tools/web` had one real failure, upstream's new Sidebar subagent test. It is fixed and passes on its own. **Caveat:** the last amend changed only that test fixture and the docs. The sandbox restarted three times during this run, and the typecheck and fmt re-run after that amend did not finish. A follow-up comment will report it. ## Usable as-is - LaTeX/KaTeX math in chat markdown, behind the client setting `mathRenderingEnabled` in Appearance, off by default (pingdotgg#18735). - Mermaid renders while a message streams (pingdotgg#18308). Large changed-file trees are virtualized (pingdotgg#21482, pingdotgg#21831). HTML previews skip the loading skeleton (pingdotgg#21480). - Pasted folders become workspace references (pingdotgg#22072). PR check rows aligned, and skipped checks get a slash icon (pingdotgg#22090, pingdotgg#21498). A confirmation before "Close with comment" (pingdotgg#18175). - Subagent overflow badge (pingdotgg#19860). Context usage survives a fork (pingdotgg#22075). Copy paths relative to the thread workspace (pingdotgg#21497). PDF preview (pingdotgg#21095). - Contract decoding tolerates newer PR shapes (`ForwardCompatibleArray` / `ForwardCompatibleOptional`; pingdotgg#19899, pingdotgg#21575, pingdotgg#21665). - In-app browser search engine settings (pingdotgg#17688). These are client-only, but they only matter where the browser panel is exposed. ## Unsupported in Moatless / needs implementation - **`thread.stop` and `capabilities.threadStop` (pingdotgg#22052):** stops a thread without resolving its run. The client falls back to the existing stop path until the backend advertises `threadStop`. Added to the capabilities gap. - **`blocking: false` on async questions (pingdotgg#15430):** keeps a thread Working while a question is open. The backend has to emit the field. - **Provider `optionDescriptors` / `installedVersion` (pingdotgg#19519, pingdotgg#19567):** drive dynamic model options and update checks. Both are optional, so the client degrades. - **Terminal `resume: true` on resubscribe (pingdotgg#18444):** the backend should not reopen a closed shell. - **`rootPath` on git diff/status results:** used for workspace-relative paths. - **`repositoryWebUrl` on PR links (pingdotgg#21575).** - **Relay, T3 Connect, hosted sign-in and `t3 update` work:** not applicable to the single-origin Moatless deployment. ## Backend behavior to consider reproducing in Moatless - **Settlement:** an empty inactive thread auto-settles (pingdotgg#15783). Settling clears snooze (pingdotgg#17547). An interrupted run does not start the settle timer on a snoozed thread (pingdotgg#17789). - **Runs:** auto-delivered messages queue between provider turns (pingdotgg#15691). A message promoted into a stopping run stays queued (pingdotgg#16926). Compaction cadence survives restarts (pingdotgg#21880). - **ACP:** native foreground work settles independently, and child routing moves between runs (pingdotgg#21614–pingdotgg#21616). Delegated children stop once (pingdotgg#18826). - **Terminals:** slow clients no longer queue unbounded output (pingdotgg#18429). Shells do not inherit tmux (pingdotgg#13359). Script commands stay out of shell history (pingdotgg#13903). - **Files:** saves no longer follow a symlink out of the workspace (pingdotgg#18819). This one is security-relevant. - **Git:** new worktrees fetch the base branch's own tracked remote (pingdotgg#21032). Rename and non-ASCII paths are kept in changed-file lists (pingdotgg#20175). Rollback blocked by an index lock now says so (pingdotgg#11340). The `docs/fork/gaps.md` entries "Capabilities are reported…" and "Runtime fixes upstream made to its own server" are extended with these. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- Moatless task: https://moatless.soaplabstest.com/tasks/d311aafc-7a38-48b7-9c14-30c4cac930a7
Optional async questions made running threads appear to await input even while the provider continued working. Both shell builders now carry a backward-compatible blocking flag. Shared client status and agent awareness keep nonblocking questions Working during live work, then show Input when it ends. Blocking questions, secret requests, and older-server payloads retain Input behavior.
A waiting secret also takes priority over a pending nonblocking question, so an unanswered optional question cannot hide a later secret card. Real blocking runtime requests retain their existing precedence. No provider adapter, request response capability, or general request ordering changed.
Continues @Gigioxx's work in #15430, preserving the author's commits and merging current main. Main's subagent-status field is preserved.
Verification:
Before — main labels an async working thread Input:
After — final candidate stays Working with the same pending question:
Before recording · After recording
Snooze → async question wakes the still-working thread.
After completion — the unanswered question shows Input:
A secret card still shows Input, including when an async question is also pending:
Web/desktop and mobile use the shared client presentation; relay awareness consumes the same summary. Live verification covered local Linux web and Codex only. Not exercised: macOS, Windows, iOS, Android, Electron desktop, remote/relay/tunnel or other providers. Main's separate parent-attention behavior for delegated child questions is unchanged. Human maintainer review remains required.
Implemented through T3 Code's Codex harness with GPT-6.1-Sol; tests by GPT-6-Astra; independent reviews by GPT-6-Sol and Claude Opus 5.5 through T3 Code.