Repository navigation
fix(server): keep scheduled-task intervals on elapsed time across DST - #15768
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrowly scoped scheduling bug fix: one production line changes interval calculations to preserve elapsed milliseconds across DST, while fixed-time behavior and the existing interval floor remain intact. The accompanying tests cover the affected service paths without introducing schema, default, deployment, security, or static-analysis changes. You can add or adjust custom eligibility rules. Learn more. |
9c0529c to
2a16a2f
Compare
2a16a2f to
59ece38
Compare
|
Note Written by Hi! We are cleaning up open PRs, and this one does not say which model or harness was used to create it. If this change is really important, we recommend rebuilding the PR with a newer model and noting the model and harness in the PR description. |
|
Note Written by Reopening, this was closed by mistake. Sorry for the noise! |
## What's Changed * refactor(mobile): Git and Agents sheet headers take theme colours from classes by @flamboh in pingdotgg/t3code#20409 * fix(server): Claude workflow members stream their thinking and tool calls into their threads by @juliusmarminge in pingdotgg/t3code#20856 * fix(web): a workflow thread opens with its phases and agents instead of its script by @juliusmarminge in pingdotgg/t3code#20857 * feat(mobile): pull request menu can copy or share the link by @juliusmarminge in pingdotgg/t3code#21250 * fix(web): center default badges in the reasoning selector by @Aforno in pingdotgg/t3code#21252 * fix(web): the model picker offers every saved custom model, not just the first 32 by @tiliakoos in pingdotgg/t3code#14961 * fix(server): queued messages land after a resume that ran before them by @voltcrash in pingdotgg/t3code#17773 * fix(server): preserve repository display casing by @cardoso-neto in pingdotgg/t3code#19202 * fix(web): code blocks no longer jump when highlighting finishes by @akash3444 in pingdotgg/t3code#20923 * fix(mobile): Browser address bar stays on one line on iOS by @ilyaliao in pingdotgg/t3code#19042 * fix(mobile): keep queued-edit context in its draft by @saphid in pingdotgg/t3code#18834 * fix(devices): keep long diagnostics from hiding device controls by @Quicksaver in pingdotgg/t3code#19973 * fix(web): keep the diff panel head ref visible when the panel is narrow by @ScottN-PV in pingdotgg/t3code#19089 * fix(web): maximized right panel no longer doubles the sidebar border by @akash3444 in pingdotgg/t3code#18939 * fix(web): branch picker keeps space below the last branch by @Aforno in pingdotgg/t3code#21159 * fix(provider-acp): name the rejected agent path on stderr and test the bash path by @only21mil in pingdotgg/t3code#18489 * fix(web): full-screen visual replies keep a gap from the frame edge by @cravenceiling in pingdotgg/t3code#20281 * fix(web): failed attachment uploads no longer block sending by @voida6 in pingdotgg/t3code#20737 * fix(desktop): remove oversized bars from Hyprland SnapShot animations by @AksharP5 in pingdotgg/t3code#10646 * fix(web): collapsed projects no longer leave a border stub in the legacy sidebar by @vaststudios in pingdotgg/t3code#18314 * fix(web): name the web app manifest so Chrome offers to install it by @raj-sutariya in pingdotgg/t3code#19175 * fix(server): another worktree's install no longer restarts the dev server by @Jacksondr5 in pingdotgg/t3code#21065 * fix(web): expanded composer notices blur the thread behind them by @etherious1804 in pingdotgg/t3code#19871 * fix(web): citation pills line up with the other composer chips by @abhijeetsingh-22 in pingdotgg/t3code#19547 * fix(web): show native caret and selection in file comments by @fionn77 in pingdotgg/t3code#17554 * fix(web): tapping away from the model picker on a phone no longer presses what is under it by @mkantautas in pingdotgg/t3code#20841 * perf(server): colored terminal output no longer copies history one character at a time by @Alyx-ML in pingdotgg/t3code#21209 * fix(web): stacked composer notices keep their right border by @NikitaMGrimm in pingdotgg/t3code#19044 * fix(mobile): usage chart legend wraps instead of pushing the end date off-screen by @BCzyzewski in pingdotgg/t3code#18203 * fix(web): the default-branch dialog no longer offers a feature branch it cannot create by @Mnigos in pingdotgg/t3code#18716 * fix(web): truncate project names only when needed by @dgurney in pingdotgg/t3code#17208 * fix(provider-cursor): installed node_modules no longer exhaust skill discovery by @ScottN-PV in pingdotgg/t3code#19806 * fix(web): diff counts follow the selected color palette by @bitconym in pingdotgg/t3code#18288 * fix(desktop): the SnapShot GNOME extension loads on GNOME 51 by @Mnigos in pingdotgg/t3code#17436 * fix(web): composer host and workspace tooltips show their shortcuts by @jeprecated in pingdotgg/t3code#21167 * fix(server): title imported Codex threads after the user request by @only21mil in pingdotgg/t3code#20278 * fix(acp): preserve native slash command prompt shape by @Exotic209093 in pingdotgg/t3code#19393 * fix(web): align pull request comment headers by @joshka in pingdotgg/t3code#15341 * fix(client): retain PR links while reconnect metadata changes by @maxwellyoung in pingdotgg/t3code#17365 * fix(opencode): preserve native question selection flags by @JustYannicc in pingdotgg/t3code#20882 * fix(server): reject worktree delegation from a checkout outside the project by @NikitaMGrimm in pingdotgg/t3code#20213 * fix(server): T3 Connect retries a link rejected for an expired proof by @fixfon in pingdotgg/t3code#18621 * fix(desktop): preview annotations no longer replace each other after a reload by @not-compromised in pingdotgg/t3code#14360 * fix(web): stop offering a provider update that cannot clear a limited-support warning by @seanGSISG in pingdotgg/t3code#17676 * fix(codex): Finder metadata no longer blocks shadow-home setup by @Ajraba04 in pingdotgg/t3code#18991 * fix(server): html previews say how their browser exited by @nkoynov in pingdotgg/t3code#16872 * fix(server): report spawn ENOTDIR as a spawn error instead of a defect by @gabrielrojasc in pingdotgg/t3code#14345 * fix(desktop): accept existing Hyprland SnapShot shortcuts by @AksharP5 in pingdotgg/t3code#10658 * fix(web): show a real arrow in the context compacted divider by @Iweisc in pingdotgg/t3code#20326 * fix(desktop): keep disabled backends stopped after failed updates by @saphid in pingdotgg/t3code#18414 * perf(web): reveal nested files faster by @gchen0002 in pingdotgg/t3code#21048 * fix(server): browser control replies no longer wait behind old frames on slow links by @shivamhwp in pingdotgg/t3code#20290 * fix(server): Codex threads get the whole T3 orchestration instructions by @lastobelus in pingdotgg/t3code#18415 * fix(server): a /compact stopped by the Claude usage limit now fails by @ScottN-PV in pingdotgg/t3code#19583 * fix(server): reject unresolved explicit preview tabs by @aravhawk in pingdotgg/t3code#19737 * fix(server): keep WinGet Claude installs manual-only instead of running claude update by @ScottN-PV in pingdotgg/t3code#19517 * fix(desktop): local network pairing links skip idle bridges and tunnels by @TinBane in pingdotgg/t3code#18085 * fix(server): backend children no longer count as desktop resources by @jetpham in pingdotgg/t3code#19645 * perf(server): skip unused probes when switching Git refs by @IfkumRfnl in pingdotgg/t3code#20140 * fix(source-control): fix forgejo check details links by @RJWadley in pingdotgg/t3code#18434 * fix(web): keep known preview tabs while the session list refreshes by @saphid in pingdotgg/t3code#14955 * fix(web): sidebar update pill shows updates on non-default provider instances by @abdurahmon27 in pingdotgg/t3code#14745 * fix(usage): show Antigravity Gemini limits when one quota endpoint omits them by @pauliusiv123-rgb in pingdotgg/t3code#20081 * fix(cursor): explain model rejections from the account catalog by @StiensWout in pingdotgg/t3code#19678 * fix(web): long approval commands wrap inside the composer by @extoci in pingdotgg/t3code#17802 * fix(web): pending questions no longer squash the composer on narrow windows by @MatthewFeroz in pingdotgg/t3code#20391 * fix(web): switched-off controls stay visible in dark mode by @Gigioxx in pingdotgg/t3code#14984 * fix(mobile): fresh Android builds no longer crash on launch by @MarMarLabs in pingdotgg/t3code#20118 * fix(mobile): image viewer no longer flashes the chat between swipes on Android by @bitmvk in pingdotgg/t3code#20898 * fix(shared): keep quoted Git file names intact by @Lucenx9 in pingdotgg/t3code#19371 * fix(web): close the gap between the composer and its bottom toolbar by @ScottN-PV in pingdotgg/t3code#12952 * fix(desktop): Install Linux theme icons named after the app id by @mwolson in pingdotgg/t3code#14471 * fix(web): a prompt link opened from a thread no longer lands in that thread by @Mnigos in pingdotgg/t3code#19326 * fix(mobile): reopening the app no longer shows a "No terminal output" alert by @shivamhwp in pingdotgg/t3code#20262 * fix(web): show reset credit progress after the usage popover closes by @GabrielCoelhoCruz in pingdotgg/t3code#19808 * perf(server): find in a long thread no longer re-parses every message on each keystroke by @bompus in pingdotgg/t3code#20801 * fix(desktop): prevent duplicate backends on macOS by @arhammahajan in pingdotgg/t3code#19554 * fix(usage): fall back to GitHub API for model prices by @kyziq in pingdotgg/t3code#21055 * fix(web): the Tailscale HTTPS row says detection is off instead of telling users to start Tailscale by @Mnigos in pingdotgg/t3code#18758 * fix(server): a repository on an unrecognized host no longer fails every PR status lookup by @AdEx-Partners-DE in pingdotgg/t3code#19030 * fix(server): stop restoring stale Pi models by @poterstar in pingdotgg/t3code#18498 * fix(server): stop grouping unrelated repos that only have a local git remote by @adambuchweitz in pingdotgg/t3code#13129 * fix(server): keep characters intact in generated commit subjects by @Lucenx9 in pingdotgg/t3code#19181 * fix(mobile): account badges no longer clip wide initials like WO by @vitalyiegorov in pingdotgg/t3code#15908 * fix(server): provider logs skip Claude thinking-token counters by @ScottN-PV in pingdotgg/t3code#19789 * fix(relay): stop held webhook deliveries when the inbox is cleared by @saphid in pingdotgg/t3code#18838 * fix(provider-muse): show readable model names in the picker by @Marve10s in pingdotgg/t3code#19100 * perf(server): skip idle port discovery on Linux and macOS by @nateEc in pingdotgg/t3code#20975 * fix(shared): detect *.ghe.com remotes as GitHub by @torjusb in pingdotgg/t3code#19362 * fix(mobile): serialize initial device identity creation by @saphid in pingdotgg/t3code#18837 * fix(relay): reopening the app ends a finished iOS Live Activity by @MohtashamMurshid in pingdotgg/t3code#20265 * fix(mobile): long commands no longer freeze Android work-log taps by @Pipyakas in pingdotgg/t3code#19238 * fix(desktop): bound preview recording warmup by @Quicksaver in pingdotgg/t3code#20085 * fix(web): a failed run shows Failed, not Completed by @JustYannicc in pingdotgg/t3code#20996 * fix(server): opening a folder in File Explorer no longer lands on the wrong folder by @Aquaspaces in pingdotgg/t3code#18549 * fix(devices): skip Apple device discovery on non-Mac hosts by @tris203 in pingdotgg/t3code#18159 * fix(web): follow configured desktop update repository by @JustYannicc in pingdotgg/t3code#21210 * fix(desktop): paste and other editing shortcuts work in every browser tab by @imqdee in pingdotgg/t3code#19452 * fix(web): Antigravity setup card separators match other settings cards by @MONKE2525E in pingdotgg/t3code#20088 * fix(mobile): show complete unwrapped diff lines containing tabs by @jakeleventhal in pingdotgg/t3code#14605 * fix(web): explain pull request diff load failures by @jakeleventhal in pingdotgg/t3code#19945 * fix(acp): request ids stay within signed 32-bit so Kotlin agents answer by @Mnigos in pingdotgg/t3code#15374 * fix(antigravity): keep the runtime version learned from ACP by @pauljones0 in pingdotgg/t3code#20980 * perf(mobile): clean Android builds keep their Gradle and native caches by @juliusmarminge in pingdotgg/t3code#20069 * fix(server): clear automatic PRs from other branches by @Brechard in pingdotgg/t3code#20223 * fix(server): Bitbucket threads settle after their pull request merges by @RealDoc06 in pingdotgg/t3code#19937 * fix(server): a steered send no longer leaves a subagent task running by @ScottN-PV in pingdotgg/t3code#19019 * fix(opencode): retry shared database locks during startup by @luke2x in pingdotgg/t3code#17922 * fix(server): threads no longer settle after merging PRs they were asked to merge by @Zeus-Deus in pingdotgg/t3code#18232 * fix(server): held assistant drafts keep their position when flushed at turn end by @fixfon in pingdotgg/t3code#19023 * fix(ssh): keep draining tunnel diagnostics after readiness by @saphid in pingdotgg/t3code#18832 * fix(web): threads finishing together play one completion sound by @luke2x in pingdotgg/t3code#17540 * fix(mobile): a failed draft save no longer blocks sending an uploaded attachment by @shivamhwp in pingdotgg/t3code#21101 * fix(web): move keyboard interaction out of the closing right panel by @saphid in pingdotgg/t3code#14786 * fix(web): show math labels in Mermaid diagrams by @NikitaMGrimm in pingdotgg/t3code#16198 * fix(web): device tool update failures show the server error, not network advice by @ScottN-PV in pingdotgg/t3code#17569 * fix(web): prevent provider wizard footer overlap while loading by @akash3444 in pingdotgg/t3code#18609 * fix(mobile): Live Activities keep updating after iOS rotates their push token by @aididhaiqal in pingdotgg/t3code#21134 * fix(mobile): keep composer within folded screen without leaving the thread by @PixPMusic in pingdotgg/t3code#18574 * fix(server): a branch on the only remote is not a fork when there is no origin by @only21mil in pingdotgg/t3code#20412 * fix(mobile): Android PR filter chips no longer crowd the sheet corner by @none23 in pingdotgg/t3code#20889 * fix(web): refresh stale desktop endpoints when Connections reopens by @arthurkatcher in pingdotgg/t3code#16026 * fix(shared): preserve escaped quotes in launch arguments by @Lucenx9 in pingdotgg/t3code#19525 * fix(server): preserve explicit effort for unknown Claude models by @JustYannicc in pingdotgg/t3code#20849 * fix(web): show No project in scratch thread breadcrumbs by @gjw4118 in pingdotgg/t3code#19721 * fix(web): keep collapsed diff file headers reachable by @AndreiShenets in pingdotgg/t3code#20333 * fix(mobile): Chinese input no longer breaks before a skill pill on iOS by @ilyaliao in pingdotgg/t3code#17614 * fix(mobile): resize quota bars when filtering environments by @PixPMusic in pingdotgg/t3code#19031 * fix(web): center composer control labels with their icons by @Aforno in pingdotgg/t3code#21241 * fix(server): warn when connect unlink leaves the relay record by @macodev00 in pingdotgg/t3code#17743 * fix(mobile): sheet action buttons text alignment by @camchis in pingdotgg/t3code#11260 * fix(shared): match Windows home paths case-insensitively in file links by @hogeheer499-commits in pingdotgg/t3code#19627 * fix(server): t3_preview_close reports the server browser's refusal by @ScottN-PV in pingdotgg/t3code#17429 * fix(desktop): reload the main renderer after it is killed by @spencermorris04 in pingdotgg/t3code#20300 * fix(mobile): preserve line counts for withheld pull request hunks by @saphid in pingdotgg/t3code#18836 * fix(server): SSH device-host tunnels no longer inherit ControlMaster by @kcazin in pingdotgg/t3code#17440 * fix(provider-acp): stop claiming agents' own tools named like T3 tools by @JWhitleyWork in pingdotgg/t3code#20376 * fix(client-runtime): a dropped session no longer reads as a failed connection by @otavio in pingdotgg/t3code#18469 * fix(server): slow OpenCode wrappers no longer show as unavailable by @josephv123 in pingdotgg/t3code#16544 * fix(web): let keyboard users reach why reviewer/label changes are unavailable by @saphid in pingdotgg/t3code#14785 * fix(server): desktop backend now exits when its launcher dies by @bompus in pingdotgg/t3code#20277 * fix(composer): paths such as /tmp/build.sh no longer open the slash menu by @NikitaMGrimm in pingdotgg/t3code#19671 * fix(mobile): preserve server matches in file search by @saphid in pingdotgg/t3code#18388 * fix(server): refresh local status after an automatic pull fails by @Alb11747 in pingdotgg/t3code#19686 * fix(grok): preserve native question multi-select by @JustYannicc in pingdotgg/t3code#20881 * perf(web): sidebar working timers share one clock by @Alyx-ML in pingdotgg/t3code#21195 * fix(scripts): leave type-only packages out of third-party notices by @leorivastech in pingdotgg/t3code#14627 * fix(web): handle Backspace when Android omits the key code by @JIAFALSEDREAM in pingdotgg/t3code#18063 * fix(server): allow restarts when a stale runtime record matches the server pid by @ScottN-PV in pingdotgg/t3code#20336 * fix(desktop): ignore snapshot shortcut repeats during flight by @MatthewFeroz in pingdotgg/t3code#11037 * fix(client-runtime): queries stay pending while a connection hands off by @tris203 in pingdotgg/t3code#18155 * fix(server): Muse turns stopped by the subscription quota are Limited, not failed by @ntindle in pingdotgg/t3code#18266 * fix(server): load merge request diffs on older GitLab by @aravhawk in pingdotgg/t3code#15886 * fix(server): take a delegated task's result from its newest turn item by @hinescreative in pingdotgg/t3code#19058 * fix(server): logs print causes instead of [Object] by @saphid in pingdotgg/t3code#16642 * fix(web): keep font picker keyboard selection in sync by @asfires in pingdotgg/t3code#9814 * fix(mobile): prevent environment row taps from swallowing switches by @Rohithkadaveru in pingdotgg/t3code#17677 * fix(web): new project options scroll above the footer by @0bkevin in pingdotgg/t3code#17064 * fix(server): stop retrying saved checkpoints after refresh failures by @shshajek-cpu in pingdotgg/t3code#20195 * fix(server): MCP thread reads skip the item scan they filter to nothing by @SunkenInTime in pingdotgg/t3code#17038 * fix(web): copied task lists keep their nested items and code blocks by @SoroushRF in pingdotgg/t3code#14778 * fix(server): t3 run from a T3 terminal no longer trips on the service's launcher context by @playcations in pingdotgg/t3code#14263 * fix(server): keep a remote server update running when the client disconnects by @macodev00 in pingdotgg/t3code#18980 * fix(relay): resolve cloudflared using the hydrated PATH by @Exotic209093 in pingdotgg/t3code#19444 * fix(mobile): branch naming text saves when you leave the screen by @adityavardhansharma in pingdotgg/t3code#18381 * fix(web): custom model price cells take only numbers by @RakshithBhat03 in pingdotgg/t3code#19245 * fix(web): standalone auth pages scroll when the card is taller than the window by @arhammahajan in pingdotgg/t3code#19603 * fix(server): discover Claude skills from add-dir launch args by @ScottN-PV in pingdotgg/t3code#20167 * fix(mobile): show assistant quotes as text in the queue sheet by @GLDRoger in pingdotgg/t3code#19007 * perf(server): OpenCode 2 stops writing unchanged session status updates by @Abdullah1738 in pingdotgg/t3code#16775 * fix(web): give archive actions more icon spacing by @voltcrash in pingdotgg/t3code#19769 * fix(server): checkpoints no longer expire a split index the repo still uses by @sheehanmunim in pingdotgg/t3code#17074 * fix(web): usage limit recovery errors no longer crush the composer banner by @patryksztuczka in pingdotgg/t3code#17457 * fix(desktop): local desktop builds no longer crash when a GitHub token is in the shell by @neominik in pingdotgg/t3code#19277 * fix(mobile): keep PR activity in place during pull-to-refresh by @Claudesaul in pingdotgg/t3code#20196 * fix(web): a resumed subagent's notification row shows it running, not failed by @TinBane in pingdotgg/t3code#18099 * fix(preview): isolate tabs for threads sharing a provider session by @TDanks2000 in pingdotgg/t3code#18146 * fix(mobile): Android sheets scroll to the end and keep their buttons on screen by @shivamhwp in pingdotgg/t3code#20284 * fix(shared): choose duration unit after rounding seconds by @kvnloo in pingdotgg/t3code#20299 * fix(mobile): the status pill label no longer flickers when it is truncated by @voida6 in pingdotgg/t3code#20724 * fix(mobile): remove orphaned temp files after atomic write failures by @kvnloo in pingdotgg/t3code#20736 * fix(mcp): optional tool parameters accept the null their schema advertises by @only21mil in pingdotgg/t3code#20411 * fix: database errors show actionable recovery guidance by @saphid in pingdotgg/t3code#20748 * fix(web): stored pull request details keep only the 20 most recent by @tiliakoos in pingdotgg/t3code#21245 * fix(server): publishing explains why the first push failed by @Salloxy in pingdotgg/t3code#19219 * fix(server): the V1 transcript import no longer stalls on each thread's V1 events by @derektrimm in pingdotgg/t3code#21050 * fix(web): a comment under a composer quote no longer joins the quote by @fixfon in pingdotgg/t3code#19450 * fix(usage): a CLIProxyAPI hub served under a path keeps its path by @Pipyakas in pingdotgg/t3code#19336 * fix(server): agent-driven threads keep their recent rows when checkpoint data is large by @fixfon in pingdotgg/t3code#21187 * fix(server): reverting a Claude thread to a subagent-only turn no longer breaks it by @fixfon in pingdotgg/t3code#21151 * fix(server): forks no longer inherit pull request watches by @jakeleventhal in pingdotgg/t3code#16623 * fix(web): keep answered questions visible after a turn settles by @colonelpanic8 in pingdotgg/t3code#21086 * fix(server): keep scheduled-task intervals on elapsed time across DST by @Sypher760-gif in pingdotgg/t3code#15768 * fix(source-control): compare check run timestamps by instant by @Lucenx9 in pingdotgg/t3code#20094 * fix(web): the Diff tab keeps its scope when you switch tabs by @fixfon in pingdotgg/t3code#20297 * fix(provider-core): stop false updates for versionless casks by @RVZO6 in pingdotgg/t3code#20386 * fix(server): honor configured remote diff bases by @NikitaMGrimm in pingdotgg/t3code#16453 * fix(client-runtime): Update clears the block on a host that is already compatible by @pujitha24 in pingdotgg/t3code#18563 * fix(provider-cursor): a symlinked skills root is no longer scanned twice by @ScottN-PV in pingdotgg/t3code#18664 * fix(server): a disabled bootstrap provider no longer stops startup by @ScottN-PV in pingdotgg/t3code#20035 * fix(server): watching a pull request again no longer repeats news the thread already got by @shivamhwp in pingdotgg/t3code#21155 * fix(server): tell users how to update an install T3 cannot update by @mkantautas in pingdotgg/t3code#18110 * fix(server): disabled providers no longer report missing executables by @Ranga-Prasath-22 in pingdotgg/t3code#18109 * fix(server): keep workspace skills when provider health fails by @NikitaMGrimm in pingdotgg/t3code#18309 * fix(desktop): keypad shortcuts and Ctrl+wheel zoom the app by @0xKa in pingdotgg/t3code#21200 * fix(server): setup actions no longer run for threads in the main checkout by @ViaxCo in pingdotgg/t3code#18891 * fix(web): thread drops land in the visible thread's draft by @Sinan53x in pingdotgg/t3code#20024 * fix(server): failed Cursor turns show Cursor's reason by @nkoynov in pingdotgg/t3code#16146 * fix(web): honor the send shortcut for follow-up actions by @DazKins in pingdotgg/t3code#20929 * fix(web): image viewer close button stays clear of the window controls by @otavio in pingdotgg/t3code#13919 * fix(server): parent Stop clears orphaned delegated follow-ups by @1kuna in pingdotgg/t3code#20310 * fix(opencode): OpenCode servers stop with a killed server on Windows by @SunkenInTime in pingdotgg/t3code#21103 * test(web): preview session sync and device tool update tests run in a real browser by @juliusmarminge in pingdotgg/t3code#21274 * fix(web): recognize Windows terminal file links by @UtkarshUsername in pingdotgg/t3code#21199 * fix(shared): Windows saves no longer fail while a scanner holds the file by @SunkenInTime in pingdotgg/t3code#21062 * fix(server): recover after Claude capability probe failures by @JustYannicc in pingdotgg/t3code#21042 * fix(browser): preserve native file pickers in desktop previews by @Gustav0ar in pingdotgg/t3code#20994 * fix(provider-core): pnpm-global updates approve the provider's build by @voida6 in pingdotgg/t3code#20796 * fix(server): usage-limit sweep stops scanning every run each tick by @Alyx-ML in pingdotgg/t3code#21191 * fix(provider-grok): report model windows for handoff budgets by @ScottN-PV in pingdotgg/t3code#20180 * fix(server): cancel preparing runs when archiving threads by @Quicksaver in pingdotgg/t3code#20073 * fix(desktop): a failed macOS test capture no longer blames the GNOME extension by @luke2x in pingdotgg/t3code#18857 * fix(web): scrolling a huge thread's history no longer loops the message list by @juliusmarminge in pingdotgg/t3code#21269 * fix(web): keep compressed image chips in their original draft by @saphid in pingdotgg/t3code#18393 * fix(server): a Limits hub failure names its TLS, HTTP, or timeout cause by @ScottN-PV in pingdotgg/t3code#18168 * fix(server): Claude wake runs no longer end empty while Claude is still answering by @SunkenInTime in pingdotgg/t3code#15816 * fix(web): Compose input no longer adds stray quotes by @JohnnyBill in pingdotgg/t3code#20350 * fix(forgejo): wake PR watches for edited comments by @Dunky13 in pingdotgg/t3code#18120 * fix(mobile): avoid nested dropdowns for single tools by @StiensWout in pingdotgg/t3code#15674 * fix(server): apps opened from T3 Code no longer inherit ELECTRON_RUN_AS_NODE by @Jord-JD in pingdotgg/t3code#20206 * fix(web): show an empty result when file search finds no matches by @johanovskyt in pingdotgg/t3code#17132 * fix(azure-devops): expose the latest source revision for review guides by @nateEc in pingdotgg/t3code#20977 * fix(server): read Claude context usage from stream message deltas by @camilopaezz in pingdotgg/t3code#19416 * fix(server): stop the branch rename before cancelling worktree setup by @saphid in pingdotgg/t3code#18443 * fix(server): find existing PR worktrees beyond the first branch page by @saphid in pingdotgg/t3code#18407 * fix(mobile): keep chat images visible when opening the viewer by @Claudesaul in pingdotgg/t3code#20188 * fix(web): restore palette focus when no composer is mounted by @saphid in pingdotgg/t3code#18850 * fix(desktop): unregistering a WSL backend now stops its supervisor by @pujitha24 in pingdotgg/t3code#18575 * fix(web,mobile): limit bars use each provider's chart color by @charlielockyer-rice in pingdotgg/t3code#16936 * fix(desktop): exclude unrelated VPN addresses from Tailscale pairing by @arthurkatcher in pingdotgg/t3code#15753 * fix(server): re-snoozing a woken thread to the same wake time hides it again by @JonasFocus in pingdotgg/t3code#14887 * fix(server): t3_thread_send reports why the orchestrator refused a message by @ddonathan in pingdotgg/t3code#21027 * fix(web): render stored HEIC attachments by @Gigioxx in pingdotgg/t3code#10429 * fix(web): truncate draft project names in the middle by @bentbrain in pingdotgg/t3code#18858 * fix(server): report missing Node on SSH device hosts instead of a connection failure by @ScottN-PV in pingdotgg/t3code#20377 * fix(server): preserve unrelated branch upstreams when opening fork PRs by @saphid in pingdotgg/t3code#18413 * fix(server): a Claude hook that drops a prompt now shows its reason by @fixfon in pingdotgg/t3code#21231 * fix(mobile): iOS builds on Xcode 27.0 no longer fail on 27.1-only hinge APIs by @JeremiahDJordan in pingdotgg/t3code#18913 * fix(server): ACP agents that need no sign-in drop models they stopped advertising by @Mnigos in pingdotgg/t3code#18807 * fix(source-control): fix watch failures on large forgejo PRs by @RJWadley in pingdotgg/t3code#18432 * fix(server): explain root browser launch failures instead of pointing to setup by @mxdhavgautam in pingdotgg/t3code#19846 * fix(server): reject thread.create for an existing id by @ScottN-PV in pingdotgg/t3code#19704 * fix(server): MCP thread list and read report every linked pull request by @ScottN-PV in pingdotgg/t3code#17454 * fix(markdown): Windows paths in messages keep their backslashes by @SunkenInTime in pingdotgg/t3code#21069 * chore(lint): reject use* functions that call no hooks by @juliusmarminge in pingdotgg/t3code#21260 * fix(server): replace Claude sessions that never saved a message by @maria-rcks in pingdotgg/t3code#19637 * fix(web): terminal drawer covers the turn minimap by @sairajchouhan in pingdotgg/t3code#14383 * fix(server): Claude subagents keep their model after a usage-limit notice by @jieyuexing in pingdotgg/t3code#17097 * fix(web): collapsed composer centers drafts that start with a list by @5knnbdwm in pingdotgg/t3code#17820 * fix(server): a full Claude context window no longer shows as a usage limit by @fixfon in pingdotgg/t3code#19848 * perf(server): skip unused diffs for user-written commit messages by @Microck in pingdotgg/t3code#19605 * test(server): drop the duplicate Path import in the Grok adapter test by @juliusmarminge in pingdotgg/t3code#21308 * test(server): a fork that stops its own PR watch keeps it as its ended watch by @juliusmarminge in pingdotgg/t3code#21309 * test(server): wait for a workflow member's late reply to reach the test's event log by @juliusmarminge in pingdotgg/t3code#21310 * test(web): file browser and attachment image tests run in a real browser by @juliusmarminge in pingdotgg/t3code#21297 * test(mobile): branch naming and server controls settings tests load again by @juliusmarminge in pingdotgg/t3code#21293 * test(mobile): a completed render splits the work log into lone-call rows by @juliusmarminge in pingdotgg/t3code#21295 ## New Contributors * @cardoso-neto made their first contribution in pingdotgg/t3code#19202 * @ilyaliao made their first contribution in pingdotgg/t3code#19042 * @cravenceiling made their first contribution in pingdotgg/t3code#20281 * @vaststudios made their first contribution in pingdotgg/t3code#18314 * @raj-sutariya made their first contribution in pingdotgg/t3code#19175 * @Jacksondr5 made their first contribution in pingdotgg/t3code#21065 * @etherious1804 made their first contribution in pingdotgg/t3code#19871 * @abhijeetsingh-22 made their first contribution in pingdotgg/t3code#19547 * @fionn77 made their first contribution in pingdotgg/t3code#17554 * @mkantautas made their first contribution in pingdotgg/t3code#20841 * @Alyx-ML made their first contribution in pingdotgg/t3code#21209 * @NikitaMGrimm made their first contribution in pingdotgg/t3code#19044 * @BCzyzewski made their first contribution in pingdotgg/t3code#18203 * @dgurney made their first contribution in pingdotgg/t3code#17208 * @bitconym made their first contribution in pingdotgg/t3code#18288 * @jeprecated made their first contribution in pingdotgg/t3code#21167 * @joshka made their first contribution in pingdotgg/t3code#15341 * @not-compromised made their first contribution in pingdotgg/t3code#14360 * @seanGSISG made their first contribution in pingdotgg/t3code#17676 * @Ajraba04 made their first contribution in pingdotgg/t3code#18991 * @gabrielrojasc made their first contribution in pingdotgg/t3code#14345 * @Iweisc made their first contribution in pingdotgg/t3code#20326 * @gchen0002 made their first contribution in pingdotgg/t3code#21048 * @TinBane made their first contribution in pingdotgg/t3code#18085 * @jetpham made their first contribution in pingdotgg/t3code#19645 * @IfkumRfnl made their first contribution in pingdotgg/t3code#20140 * @RJWadley made their first contribution in pingdotgg/t3code#18434 * @abdurahmon27 made their first contribution in pingdotgg/t3code#14745 * @pauliusiv123-rgb made their first contribution in pingdotgg/t3code#20081 * @MarMarLabs made their first contribution in pingdotgg/t3code#20118 * @GabrielCoelhoCruz made their first contribution in pingdotgg/t3code#19808 * @kyziq made their first contribution in pingdotgg/t3code#21055 * @poterstar made their first contribution in pingdotgg/t3code#18498 * @torjusb made their first contribution in pingdotgg/t3code#19362 * @Pipyakas made their first contribution in pingdotgg/t3code#19238 * @Aquaspaces made their first contribution in pingdotgg/t3code#18549 * @imqdee made their first contribution in pingdotgg/t3code#19452 * @MONKE2525E made their first contribution in pingdotgg/t3code#20088 * @pauljones0 made their first contribution in pingdotgg/t3code#20980 * @aididhaiqal made their first contribution in pingdotgg/t3code#21134 * @arthurkatcher made their first contribution in pingdotgg/t3code#16026 * @gjw4118 made their first contribution in pingdotgg/t3code#19721 * @AndreiShenets made their first contribution in pingdotgg/t3code#20333 * @hogeheer499-commits made their first contribution in pingdotgg/t3code#19627 * @spencermorris04 made their first contribution in pingdotgg/t3code#20300 * @kcazin made their first contribution in pingdotgg/t3code#17440 * @JWhitleyWork made their first contribution in pingdotgg/t3code#20376 * @josephv123 made their first contribution in pingdotgg/t3code#16544 * @JIAFALSEDREAM made their first contribution in pingdotgg/t3code#18063 * @hinescreative made their first contribution in pingdotgg/t3code#19058 * @asfires made their first contribution in pingdotgg/t3code#9814 * @Rohithkadaveru made their first contribution in pingdotgg/t3code#17677 * @shshajek-cpu made their first contribution in pingdotgg/t3code#20195 * @SoroushRF made their first contribution in pingdotgg/t3code#14778 * @playcations made their first contribution in pingdotgg/t3code#14263 * @GLDRoger made their first contribution in pingdotgg/t3code#19007 * @Abdullah1738 made their first contribution in pingdotgg/t3code#16775 * @patryksztuczka made their first contribution in pingdotgg/t3code#17457 * @neominik made their first contribution in pingdotgg/t3code#19277 * @TDanks2000 made their first contribution in pingdotgg/t3code#18146 * @Salloxy made their first contribution in pingdotgg/t3code#19219 * @Ranga-Prasath-22 made their first contribution in pingdotgg/t3code#18109 * @0xKa made their first contribution in pingdotgg/t3code#21200 * @ViaxCo made their first contribution in pingdotgg/t3code#18891 * @Sinan53x made their first contribution in pingdotgg/t3code#20024 * @DazKins made their first contribution in pingdotgg/t3code#20929 * @1kuna made their first contribution in pingdotgg/t3code#20310 * @Gustav0ar made their first contribution in pingdotgg/t3code#20994 * @JohnnyBill made their first contribution in pingdotgg/t3code#20350 * @Dunky13 made their first contribution in pingdotgg/t3code#18120 * @Jord-JD made their first contribution in pingdotgg/t3code#20206 * @johanovskyt made their first contribution in pingdotgg/t3code#17132 * @camilopaezz made their first contribution in pingdotgg/t3code#19416 * @charlielockyer-rice made their first contribution in pingdotgg/t3code#16936 * @ddonathan made their first contribution in pingdotgg/t3code#21027 * @bentbrain made their first contribution in pingdotgg/t3code#18858 * @JeremiahDJordan made their first contribution in pingdotgg/t3code#18913 * @mxdhavgautam made their first contribution in pingdotgg/t3code#19846 * @sairajchouhan made their first contribution in pingdotgg/t3code#14383 * @jieyuexing made their first contribution in pingdotgg/t3code#17097 * @5knnbdwm made their first contribution in pingdotgg/t3code#17820 * @Microck made their first contribution in pingdotgg/t3code#19605 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261018.3315...v0.1.1-nightly.20261018.3331 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261018.3331
…pingdotgg#15768) Co-authored-by: Sayf Fadil <313136901+Sypher760-gif@users.noreply.github.com> (cherry picked from commit b18a9bf)
## What's Changed * refactor(mobile): Git and Agents sheet headers take theme colours from classes by @flamboh in pingdotgg/t3code#20409 * fix(server): Claude workflow members stream their thinking and tool calls into their threads by @juliusmarminge in pingdotgg/t3code#20856 * fix(web): a workflow thread opens with its phases and agents instead of its script by @juliusmarminge in pingdotgg/t3code#20857 * feat(mobile): pull request menu can copy or share the link by @juliusmarminge in pingdotgg/t3code#21250 * fix(web): center default badges in the reasoning selector by @Aforno in pingdotgg/t3code#21252 * fix(web): the model picker offers every saved custom model, not just the first 32 by @tiliakoos in pingdotgg/t3code#14961 * fix(server): queued messages land after a resume that ran before them by @voltcrash in pingdotgg/t3code#17773 * fix(server): preserve repository display casing by @cardoso-neto in pingdotgg/t3code#19202 * fix(web): code blocks no longer jump when highlighting finishes by @akash3444 in pingdotgg/t3code#20923 * fix(mobile): Browser address bar stays on one line on iOS by @ilyaliao in pingdotgg/t3code#19042 * fix(mobile): keep queued-edit context in its draft by @saphid in pingdotgg/t3code#18834 * fix(devices): keep long diagnostics from hiding device controls by @Quicksaver in pingdotgg/t3code#19973 * fix(web): keep the diff panel head ref visible when the panel is narrow by @ScottN-PV in pingdotgg/t3code#19089 * fix(web): maximized right panel no longer doubles the sidebar border by @akash3444 in pingdotgg/t3code#18939 * fix(web): branch picker keeps space below the last branch by @Aforno in pingdotgg/t3code#21159 * fix(provider-acp): name the rejected agent path on stderr and test the bash path by @only21mil in pingdotgg/t3code#18489 * fix(web): full-screen visual replies keep a gap from the frame edge by @cravenceiling in pingdotgg/t3code#20281 * fix(web): failed attachment uploads no longer block sending by @voida6 in pingdotgg/t3code#20737 * fix(desktop): remove oversized bars from Hyprland SnapShot animations by @AksharP5 in pingdotgg/t3code#10646 * fix(web): collapsed projects no longer leave a border stub in the legacy sidebar by @vaststudios in pingdotgg/t3code#18314 * fix(web): name the web app manifest so Chrome offers to install it by @raj-sutariya in pingdotgg/t3code#19175 * fix(server): another worktree's install no longer restarts the dev server by @Jacksondr5 in pingdotgg/t3code#21065 * fix(web): expanded composer notices blur the thread behind them by @etherious1804 in pingdotgg/t3code#19871 * fix(web): citation pills line up with the other composer chips by @abhijeetsingh-22 in pingdotgg/t3code#19547 * fix(web): show native caret and selection in file comments by @fionn77 in pingdotgg/t3code#17554 * fix(web): tapping away from the model picker on a phone no longer presses what is under it by @mkantautas in pingdotgg/t3code#20841 * perf(server): colored terminal output no longer copies history one character at a time by @Alyx-ML in pingdotgg/t3code#21209 * fix(web): stacked composer notices keep their right border by @NikitaMGrimm in pingdotgg/t3code#19044 * fix(mobile): usage chart legend wraps instead of pushing the end date off-screen by @BCzyzewski in pingdotgg/t3code#18203 * fix(web): the default-branch dialog no longer offers a feature branch it cannot create by @Mnigos in pingdotgg/t3code#18716 * fix(web): truncate project names only when needed by @dgurney in pingdotgg/t3code#17208 * fix(provider-cursor): installed node_modules no longer exhaust skill discovery by @ScottN-PV in pingdotgg/t3code#19806 * fix(web): diff counts follow the selected color palette by @bitconym in pingdotgg/t3code#18288 * fix(desktop): the SnapShot GNOME extension loads on GNOME 51 by @Mnigos in pingdotgg/t3code#17436 * fix(web): composer host and workspace tooltips show their shortcuts by @jeprecated in pingdotgg/t3code#21167 * fix(server): title imported Codex threads after the user request by @only21mil in pingdotgg/t3code#20278 * fix(acp): preserve native slash command prompt shape by @Exotic209093 in pingdotgg/t3code#19393 * fix(web): align pull request comment headers by @joshka in pingdotgg/t3code#15341 * fix(client): retain PR links while reconnect metadata changes by @maxwellyoung in pingdotgg/t3code#17365 * fix(opencode): preserve native question selection flags by @JustYannicc in pingdotgg/t3code#20882 * fix(server): reject worktree delegation from a checkout outside the project by @NikitaMGrimm in pingdotgg/t3code#20213 * fix(server): T3 Connect retries a link rejected for an expired proof by @fixfon in pingdotgg/t3code#18621 * fix(desktop): preview annotations no longer replace each other after a reload by @not-compromised in pingdotgg/t3code#14360 * fix(web): stop offering a provider update that cannot clear a limited-support warning by @seanGSISG in pingdotgg/t3code#17676 * fix(codex): Finder metadata no longer blocks shadow-home setup by @Ajraba04 in pingdotgg/t3code#18991 * fix(server): html previews say how their browser exited by @nkoynov in pingdotgg/t3code#16872 * fix(server): report spawn ENOTDIR as a spawn error instead of a defect by @gabrielrojasc in pingdotgg/t3code#14345 * fix(desktop): accept existing Hyprland SnapShot shortcuts by @AksharP5 in pingdotgg/t3code#10658 * fix(web): show a real arrow in the context compacted divider by @Iweisc in pingdotgg/t3code#20326 * fix(desktop): keep disabled backends stopped after failed updates by @saphid in pingdotgg/t3code#18414 * perf(web): reveal nested files faster by @gchen0002 in pingdotgg/t3code#21048 * fix(server): browser control replies no longer wait behind old frames on slow links by @shivamhwp in pingdotgg/t3code#20290 * fix(server): Codex threads get the whole T3 orchestration instructions by @lastobelus in pingdotgg/t3code#18415 * fix(server): a /compact stopped by the Claude usage limit now fails by @ScottN-PV in pingdotgg/t3code#19583 * fix(server): reject unresolved explicit preview tabs by @aravhawk in pingdotgg/t3code#19737 * fix(server): keep WinGet Claude installs manual-only instead of running claude update by @ScottN-PV in pingdotgg/t3code#19517 * fix(desktop): local network pairing links skip idle bridges and tunnels by @TinBane in pingdotgg/t3code#18085 * fix(server): backend children no longer count as desktop resources by @jetpham in pingdotgg/t3code#19645 * perf(server): skip unused probes when switching Git refs by @IfkumRfnl in pingdotgg/t3code#20140 * fix(source-control): fix forgejo check details links by @RJWadley in pingdotgg/t3code#18434 * fix(web): keep known preview tabs while the session list refreshes by @saphid in pingdotgg/t3code#14955 * fix(web): sidebar update pill shows updates on non-default provider instances by @abdurahmon27 in pingdotgg/t3code#14745 * fix(usage): show Antigravity Gemini limits when one quota endpoint omits them by @pauliusiv123-rgb in pingdotgg/t3code#20081 * fix(cursor): explain model rejections from the account catalog by @StiensWout in pingdotgg/t3code#19678 * fix(web): long approval commands wrap inside the composer by @extoci in pingdotgg/t3code#17802 * fix(web): pending questions no longer squash the composer on narrow windows by @MatthewFeroz in pingdotgg/t3code#20391 * fix(web): switched-off controls stay visible in dark mode by @Gigioxx in pingdotgg/t3code#14984 * fix(mobile): fresh Android builds no longer crash on launch by @MarMarLabs in pingdotgg/t3code#20118 * fix(mobile): image viewer no longer flashes the chat between swipes on Android by @bitmvk in pingdotgg/t3code#20898 * fix(shared): keep quoted Git file names intact by @Lucenx9 in pingdotgg/t3code#19371 * fix(web): close the gap between the composer and its bottom toolbar by @ScottN-PV in pingdotgg/t3code#12952 * fix(desktop): Install Linux theme icons named after the app id by @mwolson in pingdotgg/t3code#14471 * fix(web): a prompt link opened from a thread no longer lands in that thread by @Mnigos in pingdotgg/t3code#19326 * fix(mobile): reopening the app no longer shows a "No terminal output" alert by @shivamhwp in pingdotgg/t3code#20262 * fix(web): show reset credit progress after the usage popover closes by @GabrielCoelhoCruz in pingdotgg/t3code#19808 * perf(server): find in a long thread no longer re-parses every message on each keystroke by @bompus in pingdotgg/t3code#20801 * fix(desktop): prevent duplicate backends on macOS by @arhammahajan in pingdotgg/t3code#19554 * fix(usage): fall back to GitHub API for model prices by @kyziq in pingdotgg/t3code#21055 * fix(web): the Tailscale HTTPS row says detection is off instead of telling users to start Tailscale by @Mnigos in pingdotgg/t3code#18758 * fix(server): a repository on an unrecognized host no longer fails every PR status lookup by @AdEx-Partners-DE in pingdotgg/t3code#19030 * fix(server): stop restoring stale Pi models by @poterstar in pingdotgg/t3code#18498 * fix(server): stop grouping unrelated repos that only have a local git remote by @adambuchweitz in pingdotgg/t3code#13129 * fix(server): keep characters intact in generated commit subjects by @Lucenx9 in pingdotgg/t3code#19181 * fix(mobile): account badges no longer clip wide initials like WO by @vitalyiegorov in pingdotgg/t3code#15908 * fix(server): provider logs skip Claude thinking-token counters by @ScottN-PV in pingdotgg/t3code#19789 * fix(relay): stop held webhook deliveries when the inbox is cleared by @saphid in pingdotgg/t3code#18838 * fix(provider-muse): show readable model names in the picker by @Marve10s in pingdotgg/t3code#19100 * perf(server): skip idle port discovery on Linux and macOS by @nateEc in pingdotgg/t3code#20975 * fix(shared): detect *.ghe.com remotes as GitHub by @torjusb in pingdotgg/t3code#19362 * fix(mobile): serialize initial device identity creation by @saphid in pingdotgg/t3code#18837 * fix(relay): reopening the app ends a finished iOS Live Activity by @MohtashamMurshid in pingdotgg/t3code#20265 * fix(mobile): long commands no longer freeze Android work-log taps by @Pipyakas in pingdotgg/t3code#19238 * fix(desktop): bound preview recording warmup by @Quicksaver in pingdotgg/t3code#20085 * fix(web): a failed run shows Failed, not Completed by @JustYannicc in pingdotgg/t3code#20996 * fix(server): opening a folder in File Explorer no longer lands on the wrong folder by @Aquaspaces in pingdotgg/t3code#18549 * fix(devices): skip Apple device discovery on non-Mac hosts by @tris203 in pingdotgg/t3code#18159 * fix(web): follow configured desktop update repository by @JustYannicc in pingdotgg/t3code#21210 * fix(desktop): paste and other editing shortcuts work in every browser tab by @imqdee in pingdotgg/t3code#19452 * fix(web): Antigravity setup card separators match other settings cards by @MONKE2525E in pingdotgg/t3code#20088 * fix(mobile): show complete unwrapped diff lines containing tabs by @jakeleventhal in pingdotgg/t3code#14605 * fix(web): explain pull request diff load failures by @jakeleventhal in pingdotgg/t3code#19945 * fix(acp): request ids stay within signed 32-bit so Kotlin agents answer by @Mnigos in pingdotgg/t3code#15374 * fix(antigravity): keep the runtime version learned from ACP by @pauljones0 in pingdotgg/t3code#20980 * perf(mobile): clean Android builds keep their Gradle and native caches by @juliusmarminge in pingdotgg/t3code#20069 * fix(server): clear automatic PRs from other branches by @Brechard in pingdotgg/t3code#20223 * fix(server): Bitbucket threads settle after their pull request merges by @RealDoc06 in pingdotgg/t3code#19937 * fix(server): a steered send no longer leaves a subagent task running by @ScottN-PV in pingdotgg/t3code#19019 * fix(opencode): retry shared database locks during startup by @luke2x in pingdotgg/t3code#17922 * fix(server): threads no longer settle after merging PRs they were asked to merge by @Zeus-Deus in pingdotgg/t3code#18232 * fix(server): held assistant drafts keep their position when flushed at turn end by @fixfon in pingdotgg/t3code#19023 * fix(ssh): keep draining tunnel diagnostics after readiness by @saphid in pingdotgg/t3code#18832 * fix(web): threads finishing together play one completion sound by @luke2x in pingdotgg/t3code#17540 * fix(mobile): a failed draft save no longer blocks sending an uploaded attachment by @shivamhwp in pingdotgg/t3code#21101 * fix(web): move keyboard interaction out of the closing right panel by @saphid in pingdotgg/t3code#14786 * fix(web): show math labels in Mermaid diagrams by @NikitaMGrimm in pingdotgg/t3code#16198 * fix(web): device tool update failures show the server error, not network advice by @ScottN-PV in pingdotgg/t3code#17569 * fix(web): prevent provider wizard footer overlap while loading by @akash3444 in pingdotgg/t3code#18609 * fix(mobile): Live Activities keep updating after iOS rotates their push token by @aididhaiqal in pingdotgg/t3code#21134 * fix(mobile): keep composer within folded screen without leaving the thread by @PixPMusic in pingdotgg/t3code#18574 * fix(server): a branch on the only remote is not a fork when there is no origin by @only21mil in pingdotgg/t3code#20412 * fix(mobile): Android PR filter chips no longer crowd the sheet corner by @none23 in pingdotgg/t3code#20889 * fix(web): refresh stale desktop endpoints when Connections reopens by @arthurkatcher in pingdotgg/t3code#16026 * fix(shared): preserve escaped quotes in launch arguments by @Lucenx9 in pingdotgg/t3code#19525 * fix(server): preserve explicit effort for unknown Claude models by @JustYannicc in pingdotgg/t3code#20849 * fix(web): show No project in scratch thread breadcrumbs by @gjw4118 in pingdotgg/t3code#19721 * fix(web): keep collapsed diff file headers reachable by @AndreiShenets in pingdotgg/t3code#20333 * fix(mobile): Chinese input no longer breaks before a skill pill on iOS by @ilyaliao in pingdotgg/t3code#17614 * fix(mobile): resize quota bars when filtering environments by @PixPMusic in pingdotgg/t3code#19031 * fix(web): center composer control labels with their icons by @Aforno in pingdotgg/t3code#21241 * fix(server): warn when connect unlink leaves the relay record by @macodev00 in pingdotgg/t3code#17743 * fix(mobile): sheet action buttons text alignment by @camchis in pingdotgg/t3code#11260 * fix(shared): match Windows home paths case-insensitively in file links by @hogeheer499-commits in pingdotgg/t3code#19627 * fix(server): t3_preview_close reports the server browser's refusal by @ScottN-PV in pingdotgg/t3code#17429 * fix(desktop): reload the main renderer after it is killed by @spencermorris04 in pingdotgg/t3code#20300 * fix(mobile): preserve line counts for withheld pull request hunks by @saphid in pingdotgg/t3code#18836 * fix(server): SSH device-host tunnels no longer inherit ControlMaster by @kcazin in pingdotgg/t3code#17440 * fix(provider-acp): stop claiming agents' own tools named like T3 tools by @JWhitleyWork in pingdotgg/t3code#20376 * fix(client-runtime): a dropped session no longer reads as a failed connection by @otavio in pingdotgg/t3code#18469 * fix(server): slow OpenCode wrappers no longer show as unavailable by @josephv123 in pingdotgg/t3code#16544 * fix(web): let keyboard users reach why reviewer/label changes are unavailable by @saphid in pingdotgg/t3code#14785 * fix(server): desktop backend now exits when its launcher dies by @bompus in pingdotgg/t3code#20277 * fix(composer): paths such as /tmp/build.sh no longer open the slash menu by @NikitaMGrimm in pingdotgg/t3code#19671 * fix(mobile): preserve server matches in file search by @saphid in pingdotgg/t3code#18388 * fix(server): refresh local status after an automatic pull fails by @Alb11747 in pingdotgg/t3code#19686 * fix(grok): preserve native question multi-select by @JustYannicc in pingdotgg/t3code#20881 * perf(web): sidebar working timers share one clock by @Alyx-ML in pingdotgg/t3code#21195 * fix(scripts): leave type-only packages out of third-party notices by @leorivastech in pingdotgg/t3code#14627 * fix(web): handle Backspace when Android omits the key code by @JIAFALSEDREAM in pingdotgg/t3code#18063 * fix(server): allow restarts when a stale runtime record matches the server pid by @ScottN-PV in pingdotgg/t3code#20336 * fix(desktop): ignore snapshot shortcut repeats during flight by @MatthewFeroz in pingdotgg/t3code#11037 * fix(client-runtime): queries stay pending while a connection hands off by @tris203 in pingdotgg/t3code#18155 * fix(server): Muse turns stopped by the subscription quota are Limited, not failed by @ntindle in pingdotgg/t3code#18266 * fix(server): load merge request diffs on older GitLab by @aravhawk in pingdotgg/t3code#15886 * fix(server): take a delegated task's result from its newest turn item by @hinescreative in pingdotgg/t3code#19058 * fix(server): logs print causes instead of [Object] by @saphid in pingdotgg/t3code#16642 * fix(web): keep font picker keyboard selection in sync by @asfires in pingdotgg/t3code#9814 * fix(mobile): prevent environment row taps from swallowing switches by @Rohithkadaveru in pingdotgg/t3code#17677 * fix(web): new project options scroll above the footer by @0bkevin in pingdotgg/t3code#17064 * fix(server): stop retrying saved checkpoints after refresh failures by @shshajek-cpu in pingdotgg/t3code#20195 * fix(server): MCP thread reads skip the item scan they filter to nothing by @SunkenInTime in pingdotgg/t3code#17038 * fix(web): copied task lists keep their nested items and code blocks by @SoroushRF in pingdotgg/t3code#14778 * fix(server): t3 run from a T3 terminal no longer trips on the service's launcher context by @playcations in pingdotgg/t3code#14263 * fix(server): keep a remote server update running when the client disconnects by @macodev00 in pingdotgg/t3code#18980 * fix(relay): resolve cloudflared using the hydrated PATH by @Exotic209093 in pingdotgg/t3code#19444 * fix(mobile): branch naming text saves when you leave the screen by @adityavardhansharma in pingdotgg/t3code#18381 * fix(web): custom model price cells take only numbers by @RakshithBhat03 in pingdotgg/t3code#19245 * fix(web): standalone auth pages scroll when the card is taller than the window by @arhammahajan in pingdotgg/t3code#19603 * fix(server): discover Claude skills from add-dir launch args by @ScottN-PV in pingdotgg/t3code#20167 * fix(mobile): show assistant quotes as text in the queue sheet by @GLDRoger in pingdotgg/t3code#19007 * perf(server): OpenCode 2 stops writing unchanged session status updates by @Abdullah1738 in pingdotgg/t3code#16775 * fix(web): give archive actions more icon spacing by @voltcrash in pingdotgg/t3code#19769 * fix(server): checkpoints no longer expire a split index the repo still uses by @sheehanmunim in pingdotgg/t3code#17074 * fix(web): usage limit recovery errors no longer crush the composer banner by @patryksztuczka in pingdotgg/t3code#17457 * fix(desktop): local desktop builds no longer crash when a GitHub token is in the shell by @neominik in pingdotgg/t3code#19277 * fix(mobile): keep PR activity in place during pull-to-refresh by @Claudesaul in pingdotgg/t3code#20196 * fix(web): a resumed subagent's notification row shows it running, not failed by @TinBane in pingdotgg/t3code#18099 * fix(preview): isolate tabs for threads sharing a provider session by @TDanks2000 in pingdotgg/t3code#18146 * fix(mobile): Android sheets scroll to the end and keep their buttons on screen by @shivamhwp in pingdotgg/t3code#20284 * fix(shared): choose duration unit after rounding seconds by @kvnloo in pingdotgg/t3code#20299 * fix(mobile): the status pill label no longer flickers when it is truncated by @voida6 in pingdotgg/t3code#20724 * fix(mobile): remove orphaned temp files after atomic write failures by @kvnloo in pingdotgg/t3code#20736 * fix(mcp): optional tool parameters accept the null their schema advertises by @only21mil in pingdotgg/t3code#20411 * fix: database errors show actionable recovery guidance by @saphid in pingdotgg/t3code#20748 * fix(web): stored pull request details keep only the 20 most recent by @tiliakoos in pingdotgg/t3code#21245 * fix(server): publishing explains why the first push failed by @Salloxy in pingdotgg/t3code#19219 * fix(server): the V1 transcript import no longer stalls on each thread's V1 events by @derektrimm in pingdotgg/t3code#21050 * fix(web): a comment under a composer quote no longer joins the quote by @fixfon in pingdotgg/t3code#19450 * fix(usage): a CLIProxyAPI hub served under a path keeps its path by @Pipyakas in pingdotgg/t3code#19336 * fix(server): agent-driven threads keep their recent rows when checkpoint data is large by @fixfon in pingdotgg/t3code#21187 * fix(server): reverting a Claude thread to a subagent-only turn no longer breaks it by @fixfon in pingdotgg/t3code#21151 * fix(server): forks no longer inherit pull request watches by @jakeleventhal in pingdotgg/t3code#16623 * fix(web): keep answered questions visible after a turn settles by @colonelpanic8 in pingdotgg/t3code#21086 * fix(server): keep scheduled-task intervals on elapsed time across DST by @Sypher760-gif in pingdotgg/t3code#15768 * fix(source-control): compare check run timestamps by instant by @Lucenx9 in pingdotgg/t3code#20094 * fix(web): the Diff tab keeps its scope when you switch tabs by @fixfon in pingdotgg/t3code#20297 * fix(provider-core): stop false updates for versionless casks by @RVZO6 in pingdotgg/t3code#20386 * fix(server): honor configured remote diff bases by @NikitaMGrimm in pingdotgg/t3code#16453 * fix(client-runtime): Update clears the block on a host that is already compatible by @pujitha24 in pingdotgg/t3code#18563 * fix(provider-cursor): a symlinked skills root is no longer scanned twice by @ScottN-PV in pingdotgg/t3code#18664 * fix(server): a disabled bootstrap provider no longer stops startup by @ScottN-PV in pingdotgg/t3code#20035 * fix(server): watching a pull request again no longer repeats news the thread already got by @shivamhwp in pingdotgg/t3code#21155 * fix(server): tell users how to update an install T3 cannot update by @mkantautas in pingdotgg/t3code#18110 * fix(server): disabled providers no longer report missing executables by @Ranga-Prasath-22 in pingdotgg/t3code#18109 * fix(server): keep workspace skills when provider health fails by @NikitaMGrimm in pingdotgg/t3code#18309 * fix(desktop): keypad shortcuts and Ctrl+wheel zoom the app by @0xKa in pingdotgg/t3code#21200 * fix(server): setup actions no longer run for threads in the main checkout by @ViaxCo in pingdotgg/t3code#18891 * fix(web): thread drops land in the visible thread's draft by @Sinan53x in pingdotgg/t3code#20024 * fix(server): failed Cursor turns show Cursor's reason by @nkoynov in pingdotgg/t3code#16146 * fix(web): honor the send shortcut for follow-up actions by @DazKins in pingdotgg/t3code#20929 * fix(web): image viewer close button stays clear of the window controls by @otavio in pingdotgg/t3code#13919 * fix(server): parent Stop clears orphaned delegated follow-ups by @1kuna in pingdotgg/t3code#20310 * fix(opencode): OpenCode servers stop with a killed server on Windows by @SunkenInTime in pingdotgg/t3code#21103 * test(web): preview session sync and device tool update tests run in a real browser by @juliusmarminge in pingdotgg/t3code#21274 * fix(web): recognize Windows terminal file links by @UtkarshUsername in pingdotgg/t3code#21199 * fix(shared): Windows saves no longer fail while a scanner holds the file by @SunkenInTime in pingdotgg/t3code#21062 * fix(server): recover after Claude capability probe failures by @JustYannicc in pingdotgg/t3code#21042 * fix(browser): preserve native file pickers in desktop previews by @Gustav0ar in pingdotgg/t3code#20994 * fix(provider-core): pnpm-global updates approve the provider's build by @voida6 in pingdotgg/t3code#20796 * fix(server): usage-limit sweep stops scanning every run each tick by @Alyx-ML in pingdotgg/t3code#21191 * fix(provider-grok): report model windows for handoff budgets by @ScottN-PV in pingdotgg/t3code#20180 * fix(server): cancel preparing runs when archiving threads by @Quicksaver in pingdotgg/t3code#20073 * fix(desktop): a failed macOS test capture no longer blames the GNOME extension by @luke2x in pingdotgg/t3code#18857 * fix(web): scrolling a huge thread's history no longer loops the message list by @juliusmarminge in pingdotgg/t3code#21269 * fix(web): keep compressed image chips in their original draft by @saphid in pingdotgg/t3code#18393 * fix(server): a Limits hub failure names its TLS, HTTP, or timeout cause by @ScottN-PV in pingdotgg/t3code#18168 * fix(server): Claude wake runs no longer end empty while Claude is still answering by @SunkenInTime in pingdotgg/t3code#15816 * fix(web): Compose input no longer adds stray quotes by @JohnnyBill in pingdotgg/t3code#20350 * fix(forgejo): wake PR watches for edited comments by @Dunky13 in pingdotgg/t3code#18120 * fix(mobile): avoid nested dropdowns for single tools by @StiensWout in pingdotgg/t3code#15674 * fix(server): apps opened from T3 Code no longer inherit ELECTRON_RUN_AS_NODE by @Jord-JD in pingdotgg/t3code#20206 * fix(web): show an empty result when file search finds no matches by @johanovskyt in pingdotgg/t3code#17132 * fix(azure-devops): expose the latest source revision for review guides by @nateEc in pingdotgg/t3code#20977 * fix(server): read Claude context usage from stream message deltas by @camilopaezz in pingdotgg/t3code#19416 * fix(server): stop the branch rename before cancelling worktree setup by @saphid in pingdotgg/t3code#18443 * fix(server): find existing PR worktrees beyond the first branch page by @saphid in pingdotgg/t3code#18407 * fix(mobile): keep chat images visible when opening the viewer by @Claudesaul in pingdotgg/t3code#20188 * fix(web): restore palette focus when no composer is mounted by @saphid in pingdotgg/t3code#18850 * fix(desktop): unregistering a WSL backend now stops its supervisor by @pujitha24 in pingdotgg/t3code#18575 * fix(web,mobile): limit bars use each provider's chart color by @charlielockyer-rice in pingdotgg/t3code#16936 * fix(desktop): exclude unrelated VPN addresses from Tailscale pairing by @arthurkatcher in pingdotgg/t3code#15753 * fix(server): re-snoozing a woken thread to the same wake time hides it again by @JonasFocus in pingdotgg/t3code#14887 * fix(server): t3_thread_send reports why the orchestrator refused a message by @ddonathan in pingdotgg/t3code#21027 * fix(web): render stored HEIC attachments by @Gigioxx in pingdotgg/t3code#10429 * fix(web): truncate draft project names in the middle by @bentbrain in pingdotgg/t3code#18858 * fix(server): report missing Node on SSH device hosts instead of a connection failure by @ScottN-PV in pingdotgg/t3code#20377 * fix(server): preserve unrelated branch upstreams when opening fork PRs by @saphid in pingdotgg/t3code#18413 * fix(server): a Claude hook that drops a prompt now shows its reason by @fixfon in pingdotgg/t3code#21231 * fix(mobile): iOS builds on Xcode 27.0 no longer fail on 27.1-only hinge APIs by @JeremiahDJordan in pingdotgg/t3code#18913 * fix(server): ACP agents that need no sign-in drop models they stopped advertising by @Mnigos in pingdotgg/t3code#18807 * fix(source-control): fix watch failures on large forgejo PRs by @RJWadley in pingdotgg/t3code#18432 * fix(server): explain root browser launch failures instead of pointing to setup by @mxdhavgautam in pingdotgg/t3code#19846 * fix(server): reject thread.create for an existing id by @ScottN-PV in pingdotgg/t3code#19704 * fix(server): MCP thread list and read report every linked pull request by @ScottN-PV in pingdotgg/t3code#17454 * fix(markdown): Windows paths in messages keep their backslashes by @SunkenInTime in pingdotgg/t3code#21069 * chore(lint): reject use* functions that call no hooks by @juliusmarminge in pingdotgg/t3code#21260 * fix(server): replace Claude sessions that never saved a message by @maria-rcks in pingdotgg/t3code#19637 * fix(web): terminal drawer covers the turn minimap by @sairajchouhan in pingdotgg/t3code#14383 * fix(server): Claude subagents keep their model after a usage-limit notice by @jieyuexing in pingdotgg/t3code#17097 * fix(web): collapsed composer centers drafts that start with a list by @5knnbdwm in pingdotgg/t3code#17820 * fix(server): a full Claude context window no longer shows as a usage limit by @fixfon in pingdotgg/t3code#19848 * perf(server): skip unused diffs for user-written commit messages by @Microck in pingdotgg/t3code#19605 * test(server): drop the duplicate Path import in the Grok adapter test by @juliusmarminge in pingdotgg/t3code#21308 * test(server): a fork that stops its own PR watch keeps it as its ended watch by @juliusmarminge in pingdotgg/t3code#21309 * test(server): wait for a workflow member's late reply to reach the test's event log by @juliusmarminge in pingdotgg/t3code#21310 * test(web): file browser and attachment image tests run in a real browser by @juliusmarminge in pingdotgg/t3code#21297 * test(mobile): branch naming and server controls settings tests load again by @juliusmarminge in pingdotgg/t3code#21293 * test(mobile): a completed render splits the work log into lone-call rows by @juliusmarminge in pingdotgg/t3code#21295 ## New Contributors * @cardoso-neto made their first contribution in pingdotgg/t3code#19202 * @ilyaliao made their first contribution in pingdotgg/t3code#19042 * @cravenceiling made their first contribution in pingdotgg/t3code#20281 * @vaststudios made their first contribution in pingdotgg/t3code#18314 * @raj-sutariya made their first contribution in pingdotgg/t3code#19175 * @Jacksondr5 made their first contribution in pingdotgg/t3code#21065 * @etherious1804 made their first contribution in pingdotgg/t3code#19871 * @abhijeetsingh-22 made their first contribution in pingdotgg/t3code#19547 * @fionn77 made their first contribution in pingdotgg/t3code#17554 * @mkantautas made their first contribution in pingdotgg/t3code#20841 * @Alyx-ML made their first contribution in pingdotgg/t3code#21209 * @NikitaMGrimm made their first contribution in pingdotgg/t3code#19044 * @BCzyzewski made their first contribution in pingdotgg/t3code#18203 * @dgurney made their first contribution in pingdotgg/t3code#17208 * @bitconym made their first contribution in pingdotgg/t3code#18288 * @jeprecated made their first contribution in pingdotgg/t3code#21167 * @joshka made their first contribution in pingdotgg/t3code#15341 * @not-compromised made their first contribution in pingdotgg/t3code#14360 * @seanGSISG made their first contribution in pingdotgg/t3code#17676 * @Ajraba04 made their first contribution in pingdotgg/t3code#18991 * @gabrielrojasc made their first contribution in pingdotgg/t3code#14345 * @Iweisc made their first contribution in pingdotgg/t3code#20326 * @gchen0002 made their first contribution in pingdotgg/t3code#21048 * @TinBane made their first contribution in pingdotgg/t3code#18085 * @jetpham made their first contribution in pingdotgg/t3code#19645 * @IfkumRfnl made their first contribution in pingdotgg/t3code#20140 * @RJWadley made their first contribution in pingdotgg/t3code#18434 * @abdurahmon27 made their first contribution in pingdotgg/t3code#14745 * @pauliusiv123-rgb made their first contribution in pingdotgg/t3code#20081 * @MarMarLabs made their first contribution in pingdotgg/t3code#20118 * @GabrielCoelhoCruz made their first contribution in pingdotgg/t3code#19808 * @kyziq made their first contribution in pingdotgg/t3code#21055 * @poterstar made their first contribution in pingdotgg/t3code#18498 * @torjusb made their first contribution in pingdotgg/t3code#19362 * @Pipyakas made their first contribution in pingdotgg/t3code#19238 * @Aquaspaces made their first contribution in pingdotgg/t3code#18549 * @imqdee made their first contribution in pingdotgg/t3code#19452 * @MONKE2525E made their first contribution in pingdotgg/t3code#20088 * @pauljones0 made their first contribution in pingdotgg/t3code#20980 * @aididhaiqal made their first contribution in pingdotgg/t3code#21134 * @arthurkatcher made their first contribution in pingdotgg/t3code#16026 * @gjw4118 made their first contribution in pingdotgg/t3code#19721 * @AndreiShenets made their first contribution in pingdotgg/t3code#20333 * @hogeheer499-commits made their first contribution in pingdotgg/t3code#19627 * @spencermorris04 made their first contribution in pingdotgg/t3code#20300 * @kcazin made their first contribution in pingdotgg/t3code#17440 * @JWhitleyWork made their first contribution in pingdotgg/t3code#20376 * @josephv123 made their first contribution in pingdotgg/t3code#16544 * @JIAFALSEDREAM made their first contribution in pingdotgg/t3code#18063 * @hinescreative made their first contribution in pingdotgg/t3code#19058 * @asfires made their first contribution in pingdotgg/t3code#9814 * @Rohithkadaveru made their first contribution in pingdotgg/t3code#17677 * @shshajek-cpu made their first contribution in pingdotgg/t3code#20195 * @SoroushRF made their first contribution in pingdotgg/t3code#14778 * @playcations made their first contribution in pingdotgg/t3code#14263 * @GLDRoger made their first contribution in pingdotgg/t3code#19007 * @Abdullah1738 made their first contribution in pingdotgg/t3code#16775 * @patryksztuczka made their first contribution in pingdotgg/t3code#17457 * @neominik made their first contribution in pingdotgg/t3code#19277 * @TDanks2000 made their first contribution in pingdotgg/t3code#18146 * @Salloxy made their first contribution in pingdotgg/t3code#19219 * @Ranga-Prasath-22 made their first contribution in pingdotgg/t3code#18109 * @0xKa made their first contribution in pingdotgg/t3code#21200 * @ViaxCo made their first contribution in pingdotgg/t3code#18891 * @Sinan53x made their first contribution in pingdotgg/t3code#20024 * @DazKins made their first contribution in pingdotgg/t3code#20929 * @1kuna made their first contribution in pingdotgg/t3code#20310 * @Gustav0ar made their first contribution in pingdotgg/t3code#20994 * @JohnnyBill made their first contribution in pingdotgg/t3code#20350 * @Dunky13 made their first contribution in pingdotgg/t3code#18120 * @Jord-JD made their first contribution in pingdotgg/t3code#20206 * @johanovskyt made their first contribution in pingdotgg/t3code#17132 * @camilopaezz made their first contribution in pingdotgg/t3code#19416 * @charlielockyer-rice made their first contribution in pingdotgg/t3code#16936 * @ddonathan made their first contribution in pingdotgg/t3code#21027 * @bentbrain made their first contribution in pingdotgg/t3code#18858 * @JeremiahDJordan made their first contribution in pingdotgg/t3code#18913 * @mxdhavgautam made their first contribution in pingdotgg/t3code#19846 * @sairajchouhan made their first contribution in pingdotgg/t3code#14383 * @jieyuexing made their first contribution in pingdotgg/t3code#17097 * @5knnbdwm made their first contribution in pingdotgg/t3code#17820 * @Microck made their first contribution in pingdotgg/t3code#19605 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261018.3315...v0.1.1-nightly.20261018.3331 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261018.3331
* fix(acp): request ids stay within signed 32-bit so Kotlin agents answer (pingdotgg#15374) * fix(antigravity): keep the runtime version learned from ACP (pingdotgg#20980) Co-authored-by: Paul <paul@local> * perf(mobile): clean Android builds keep their Gradle and native caches (pingdotgg#20069) Co-authored-by: Aaron Queen <bompus@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): clear automatic PRs from other branches (pingdotgg#20223) * fix(server): Bitbucket threads settle after their pull request merges (pingdotgg#19937) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): a steered send no longer leaves a subagent task running (pingdotgg#19019) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(opencode): retry shared database locks during startup (pingdotgg#17922) Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(server): threads no longer settle after merging PRs they were asked to merge (pingdotgg#18232) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(server): held assistant drafts keep their position when flushed at turn end (pingdotgg#19023) * fix(ssh): keep draining tunnel diagnostics after readiness (pingdotgg#18832) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): threads finishing together play one completion sound (pingdotgg#17540) * fix(mobile): a failed draft save no longer blocks sending an uploaded attachment (pingdotgg#21101) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Tejas Rahane <17571323+trahane@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): move keyboard interaction out of the closing right panel (pingdotgg#14786) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): show math labels in Mermaid diagrams (pingdotgg#16198) * fix(web): device tool update failures show the server error, not network advice (pingdotgg#17569) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): prevent provider wizard footer overlap while loading (pingdotgg#18609) * fix(mobile): Live Activities keep updating after iOS rotates their push token (pingdotgg#21134) Co-authored-by: Aidid Haiqal <syafdo02@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): keep composer within folded screen without leaving the thread (pingdotgg#18574) * fix(server): a branch on the only remote is not a fork when there is no origin (pingdotgg#20412) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): Android PR filter chips no longer crowd the sheet corner (pingdotgg#20889) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): refresh stale desktop endpoints when Connections reopens (pingdotgg#16026) Co-authored-by: Arthur Katcher <192321283+arthurkatcher@users.noreply.github.com> * fix(shared): preserve escaped quotes in launch arguments (pingdotgg#19525) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * fix(server): preserve explicit effort for unknown Claude models (pingdotgg#20849) * fix(web): show No project in scratch thread breadcrumbs (pingdotgg#19721) * fix(web): keep collapsed diff file headers reachable (pingdotgg#20333) * fix(mobile): Chinese input no longer breaks before a skill pill on iOS (pingdotgg#17614) Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> * fix(mobile): resize quota bars when filtering environments (pingdotgg#19031) * fix(web): center composer control labels with their icons (pingdotgg#21241) * fix(server): warn when connect unlink leaves the relay record (pingdotgg#17743) Co-authored-by: macodev00 <macodev00@users.noreply.github.com> * fix(mobile): sheet action buttons text alignment (pingdotgg#11260) Co-authored-by: Cursor <cursoragent@cursor.com> * fix(shared): match Windows home paths case-insensitively in file links (pingdotgg#19627) Co-authored-by: hogeheer499-commits <267467744+hogeheer499-commits@users.noreply.github.com> * fix(server): t3_preview_close reports the server browser's refusal (pingdotgg#17429) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(desktop): reload the main renderer after it is killed (pingdotgg#20300) * fix(mobile): preserve line counts for withheld pull request hunks (pingdotgg#18836) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> * fix(server): SSH device-host tunnels no longer inherit ControlMaster (pingdotgg#17440) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(provider-acp): stop claiming agents' own tools named like T3 tools (pingdotgg#20376) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(client-runtime): a dropped session no longer reads as a failed connection (pingdotgg#18469) * fix(server): slow OpenCode wrappers no longer show as unavailable (pingdotgg#16544) * fix(web): let keyboard users reach why reviewer/label changes are unavailable (pingdotgg#14785) Co-authored-by: SAPHID <saphid@users.noreply.github.com> * fix(server): desktop backend now exits when its launcher dies (pingdotgg#20277) * fix(composer): paths such as /tmp/build.sh no longer open the slash menu (pingdotgg#19671) * fix(mobile): preserve server matches in file search (pingdotgg#18388) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> * fix(server): refresh local status after an automatic pull fails (pingdotgg#19686) Co-authored-by: GPT-6.1-Sol at high effort <noreply@openai.com> * fix(grok): preserve native question multi-select (pingdotgg#20881) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> * perf(web): sidebar working timers share one clock (pingdotgg#21195) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(scripts): leave type-only packages out of third-party notices (pingdotgg#14627) * fix(web): handle Backspace when Android omits the key code (pingdotgg#18063) * fix(server): allow restarts when a stale runtime record matches the server pid (pingdotgg#20336) * fix(desktop): ignore snapshot shortcut repeats during flight (pingdotgg#11037) * fix(client-runtime): queries stay pending while a connection hands off (pingdotgg#18155) * fix(server): Muse turns stopped by the subscription quota are Limited, not failed (pingdotgg#18266) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): load merge request diffs on older GitLab (pingdotgg#15886) * fix(server): take a delegated task's result from its newest turn item (pingdotgg#19058) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): logs print causes instead of [Object] (pingdotgg#16642) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> * fix(web): keep font picker keyboard selection in sync (pingdotgg#9814) * fix(mobile): prevent environment row taps from swallowing switches (pingdotgg#17677) * fix(web): new project options scroll above the footer (pingdotgg#17064) * fix(server): stop retrying saved checkpoints after refresh failures (pingdotgg#20195) * fix(server): MCP thread reads skip the item scan they filter to nothing (pingdotgg#17038) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(web): copied task lists keep their nested items and code blocks (pingdotgg#14778) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): t3 run from a T3 terminal no longer trips on the service's launcher context (pingdotgg#14263) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(server): keep a remote server update running when the client disconnects (pingdotgg#18980) Co-authored-by: macodev00 <273427913+macodev00@users.noreply.github.com> Co-authored-by: maco <macodev00@users.noreply.github.com> * fix(relay): resolve cloudflared using the hydrated PATH (pingdotgg#19444) * fix(mobile): branch naming text saves when you leave the screen (pingdotgg#18381) Co-authored-by: Claude <noreply@anthropic.com> * fix(web): custom model price cells take only numbers (pingdotgg#19245) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): standalone auth pages scroll when the card is taller than the window (pingdotgg#19603) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): discover Claude skills from add-dir launch args (pingdotgg#20167) * fix(mobile): show assistant quotes as text in the queue sheet (pingdotgg#19007) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(server): OpenCode 2 stops writing unchanged session status updates (pingdotgg#16775) * fix(web): give archive actions more icon spacing (pingdotgg#19769) * fix(server): checkpoints no longer expire a split index the repo still uses (pingdotgg#17074) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): usage limit recovery errors no longer crush the composer banner (pingdotgg#17457) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(desktop): local desktop builds no longer crash when a GitHub token is in the shell (pingdotgg#19277) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): keep PR activity in place during pull-to-refresh (pingdotgg#20196) * fix(web): a resumed subagent's notification row shows it running, not failed (pingdotgg#18099) Co-authored-by: TinBane <363069+TinBane@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(preview): isolate tabs for threads sharing a provider session (pingdotgg#18146) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): Android sheets scroll to the end and keep their buttons on screen (pingdotgg#20284) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(shared): choose duration unit after rounding seconds (pingdotgg#20299) * fix(mobile): the status pill label no longer flickers when it is truncated (pingdotgg#20724) * fix(mobile): remove orphaned temp files after atomic write failures (pingdotgg#20736) * fix(mcp): optional tool parameters accept the null their schema advertises (pingdotgg#20411) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix: database errors show actionable recovery guidance (pingdotgg#20748) Co-authored-by: SAPHID <saphid@users.noreply.github.com> * fix(web): stored pull request details keep only the 20 most recent (pingdotgg#21245) * fix(server): publishing explains why the first push failed (pingdotgg#19219) * fix(server): the V1 transcript import no longer stalls on each thread's V1 events (pingdotgg#21050) * fix(web): a comment under a composer quote no longer joins the quote (pingdotgg#19450) Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(usage): a CLIProxyAPI hub served under a path keeps its path (pingdotgg#19336) * fix(server): agent-driven threads keep their recent rows when checkpoint data is large (pingdotgg#21187) * fix(server): reverting a Claude thread to a subagent-only turn no longer breaks it (pingdotgg#21151) * fix(server): forks no longer inherit pull request watches (pingdotgg#16623) * fix(web): keep answered questions visible after a turn settles (pingdotgg#21086) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): keep scheduled-task intervals on elapsed time across DST (pingdotgg#15768) Co-authored-by: Sayf Fadil <313136901+Sypher760-gif@users.noreply.github.com> * fix(source-control): compare check run timestamps by instant (pingdotgg#20094) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * fix(web): the Diff tab keeps its scope when you switch tabs (pingdotgg#20297) * fix(provider-core): stop false updates for versionless casks (pingdotgg#20386) * fix(server): honor configured remote diff bases (pingdotgg#16453) * fix(client-runtime): Update clears the block on a host that is already compatible (pingdotgg#18563) Signed-off-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com> Co-authored-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com> * fix(provider-cursor): a symlinked skills root is no longer scanned twice (pingdotgg#18664) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): a disabled bootstrap provider no longer stops startup (pingdotgg#20035) * fix(server): watching a pull request again no longer repeats news the thread already got (pingdotgg#21155) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): tell users how to update an install T3 cannot update (pingdotgg#18110) * fix(server): disabled providers no longer report missing executables (pingdotgg#18109) * fix(server): keep workspace skills when provider health fails (pingdotgg#18309) * fix(desktop): keypad shortcuts and Ctrl+wheel zoom the app (pingdotgg#21200) Co-authored-by: Mnigos <56691628+Mnigos@users.noreply.github.com> * fix(server): setup actions no longer run for threads in the main checkout (pingdotgg#18891) * fix(web): thread drops land in the visible thread's draft (pingdotgg#20024) Co-authored-by: Sinan <sinan@Mac-mini-von-Sinan.local> Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(server): failed Cursor turns show Cursor's reason (pingdotgg#16146) * fix(web): honor the send shortcut for follow-up actions (pingdotgg#20929) * fix(web): image viewer close button stays clear of the window controls (pingdotgg#13919) * fix(server): parent Stop clears orphaned delegated follow-ups (pingdotgg#20310) * fix(opencode): OpenCode servers stop with a killed server on Windows (pingdotgg#21103) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): preview session sync and device tool update tests run in a real browser (pingdotgg#21274) * fix(web): recognize Windows terminal file links (pingdotgg#21199) * fix(shared): Windows saves no longer fail while a scanner holds the file (pingdotgg#21062) Co-authored-by: yaacovcorcos <190350601+yaacovcorcos@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): recover after Claude capability probe failures (pingdotgg#21042) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(browser): preserve native file pickers in desktop previews (pingdotgg#20994) * fix(provider-core): pnpm-global updates approve the provider's build (pingdotgg#20796) * fix(server): usage-limit sweep stops scanning every run each tick (pingdotgg#21191) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(provider-grok): report model windows for handoff budgets (pingdotgg#20180) * fix(server): cancel preparing runs when archiving threads (pingdotgg#20073) * fix(desktop): a failed macOS test capture no longer blames the GNOME extension (pingdotgg#18857) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(web): scrolling a huge thread's history no longer loops the message list (pingdotgg#21269) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): keep compressed image chips in their original draft (pingdotgg#18393) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> * fix(server): a Limits hub failure names its TLS, HTTP, or timeout cause (pingdotgg#18168) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): Claude wake runs no longer end empty while Claude is still answering (pingdotgg#15816) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(web): Compose input no longer adds stray quotes (pingdotgg#20350) * fix(forgejo): wake PR watches for edited comments (pingdotgg#18120) Signed-off-by: Marc Went <marc@went.io> * fix(mobile): avoid nested dropdowns for single tools (pingdotgg#15674) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(server): apps opened from T3 Code no longer inherit ELECTRON_RUN_AS_NODE (pingdotgg#20206) * fix(web): show an empty result when file search finds no matches (pingdotgg#17132) * fix(azure-devops): expose the latest source revision for review guides (pingdotgg#20977) * fix(server): read Claude context usage from stream message deltas (pingdotgg#19416) * fix(server): stop the branch rename before cancelling worktree setup (pingdotgg#18443) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> * fix(server): find existing PR worktrees beyond the first branch page (pingdotgg#18407) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> * fix(mobile): keep chat images visible when opening the viewer (pingdotgg#20188) * fix(web): restore palette focus when no composer is mounted (pingdotgg#18850) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> * fix(desktop): unregistering a WSL backend now stops its supervisor (pingdotgg#18575) Signed-off-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com> Co-authored-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com> * fix(web,mobile): limit bars use each provider's chart color (pingdotgg#16936) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(desktop): exclude unrelated VPN addresses from Tailscale pairing (pingdotgg#15753) Co-authored-by: Arthur Katcher <192321283+arthurkatcher@users.noreply.github.com> * fix(server): re-snoozing a woken thread to the same wake time hides it again (pingdotgg#14887) * fix(server): t3_thread_send reports why the orchestrator refused a message (pingdotgg#21027) Co-authored-by: dan <dan@bw-hq-linuxws01.bellwetherit.com> * fix(web): render stored HEIC attachments (pingdotgg#10429) * fix(web): truncate draft project names in the middle (pingdotgg#18858) Co-authored-by: bentbrain <28818884+bentbrain@users.noreply.github.com> * fix(server): report missing Node on SSH device hosts instead of a connection failure (pingdotgg#20377) * fix(server): preserve unrelated branch upstreams when opening fork PRs (pingdotgg#18413) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> * fix(server): a Claude hook that drops a prompt now shows its reason (pingdotgg#21231) * fix(mobile): iOS builds on Xcode 27.0 no longer fail on 27.1-only hinge APIs (pingdotgg#18913) Co-authored-by: Jeremiah Jordan <zanson@zanson.org> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): ACP agents that need no sign-in drop models they stopped advertising (pingdotgg#18807) * fix(source-control): fix watch failures on large forgejo PRs (pingdotgg#18432) * fix(server): explain root browser launch failures instead of pointing to setup (pingdotgg#19846) * fix(server): reject thread.create for an existing id (pingdotgg#19704) * fix(server): MCP thread list and read report every linked pull request (pingdotgg#17454) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(markdown): Windows paths in messages keep their backslashes (pingdotgg#21069) Co-authored-by: OhadC <4123639+OhadC@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * chore(lint): reject use* functions that call no hooks (pingdotgg#21260) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): replace Claude sessions that never saved a message (pingdotgg#19637) * fix(web): terminal drawer covers the turn minimap (pingdotgg#14383) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(server): Claude subagents keep their model after a usage-limit notice (pingdotgg#17097) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(web): collapsed composer centers drafts that start with a list (pingdotgg#17820) Co-authored-by: Claude <noreply@anthropic.com> * fix(server): a full Claude context window no longer shows as a usage limit (pingdotgg#19848) * perf(server): skip unused diffs for user-written commit messages (pingdotgg#19605) * test(server): drop the duplicate Path import in the Grok adapter test (pingdotgg#21308) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(server): a fork that stops its own PR watch keeps it as its ended watch (pingdotgg#21309) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(server): wait for a workflow member's late reply to reach the test's event log (pingdotgg#21310) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): file browser and attachment image tests run in a real browser (pingdotgg#21297) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(mobile): branch naming and server controls settings tests load again (pingdotgg#21293) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(mobile): a completed render splits the work log into lone-call rows (pingdotgg#21295) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): settings screens compile with the React Compiler (pingdotgg#21119) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): files, review and remaining settings screens compile with the React Compiler (pingdotgg#21124) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): home, workspace layout and overlay pieces compile with the React Compiler (pingdotgg#21133) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): pull request screens compile with the React Compiler (pingdotgg#21136) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): composer, connections, add project and shared state compile with the React Compiler (pingdotgg#21137) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): new task flow, git sheets, thread settings and work log compile with the React Compiler (pingdotgg#21141) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): thread composer, route screen and queue control compile with the React Compiler (pingdotgg#21142) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): thread detail screen and navigation sidebar compile with the React Compiler (pingdotgg#21145) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): thread rows no longer re-render the list when another thread streams (pingdotgg#21255) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): composer draft no longer re-renders the thread screen when typing (pingdotgg#21261) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): ThreadFeed compiles with the React Compiler (pingdotgg#21268) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(server): send telemetry through ingest.t3.codes (pingdotgg#15028) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(devices): Android fold controls work over T3 Connect (pingdotgg#21156) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): burst-merged jsdom tests run in a real browser (pingdotgg#21318) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): keep the composer chin below the input (pingdotgg#21345) * fix(mobile): sheets close with an X and confirm with a checkmark (pingdotgg#21319) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(tailscale): a slow tailscale status no longer hides Tailscale in Settings (pingdotgg#21057) * chore(deps): web and mobile share React 19.3 from the catalog (pingdotgg#21376) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): migrate legacy thread pull request links (pingdotgg#19129) * fix(server): a failed Codex turn no longer traps the queue behind its subagents (pingdotgg#21366) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(server): count which product features people use (pingdotgg#15921) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * feat(server): count which T3 MCP tools agents use (pingdotgg#15913) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): HTML renders drop the loading skeleton (pingdotgg#21480) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(mobile): sent steer and queued messages are marked like desktop (pingdotgg#21417) * fix(server): keep queued subagent status in sync (pingdotgg#21487) * perf(web): virtualize large changed-file trees (pingdotgg#21482) * fix(pull-requests): distinguish skipped checks with a slash icon (pingdotgg#21498) * fix(mobile): crash report shows the store build number (pingdotgg#16052) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(files): load PDFs in browser previews (pingdotgg#21095) * fix(server): device-host SSH tunnels exit when the server dies (pingdotgg#17448) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): Open in → Finder in the file preview opened the file in its default app instead of revealing it (pingdotgg#16955) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): project actions no longer reuse the right-panel terminal (pingdotgg#18340) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): the device screen keeps focus when typing or returning to the window (pingdotgg#14534) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): keep browser input responsive during slow navigation (pingdotgg#16691) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(grok): a Homebrew-installed Grok updates through brew and is compared against the cask (pingdotgg#18772) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(antigravity): read usage from each instance data directory (pingdotgg#17769) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): reconnecting no longer reopens a closed terminal (pingdotgg#18444) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(shared): preview addresses containing another URL open instead of searching (pingdotgg#17943) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): ACP Registry loads on networks with slow IPv4 connects (pingdotgg#15054) Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(preview): keep desktop-rendered tabs out of idle cleanup (pingdotgg#18147) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): auto-delivered messages queue between provider turns (pingdotgg#15691) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(server): OpenCode 2 threads keep T3's tools after an idle project is evicted (pingdotgg#16796) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): install the advertised version for pnpm-global provider updates (pingdotgg#14295) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(web): ignore right-clicks in the flat Device viewport (pingdotgg#17020) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): "No project" picker shows its full label on the new-thread screen (pingdotgg#21504) * fix(web): up-arrow recall skips automation and agent messages (pingdotgg#21510) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(desktop): reattach a browser tab whose debugger Chromium dropped (pingdotgg#17525) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): Integrations settings show one Browser section, not two (pingdotgg#18264) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): hide the empty reset badge on unstarted limit windows (pingdotgg#18579) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(cli): browser setup installs missing fonts (pingdotgg#17570) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(web,mobile): queued messages no longer say "From queue" once sent (pingdotgg#21474) * fix(web): refresh embedded assets in markdown file previews (pingdotgg#18647) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(web,mobile): keep reporting client activity after an interrupted report (pingdotgg#15738) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): paste terminal text once and clear the shortcut on release (pingdotgg#19366) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): fall back when checkpoint fsync is unsupported (pingdotgg#14411) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(preview): browser tabs no longer go blank when the tab list reorders (pingdotgg#13799) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(server): terminals no longer inherit the launching tmux session (pingdotgg#13359) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): gallery images shrink back into their thumbnail on close (pingdotgg#21481) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(terminal): keep project script commands out of shell history (pingdotgg#13903) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(shared): port checks no longer fail on hosts with IPv6 disabled (pingdotgg#15044) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): load iOS device streams over HTTP on Android (pingdotgg#14284) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(web): reveal folded imported responses when opening citations (pingdotgg#18423) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): show empty sessions when weekly quota is exhausted (pingdotgg#20349) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): keep device results in the thread that started them (pingdotgg#16040) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(desktop): built-in browser sites can no longer post notifications without permission (pingdotgg#20237) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(mobile): Browser menu pastes the phone's clipboard into the page (pingdotgg#19648) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(shared): terminal labels after non-BMP letters stay plain text (pingdotgg#19968) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(connect): stop reporting a loading cloud session as a sign-in change (pingdotgg#11013) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(terminal): fish no longer stalls 10s on startup (pingdotgg#19685) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): Android terminal input no longer triggers password autofill (pingdotgg#20051) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(shared): T3 Connect devices connect to hosts with a Latvian, Lithuanian, Basque or Azerbaijani locale (pingdotgg#19616) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): thread-bound scheduled tasks run on the thread's current provider (pingdotgg#18467) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(server,mobile): a message you send resumes a held queue, and mobile can resume one (pingdotgg#21473) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(web): choose the in-app browser's search engine (pingdotgg#17688) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> * fix(mobile): settings no longer tell you to update when you're up to date (pingdotgg#21688) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): fix the workflow script test that times out on busy CI runners (pingdotgg#21699) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): a file shared into a new task shows in the composer before you send (pingdotgg#21659) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(desktop): a cold WSL distro gets 30 seconds to boot instead of 10 (pingdotgg#21070) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): detect software keyboard before handling composer Enter (pingdotgg#21763) * fix(mobile): the Git sheet uses the standard list rows (pingdotgg#21785) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(fork): adapt fork code to upstream APIs from Oct 19 merge * fix(fork): satisfy upstream lint rules and migration guard from Oct 19 merge --------- Signed-off-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com> Signed-off-by: Marc Went <marc@went.io> Co-authored-by: Igor Makowski <56691628+Mnigos@users.noreply.github.com> Co-authored-by: Paul Jones <32859666+pauljones0@users.noreply.github.com> Co-authored-by: Paul <paul@local> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Aaron Queen <bompus@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Rodrigo Brechard <rodrigobrechard@gmail.com> Co-authored-by: Sebastian Pugliese <73218979+RealDoc06@users.noreply.github.com> Co-authored-by: Scott Norteman <snorteman@gmail.com> Co-authored-by: luke <97411838+luke2x@users.noreply.github.com> Co-authored-by: Zeus-Deus <100132710+Zeus-Deus@users.noreply.github.com> Co-authored-by: fixfon <12512757+fixfon@users.noreply.github.com> Co-authored-by: Alex Southwell <saphid@gmail.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Tejas Rahane <17571323+trahane@users.noreply.github.com> Co-authored-by: Nikita Maximilian Grimm <github@nikitagrimm.de> Co-authored-by: Akash Moradiya <64416825+akash3444@users.noreply.github.com> Co-authored-by: Aidid Haiqal <aididhaiqal@users.noreply.github.com> Co-authored-by: Aidid Haiqal <syafdo02@gmail.com> Co-authored-by: Alex <me@pixp.cc> Co-authored-by: Victor Vogel <thevictorvogel@gmail.com> Co-authored-by: Nick Anisimov <n.anisimov.23@gmail.com> Co-authored-by: Arthur Katcher <katcherarthur07@gmail.com> Co-authored-by: Arthur Katcher <192321283+arthurkatcher@users.noreply.github.com> Co-authored-by: Simone <lucenz@proton.me> Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: Yannic Charlon <52761674+JustYannicc@users.noreply.github.com> Co-authored-by: Greg Woulfe <47796957+gjw4118@users.noreply.github.com> Co-authored-by: Andrei Shenets <shenets.andrei@gmail.com> Co-authored-by: IlyaL <ilyaliao324@gmail.com> Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> Co-authored-by: Afonso Ferreira <99990310+Aforno@users.noreply.github.com> Co-authored-by: maco <gosarmarcel7@gmail.com> Co-authored-by: macodev00 <macodev00@users.noreply.github.com> Co-authored-by: Cameron Chisholm <cam@camchis.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Jesse van Dijk <hogeheer499@gmail.com> Co-authored-by: hogeheer499-commits <267467744+hogeheer499-commits@users.noreply.github.com> Co-authored-by: ObliviousObserver <96266208+spencermorris04@users.noreply.github.com> Co-authored-by: Killian Cazin <1305146+kcazin@users.noreply.github.com> Co-authored-by: Joshua Whitley <josh@electrifiedautonomy.com> Co-authored-by: Otavio Salvador <otavio@ossystems.com.br> Co-authored-by: Joseph Vidal <135430578+josephv123@users.noreply.github.com> Co-authored-by: Alb11747 <albertli_042@hotmail.com> Co-authored-by: Alyx <256263590+Alyx-ML@users.noreply.github.com> Co-authored-by: Leonel Rivas <encriptandost@gmail.com> Co-authored-by: JIA <121747365+JIAFALSEDREAM@users.noreply.github.com> Co-authored-by: Matthew Feroz <136640686+MatthewFeroz@users.noreply.github.com> Co-authored-by: Tristan Knight <admin@snappeh.com> Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> Co-authored-by: Arav Jain <aravhawk@gmail.com> Co-authored-by: hinescreative <wes@hinescreative.xyz> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Adam Firestone <126423542+asfires@users.noreply.github.com> Co-authored-by: Rohith Kadaveru <rohithkadaveru@gmail.com> Co-authored-by: Kevin Bravo <79945749+0bkevin@users.noreply.github.com> Co-authored-by: shshajek-cpu <shshajek@gmail.com> Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com> Co-authored-by: Soroush Baraouf <soroushraouf44@gmail.com> Co-authored-by: Shawn <5414767+playcations@users.noreply.github.com> Co-authored-by: macodev00 <273427913+macodev00@users.noreply.github.com> Co-authored-by: James C <134711311+Exotic209093@users.noreply.github.com> Co-authored-by: Aditya Vardhan Sharma <adityaradhika13@gmail.com> Co-authored-by: Rakshith Bhat <88523594+RakshithBhat03@users.noreply.github.com> Co-authored-by: Arham Mahajan <89351952+arhammahajan@users.noreply.github.com> Co-authored-by: Nishchay M Chandra <130458023+GLDRoger@users.noreply.github.com> Co-authored-by: Abdullah <ardudeisepic@outlook.com> Co-authored-by: Lakshmi Tanmay <lakshmi@voltcrash.com> Co-authored-by: Sheehan Munim <80079528+sheehanmunim@users.noreply.github.com> Co-authored-by: Patryk Sztuczka <73931963+patryksztuczka@users.noreply.github.com> Co-authored-by: Dominik Engelhardt <dominikengelhardt@ymail.com> Co-authored-by: Claudesaul <139932571+Claudesaul@users.noreply.github.com> Co-authored-by: TinBane <TinBane@users.noreply.github.com> Co-authored-by: TinBane <363069+TinBane@users.noreply.github.com> Co-authored-by: Tdanks2000 <40835340+TDanks2000@users.noreply.github.com> Co-authored-by: Kevin Rajan <7121943+kvnloo@users.noreply.github.com> Co-authored-by: voida6 <kainth.ravdeep@gmail.com> Co-authored-by: tiliakoos <73005126+tiliakoos@users.noreply.github.com> Co-authored-by: Salloxy <197323176+Salloxy@users.noreply.github.com> Co-authored-by: Derek Trimm <275381468+derektrimm@users.noreply.github.com> Co-authored-by: Quy Ngoc Nguyen <pipyakas@gmail.com> Co-authored-by: Jake Leventhal <jakeleventhal@me.com> Co-authored-by: Ivan Malison <IvanMalison@gmail.com> Co-authored-by: Sypher760-gif <sayffadil@gmail.com> Co-authored-by: Sayf Fadil <313136901+Sypher760-gif@users.noreply.github.com> Co-authored-by: RVZO6 <66844656+RVZO6@users.noreply.github.com> Co-authored-by: Pujitha Paladugu <pujitha.rathna@gmail.com> Co-authored-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com> Co-authored-by: Mantas Kantautas <mantas.kantautas@gmail.com> Co-authored-by: Ranga Prasath S R <rangaprasath22@gmail.com> Co-authored-by: Reda Hilal <155382825+0xKa@users.noreply.github.com> Co-authored-by: Victor Ajibade <43748536+ViaxCo@users.noreply.github.com> Co-authored-by: Sinan Turna <sinan.turna@yahoo.com> Co-authored-by: Sinan <sinan@Mac-mini-von-Sinan.local> Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Nikita Koynov <43469098+nkoynov@users.noreply.github.com> Co-authored-by: David Atkins <david.atkins1998@gmail.com> Co-authored-by: kuna <47035140+1kuna@users.noreply.github.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: yaacovcorcos <190350601+yaacovcorcos@users.noreply.github.com> Co-authored-by: Gustavo Rosa <Gustav0ar@users.noreply.github.com> Co-authored-by: Luís Miguel <quicksaver@gmail.com> Co-authored-by: Johannes Bill <johannes.bill@gmail.com> Co-authored-by: Marc Went <Dunky13@users.noreply.github.com> Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com> Co-authored-by: Jord <650645+Jord-JD@users.noreply.github.com> Co-authored-by: Tomas Johanovsky <94782578+johanovskyt@users.noreply.github.com> Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com> Co-authored-by: Camilo Paez <camilopaez.dev@gmail.com> Co-authored-by: Charlie Lockyer <97544360+charlielockyer-rice@users.noreply.github.com> Co-authored-by: Jonas B. <122468993+JonasFocus@users.noreply.github.com> Co-authored-by: Dan Donathan <1904043+ddonathan@users.noreply.github.com> Co-authored-by: dan <dan@bw-hq-linuxws01.bellwetherit.com> Co-authored-by: Guillermo Casanova <75276669+Gigioxx@users.noreply.github.com> Co-authored-by: Liam Cullen <liamtc@icloud.com> Co-authored-by: bentbrain <28818884+bentbrain@users.noreply.github.com> Co-authored-by: Jeremiah Jordan <jeremiah@apache.org> Co-authored-by: Jeremiah Jordan <zanson@zanson.org> Co-authored-by: Robbie <robbiethewadley@gmail.com> Co-authored-by: Madhav Gautam <63944499+mxdhavgautam@users.noreply.github.com> Co-authored-by: OhadC <4123639+OhadC@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: Sairaj <sairaj2119@gmail.com> Co-authored-by: 洁月星 <jieyuexing@outlook.com> Co-authored-by: Samuel Soeller <33049999+5knnbdwm@users.noreply.github.com> Co-authored-by: Microck <contact@micr.dev> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com> Co-authored-by: Mohamed Akef <1524321+mohamed-akef@users.noreply.github.com> Co-authored-by: James Villarrubia <8172873+jamesvillarrubia@users.noreply.github.com> Co-authored-by: Antony <97451137+TonybynMp4@users.noreply.github.com> Co-authored-by: hayden <95017494+haydenkz@users.noreply.github.com> Co-authored-by: Maxwell Young <maxtheyoung@gmail.com> Co-authored-by: Raphael Fakhri <153192858+RaphaelFakhri@users.noreply.github.com> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> Co-authored-by: Sebastián Maluk <samaluk@miuandes.cl> Co-authored-by: tobymarks <150393460+tobymarks@users.noreply.github.com> Co-authored-by: Adrian Las <adrilasar.dev@gmail.com> Co-authored-by: Saikrishna Ambeti <saikrisha.ambeti1@gmail.com> Co-authored-by: Sky Hong <sky9109@gmail.com> Co-authored-by: mohammed shazeb <mohammedshazeb10@gmail.com> Co-authored-by: Kiera <142857464+mkiera@users.noreply.github.com> Co-authored-by: Uzair Sajid <uzee@uzeeinc.net> Co-authored-by: mr-joom <mr.joom@gmail.com> Co-authored-by: Adel Khial <adel.khial@gmail.com> Co-authored-by: Alex Chambers <alexchambers91@gmail.com> Co-authored-by: spiky02plateau <155588579+spiky02plateau@users.noreply.github.com> Co-authored-by: Karan Kumar <karan.8080dev@gmail.com> Co-authored-by: project516 <138796702+Project516@users.noreply.github.com> Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com>
…pingdotgg#15768) Co-authored-by: Sayf Fadil <313136901+Sypher760-gif@users.noreply.github.com> (cherry picked from commit b18a9bf)
Problem
The interval contract specifies a fixed number of milliseconds, but the scheduler adds them to a zoned wall clock. In New York at
2026-11-01T06:30:00Z, a one-minute task persists its next run at05:31Z, 59 minutes in the past. Two-hour intervals also become one hour at spring-forward or three hours at fall-back.Change
Use
DateTime.addDurationin the existing interval branch, retaining the one-minute floor. Add service regressions for creation, persisted listing, pause/resume and failed dispatch completion, with UTC, Tokyo and fixed local-time controls.Scope and approval
This restores the existing fixed-millisecond contract with one production change and focused tests. It qualifies for CONTRIBUTING.md's very small, focused obvious-bug exception: the change repairs duration arithmetic within an existing capability and needs no new feature, schema, client or execution-policy change.
Closed, unmerged PR #14714 identified the unrestricted calendar-arithmetic defect and explicitly left it unchanged while repairing a proposed restricted path. This fixes that existing residual and credits the earlier discovery. A refreshed scoped issue/PR/discussion and contributor-claim review found no matching active repair as of 2026-10-04.
Verification
Windows x64, Node 26, TypeScript 7.0.2, rebased onto
main@50647de0with a frozen-lockfile install.vp test run apps/server/src/scheduledTasks: 8 files, 70 tests passed, including the 7 new service cases inScheduledTaskService.interval.test.ts. They run the real service, schema and persistence paths against in-memory SQLite, with provider effects mocked.Schedule.tsreverted tomain, 3 of the 7 fail (the America/New_York spring-forward and fall-back cases) and 4 controls pass.tsc --noEmit -p apps/server/tsconfig.json: exit 0, 0 errors. Format is clean on the 2 changed files. Lint reports one existing warning (describeScheduleis unused onmain).No Linux/macOS, UI, live-provider, scheduler soak or repo-wide suite validation is claimed.
Model: GPT-6.1 Sol (build, review) and Claude Sonnet 5.5 (rebase, test fix), Harness: Codex CLI and Hermes in T3 Code