# Commit history · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commits/43879d970204eb28092d098deb4c842a22a9ab75)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

Requested revision: 43879d970204eb28092d098deb4c842a22a9ab75

Requested commit: 43879d970204eb28092d098deb4c842a22a9ab75

- [fix\(settings\): older clients connect again after idle compaction modes \(\#23454\)](https://git.cafe/pingdotgg/t3code/commit/43879d970204eb28092d098deb4c842a22a9ab75?format=markdown) — 43879d970204eb28092d098deb4c842a22a9ab75; Julius Marminge

- [fix\(server\): SSH hosts no longer keep every old 300 MB runtime after desktop updates \(\#23113\)](https://git.cafe/pingdotgg/t3code/commit/ff525478e236ec0df4c4920eb03ac3961ea714a2?format=markdown) — ff525478e236ec0df4c4920eb03ac3961ea714a2; shivam

- [fix\(server\): a Claude agent stops when the server that started it dies \(\#23389\)](https://git.cafe/pingdotgg/t3code/commit/5ffe04593166870d3ada2a83eb5fe55f0d192fc7?format=markdown) — 5ffe04593166870d3ada2a83eb5fe55f0d192fc7; shivam

- [perf\(web\): visit marks during a reply no longer re-render ChatView \(\#23124\)](https://git.cafe/pingdotgg/t3code/commit/ee33c4c65dfde09564c2c9f9da4ffdf53828cb15?format=markdown) — ee33c4c65dfde09564c2c9f9da4ffdf53828cb15; Julius Marminge

- [perf\(web\): streamed reply text no longer re-renders ChatView \(\#23117\)](https://git.cafe/pingdotgg/t3code/commit/83f118a4ac6c884601dbeb4c15b6c37d702bcb0a?format=markdown) — 83f118a4ac6c884601dbeb4c15b6c37d702bcb0a; Julius Marminge

- [fix\(mobile\): Dynamic Island status no longer wraps next to other Live Activities \(\#23327\)](https://git.cafe/pingdotgg/t3code/commit/96bae5465bc5dfaedc890998a7a71672fb470ae2?format=markdown) — 96bae5465bc5dfaedc890998a7a71672fb470ae2; Theo Browne

- [chore\(typecheck\): typescript is the tsc-rs drop-in, no effect-tsgo patch \(\#23023\)](https://git.cafe/pingdotgg/t3code/commit/4040867bb46a90a8f41c687d7b454b5ece97a34f?format=markdown) — 4040867bb46a90a8f41c687d7b454b5ece97a34f; Theo Browne

- [fix\(web\): paused sidebar videos stop reloading after every command \(\#23106\)](https://git.cafe/pingdotgg/t3code/commit/3b95e7831b11b17627dff16843bc087bfca397ec?format=markdown) — 3b95e7831b11b17627dff16843bc087bfca397ec; shivam

- [feat: ChatGPT Business usage limits offer a copyable admin request \(\#23361\)](https://git.cafe/pingdotgg/t3code/commit/6f75bcb374c0e19ff90e4f7c2d3949c58aba5f02?format=markdown) — 6f75bcb374c0e19ff90e4f7c2d3949c58aba5f02; Julius Marminge

- [fix\(mobile\): preserve new-thread drafts and native header layout \(\#23366\)](https://git.cafe/pingdotgg/t3code/commit/002e941fbb2ec01a4f4b02355995117e68452322?format=markdown) — 002e941fbb2ec01a4f4b02355995117e68452322; Julius Marminge

- [fix\(mobile\): the iOS composer reopens where you left a long draft \(\#23096\)](https://git.cafe/pingdotgg/t3code/commit/efa5381246675a337269a2a8843e98d02f2bc442?format=markdown) — efa5381246675a337269a2a8843e98d02f2bc442; shivam

- [fix\(source-control\): clones retry over HTTPS when the SSH key is refused \(\#23170\)](https://git.cafe/pingdotgg/t3code/commit/a49d18cf3b97fa48681d0ed1f9c6caedbd292f54?format=markdown) — a49d18cf3b97fa48681d0ed1f9c6caedbd292f54; Julius Marminge

- [feat\(gitcafe\): request reviewers and apply labels on GitCafe pull requests \(\#23034\)](https://git.cafe/pingdotgg/t3code/commit/6e3c5e67f636f29efaa5abf6add908abc4505bcb?format=markdown) — 6e3c5e67f636f29efaa5abf6add908abc4505bcb; Julius Marminge

- [fix\(mobile\): align iPad composer without shifting on keyboard focus \(\#23355\)](https://git.cafe/pingdotgg/t3code/commit/e07595714a467e18c750107137d2c2e50f0c3530?format=markdown) — e07595714a467e18c750107137d2c2e50f0c3530; Julius Marminge

- [fix\(web\): cap list layout passes to prevent React error 185 \(\#23315\)](https://git.cafe/pingdotgg/t3code/commit/05b697f6a2012497ae790425e197fbd1fcef7de7?format=markdown) — 05b697f6a2012497ae790425e197fbd1fcef7de7; Yash Singh

- [fix\(client-runtime\): refresh Git refs when the RPC session changes \(\#23314\)](https://git.cafe/pingdotgg/t3code/commit/a98ebde9905bb6f600ec75d006656e8fea4c74a7?format=markdown) — a98ebde9905bb6f600ec75d006656e8fea4c74a7; Yash Singh

- [fix\(web\): Arabic and Hebrew text reads and navigates right to left \(\#22777\)](https://git.cafe/pingdotgg/t3code/commit/3690c862530c88781b28dce991697e5ea0dc26be?format=markdown) — 3690c862530c88781b28dce991697e5ea0dc26be; يزن حمزه

- [feat\(server\): webhook filters fan out over arrays with a \[\] path wildcard \(\#23282\)](https://git.cafe/pingdotgg/t3code/commit/defb7e6e6b87d03259745367214db13060fb322b?format=markdown) — defb7e6e6b87d03259745367214db13060fb322b; Julius Marminge

- [fix\(mobile\): drafts swipe to discard and every row move animates \(\#23205\)](https://git.cafe/pingdotgg/t3code/commit/b295dd83b2f908cd4ecd6f121c9a30ce38861e93?format=markdown) — b295dd83b2f908cd4ecd6f121c9a30ce38861e93; Julius Marminge

- [fix\(pi\): fork completed turns while the next turn is running \(\#23052\)](https://git.cafe/pingdotgg/t3code/commit/aa0158d0d3099bada270b059b7ca7226a547bea1?format=markdown) — aa0158d0d3099bada270b059b7ca7226a547bea1; Julius Marminge

- [fix\(mobile\): new-thread heading clears the iPad header \(\#23206\)](https://git.cafe/pingdotgg/t3code/commit/6318bfc597e544679848c4ed816606bacd32a175?format=markdown) — 6318bfc597e544679848c4ed816606bacd32a175; Julius Marminge

- [feat\(server\): export how long runs take and how they end \(\#22094\)](https://git.cafe/pingdotgg/t3code/commit/f8e4834861d255f58c44fc1b5f57c34c49f5384d?format=markdown) — f8e4834861d255f58c44fc1b5f57c34c49f5384d; Julius Marminge

- [fix\(server\): stop abandoned turns before continuing threads \(\#23169\)](https://git.cafe/pingdotgg/t3code/commit/6f6f68ad2d8044b3322ec738b9d371fcaaa783cf?format=markdown) — 6f6f68ad2d8044b3322ec738b9d371fcaaa783cf; Yash Singh

- [docs\(import\): correct conversation size and batch limits \(\#23226\)](https://git.cafe/pingdotgg/t3code/commit/49e97d48f9742ba4c5ab79efc618fbf9066523ec?format=markdown) — 49e97d48f9742ba4c5ab79efc618fbf9066523ec; Victor Vogel

- [fix\(gitcafe\): show line counts on linked and listed pull requests \(\#22633\)](https://git.cafe/pingdotgg/t3code/commit/8acbefefc51b4d281dcd04108c82baa1ab902b0e?format=markdown) — 8acbefefc51b4d281dcd04108c82baa1ab902b0e; maria

- [fix\(mobile\): the iPhone Duo's inspector panes use the full column \(\#23150\)](https://git.cafe/pingdotgg/t3code/commit/89fe509232e787b51d0cf695861afe73316ce85b?format=markdown) — 89fe509232e787b51d0cf695861afe73316ce85b; Julius Marminge

- [fix\(mobile\): Screens 5.0.0-t3.36 stops an iPhone Duo unfold crash \(\#23149\)](https://git.cafe/pingdotgg/t3code/commit/83a8501f56d3d0028d272a1cb9e6cc99654de17d?format=markdown) — 83a8501f56d3d0028d272a1cb9e6cc99654de17d; Julius Marminge

- [fix\(mobile\): the iPhone Duo's search field and composer line up with its tab bar \(\#23148\)](https://git.cafe/pingdotgg/t3code/commit/e6c2aeb3608da8c7d64c0be68b777d2660fcd93e?format=markdown) — e6c2aeb3608da8c7d64c0be68b777d2660fcd93e; Julius Marminge

- [fix\(mobile\): folding the Duo keeps the thread's end or the reader's line in place \(\#23147\)](https://git.cafe/pingdotgg/t3code/commit/5ed2ea245eef3c0b17395099a31c4801ddeb1a52?format=markdown) — 5ed2ea245eef3c0b17395099a31c4801ddeb1a52; Julius Marminge

- [fix\(mobile\): a closed search no longer risks freezing the app \(\#23146\)](https://git.cafe/pingdotgg/t3code/commit/37d6fce8390669d2d16382a0afe845f89aa48be9?format=markdown) — 37d6fce8390669d2d16382a0afe845f89aa48be9; Julius Marminge

- [fix\(mobile\): the iPhone Duo searches from a field at the bottom of its list \(\#23145\)](https://git.cafe/pingdotgg/t3code/commit/9fa551ac3fcf688a42654039545b2dd0d2ddb3e7?format=markdown) — 9fa551ac3fcf688a42654039545b2dd0d2ddb3e7; Julius Marminge

- [fix\(mobile\): the iPhone Duo keeps list titles through folds and unfolds with its sidebar \(\#23144\)](https://git.cafe/pingdotgg/t3code/commit/801701db7acfb6172c0ec4dbac7313f78ac48ce1?format=markdown) — 801701db7acfb6172c0ec4dbac7313f78ac48ce1; Julius Marminge

- [fix\(mobile\): the pull requests tab's empty detail asks for a pull request \(\#23143\)](https://git.cafe/pingdotgg/t3code/commit/added623d1d87c0ac7237c8f98c15965ba393de5?format=markdown) — added623d1d87c0ac7237c8f98c15965ba393de5; Julius Marminge

- [fix\(mobile\): use native full-width sheets on iPhone Duo \(\#22980\)](https://git.cafe/pingdotgg/t3code/commit/13eea3f6e19def1a06d128fd6a57aee08b2f910d?format=markdown) — 13eea3f6e19def1a06d128fd6a57aee08b2f910d; Julius Marminge

- [fix\(mobile\): deliver the first tab selection after Duo folding \(\#22979\)](https://git.cafe/pingdotgg/t3code/commit/61bdec0c9955f42b25a8f4150fc0ddc1ae9a3030?format=markdown) — 61bdec0c9955f42b25a8f4150fc0ddc1ae9a3030; Julius Marminge

- [fix\(mobile\): retain resting scroll offsets through Duo inset changes \(\#22978\)](https://git.cafe/pingdotgg/t3code/commit/eec07b604d96c902a3d945b6ddc16e95dc30860a?format=markdown) — eec07b604d96c902a3d945b6ddc16e95dc30860a; Julius Marminge

- [fix\(mobile\): respect Duo safe areas in overlays \(\#22977\)](https://git.cafe/pingdotgg/t3code/commit/ec2fd4d37c34fa090268c03400406031ece418e2?format=markdown) — ec2fd4d37c34fa090268c03400406031ece418e2; Julius Marminge

- [fix\(mobile\): keep Duo toolbar actions clear of workspace tabs \(\#22976\)](https://git.cafe/pingdotgg/t3code/commit/9cdd05926b28631fc201e5a3ba80648943834b44?format=markdown) — 9cdd05926b28631fc201e5a3ba80648943834b44; Julius Marminge

- [fix\(build\): pin Node 26.12.1 for development and standalone releases \(\#23165\)](https://git.cafe/pingdotgg/t3code/commit/ed9b7ca9c53843ea1e6b466bf7d52928d10e7db0?format=markdown) — ed9b7ca9c53843ea1e6b466bf7d52928d10e7db0; Alex

- [fix\(source-control\): merge messages drop Claude Code's current claude.com footer \(\#23133\)](https://git.cafe/pingdotgg/t3code/commit/b5a226e49c52ecab4ddc2d678a7012d97e651a6a?format=markdown) — b5a226e49c52ecab4ddc2d678a7012d97e651a6a; MarcoDotIO

- [Merge commit from fork](https://git.cafe/pingdotgg/t3code/commit/a12d6ed9428d8e64d76ca86d178abbf564b57cee?format=markdown) — a12d6ed9428d8e64d76ca86d178abbf564b57cee; Julius Marminge

- [test\(web\): chat shortcut test types through the composer handle \(\#23126\)](https://git.cafe/pingdotgg/t3code/commit/bd6940beab9e04a843d711fca812067c22991ab4?format=markdown) — bd6940beab9e04a843d711fca812067c22991ab4; Julius Marminge

- [fix\(server\): sync pull request draft status changes \(\#22832\)](https://git.cafe/pingdotgg/t3code/commit/70e5e384dab96a1d1e4a253ee5a9415ed5d8ce30?format=markdown) — 70e5e384dab96a1d1e4a253ee5a9415ed5d8ce30; Yash Singh

- [fix\(server\): JetBrains IDEs open file links at the right column \(\#22826\)](https://git.cafe/pingdotgg/t3code/commit/1befc717f0b277c86a066e46598e60465e7f23c2?format=markdown) — 1befc717f0b277c86a066e46598e60465e7f23c2; Lev Poznyakov

- [fix\(web\): copy to machine clones the fork, not its upstream \(\#22492\)](https://git.cafe/pingdotgg/t3code/commit/0f74ff8e3a4189331fa762ff5d5da0626ecc5a61?format=markdown) — 0f74ff8e3a4189331fa762ff5d5da0626ecc5a61; AKolenda

- [fix\(opencode\): cancelled todos no longer keep the todo list running \(\#22938\)](https://git.cafe/pingdotgg/t3code/commit/2333f168845f853f9ef358d1c4e6cf75189f4e8b?format=markdown) — 2333f168845f853f9ef358d1c4e6cf75189f4e8b; MarcoDotIO

- [fix\(shared\): Azure DevOps repositories with a space in the name list their pull requests \(\#22782\)](https://git.cafe/pingdotgg/t3code/commit/855db968a7517914019d77e3c364fe2002f345d9?format=markdown) — 855db968a7517914019d77e3c364fe2002f345d9; Pavel Kroupa

- [fix\(web\): imported VS Code themes keep destructive buttons red \(\#21924\)](https://git.cafe/pingdotgg/t3code/commit/7845898c871bb0776eb8beda08a7b6907beca090?format=markdown) — 7845898c871bb0776eb8beda08a7b6907beca090; Louis Gollut

- [fix\(client\): usage limits skip disabled connections \(\#22936\)](https://git.cafe/pingdotgg/t3code/commit/1a44c40901a8a639d18947fcccf9707b9b9222d8?format=markdown) — 1a44c40901a8a639d18947fcccf9707b9b9222d8; M4NU5

- [fix\(shared\): recognize relative folder links with trailing slash \(\#22188\)](https://git.cafe/pingdotgg/t3code/commit/6de7da548d15d86e86f7550a9f1b402e924249dd?format=markdown) — 6de7da548d15d86e86f7550a9f1b402e924249dd; maco

- [fix\(web\): \.\./ file links outside the workspace open as host files \(\#22853\)](https://git.cafe/pingdotgg/t3code/commit/edce5f0e53e8f0a80ed0c6b553edfe7b6467bc14?format=markdown) — edce5f0e53e8f0a80ed0c6b553edfe7b6467bc14; Theo Browne

- [fix\(web\): right panel launcher letters open their surface instead of typing into the composer \(\#22898\)](https://git.cafe/pingdotgg/t3code/commit/86fa9e0a0c4e3cdadff15d25583978ec80a80834?format=markdown) — 86fa9e0a0c4e3cdadff15d25583978ec80a80834; Theo Browne

- [fix\(web\): quote comment box stays on screen for long code lines \(\#22149\)](https://git.cafe/pingdotgg/t3code/commit/159f2b8cc33a46c2dfed7d394ec8eb54bad03c03?format=markdown) — 159f2b8cc33a46c2dfed7d394ec8eb54bad03c03; Etan Heyman

- [fix\(web\): a Usage toggle shortcut now goes back instead of staying on Usage \(\#22905\)](https://git.cafe/pingdotgg/t3code/commit/bee9ce829bb72503e3eaebeeb7397ba96b9762d0?format=markdown) — bee9ce829bb72503e3eaebeeb7397ba96b9762d0; Theo Browne

- [fix\(web\): thread details PR merge uses the last selected merge method \(\#22399\)](https://git.cafe/pingdotgg/t3code/commit/a35066d9f21616056bc438c894573900ebe87352?format=markdown) — a35066d9f21616056bc438c894573900ebe87352; Tristan Knight

- [fix\(composer\): typing a price no longer opens the skill menu \(\#21519\)](https://git.cafe/pingdotgg/t3code/commit/1ee0241730ef5d2592347280118a2c77e8fb797c?format=markdown) — 1ee0241730ef5d2592347280118a2c77e8fb797c; MarcoDotIO

- [fix\(server\): pushes the remote refuses say why instead of a generic failure \(\#22904\)](https://git.cafe/pingdotgg/t3code/commit/fb7f08782b964b4137eef597052c99efc9039043?format=markdown) — fb7f08782b964b4137eef597052c99efc9039043; Theo Browne

- [fix\(server\): Forgejo and GitCafe pull requests link to their threads again \(\#22937\)](https://git.cafe/pingdotgg/t3code/commit/22b89ef061a65c89488761a09e05e3dffc9e6316?format=markdown) — 22b89ef061a65c89488761a09e05e3dffc9e6316; MarcoDotIO

- [fix\(server\): scheduled tasks no longer jump to the top when toggled \(\#22899\)](https://git.cafe/pingdotgg/t3code/commit/1b22228e52382a18c3b0721ad5154c74996b35ad?format=markdown) — 1b22228e52382a18c3b0721ad5154c74996b35ad; Theo Browne

- [fix\(web\): the branch toolbar and thread details panel stay cached while a reply streams \(\#23103\)](https://git.cafe/pingdotgg/t3code/commit/968dd51704441138559a3fe9c348719f2b11e0c6?format=markdown) — 968dd51704441138559a3fe9c348719f2b11e0c6; Julius Marminge

- [refactor\(web\): ChatView's timeline banners render in ChatBannerLane \(\#23101\)](https://git.cafe/pingdotgg/t3code/commit/a642ab2bd5d3dcc98217d60073ea0feb234c1aa1?format=markdown) — a642ab2bd5d3dcc98217d60073ea0feb234c1aa1; Julius Marminge

- [refactor\(web\): chat shortcuts live with the hooks that own their actions \(\#23097\)](https://git.cafe/pingdotgg/t3code/commit/764fff2efcb7123a0518c6b9b768f2f984d08b23?format=markdown) — 764fff2efcb7123a0518c6b9b768f2f984d08b23; Julius Marminge

- [refactor\(web\): ComposerControlsBar renders without a memo\(\) wrapper \(\#23093\)](https://git.cafe/pingdotgg/t3code/commit/b34f74cde0db0a272b5796a59e298e887a6c7b99?format=markdown) — b34f74cde0db0a272b5796a59e298e887a6c7b99; Julius Marminge

- [refactor\(web\): the composer send reads its own settings and draft instead of taking them from ChatView \(\#23095\)](https://git.cafe/pingdotgg/t3code/commit/beec3c8b30cecbd61383339cde42374282d1dee3?format=markdown) — beec3c8b30cecbd61383339cde42374282d1dee3; Julius Marminge

- [refactor\(web\): multiple-model sends live in their own hook \(\#23094\)](https://git.cafe/pingdotgg/t3code/commit/ac23b74df83d95f98419f3ade6103054a54daec1?format=markdown) — ac23b74df83d95f98419f3ade6103054a54daec1; Julius Marminge

- [refactor\(web\): proposed-plan follow-ups and implement-in-new-thread live in their own hooks \(\#23091\)](https://git.cafe/pingdotgg/t3code/commit/36d1e2fec5881a19811c35c8a804c46c4ca2cea7?format=markdown) — 36d1e2fec5881a19811c35c8a804c46c4ca2cea7; Julius Marminge

- [refactor\(web\): resuming an interrupted run lives in its own hook \(\#23087\)](https://git.cafe/pingdotgg/t3code/commit/5b715cc13cc5bcb3f82951be42888452c0f18557?format=markdown) — 5b715cc13cc5bcb3f82951be42888452c0f18557; Julius Marminge

- [fix\(composer\): mentions of files like \`posts\.$postId.tsx\` or \`\[id\]\.tsx\` stay chips \(\#22922\)](https://git.cafe/pingdotgg/t3code/commit/5c3721e20aa3c19d7ab414c40734752f9c053c90?format=markdown) — 5c3721e20aa3c19d7ab414c40734752f9c053c90; Theo Browne

- [fix\(web\): finished provider updates no longer leave a hidden spinner in the sidebar \(\#22912\)](https://git.cafe/pingdotgg/t3code/commit/38d993f3836c02aa17194ed05087be5f2b0f1010?format=markdown) — 38d993f3836c02aa17194ed05087be5f2b0f1010; Theo Browne

- [fix\(web\): PR Code tab keeps its files after a refresh with an unchanged diff \(\#22917\)](https://git.cafe/pingdotgg/t3code/commit/b9c1293c0aad6196c393550867d73d07f55e9621?format=markdown) — b9c1293c0aad6196c393550867d73d07f55e9621; Theo Browne

- [fix\(mobile\): opening a pull request no longer crashes with "Maximum update depth exceeded" \(\#22600\)](https://git.cafe/pingdotgg/t3code/commit/d0c5d7c4ed90c9018e41853cde4f10043c72b12a?format=markdown) — d0c5d7c4ed90c9018e41853cde4f10043c72b12a; tatsuaki watanabe

- [fix\(server\): t3_thread_read clamps oversized page sizes instead of failing \(\#22901\)](https://git.cafe/pingdotgg/t3code/commit/ee11fbd971b2f94d7ba2ec411a36581671f8494a?format=markdown) — ee11fbd971b2f94d7ba2ec411a36581671f8494a; Theo Browne

- [fix\(scripts\): mobile lint fails instead of passing when ktlint or detekt is missing \(\#22896\)](https://git.cafe/pingdotgg/t3code/commit/aef8b6fcf0f6cc5cc901618b3723dd60317e7ac4?format=markdown) — aef8b6fcf0f6cc5cc901618b3723dd60317e7ac4; Theo Browne

- [fix\(server\): server tests resolve the macOS temp dir symlink \(\#21442\)](https://git.cafe/pingdotgg/t3code/commit/2a27e153559bc400cf5d1799eee68083c129b3ad?format=markdown) — 2a27e153559bc400cf5d1799eee68083c129b3ad; tatsuaki watanabe

- [test\(telemetry\): keep fixture PIDs from colliding with the test worker \(\#21446\)](https://git.cafe/pingdotgg/t3code/commit/da46db6ea3008f9575657a025d0b57e12d3c9272?format=markdown) — da46db6ea3008f9575657a025d0b57e12d3c9272; Victor Vogel

- [fix\(server\): failed provider updates say why \(\#22506\)](https://git.cafe/pingdotgg/t3code/commit/f08781009f741891a263772ec959e38f69fefccf?format=markdown) — f08781009f741891a263772ec959e38f69fefccf; Koushik_xd

- [docs\(composer\): queued messages follow the Follow-up behavior setting \(\#22857\)](https://git.cafe/pingdotgg/t3code/commit/8541f863747815c515410777d902a2814faf75e9?format=markdown) — 8541f863747815c515410777d902a2814faf75e9; Theo Browne

- [fix\(tailscale\): a timed-out tailscale probe no longer outlives its call \(\#22900\)](https://git.cafe/pingdotgg/t3code/commit/0d876e004aed0b5d6b5fe3bd65d7375d6c29b146?format=markdown) — 0d876e004aed0b5d6b5fe3bd65d7375d6c29b146; Theo Browne

- [fix\(server\): HTML preview reports a browser start error instead of an internal error \(\#22895\)](https://git.cafe/pingdotgg/t3code/commit/60dc0a044c1d0e2fe305eeb2b3cb6311f4fd2d8b?format=markdown) — 60dc0a044c1d0e2fe305eeb2b3cb6311f4fd2d8b; Theo Browne

- [docs\(user\): the outside agents guide says which addresses agents can sign in over \(\#22377\)](https://git.cafe/pingdotgg/t3code/commit/9c6523d5bec7642ccb2fcec50157dd984e2d6176?format=markdown) — 9c6523d5bec7642ccb2fcec50157dd984e2d6176; Gourav Kumar Dhiman

- [fix\(mobile\): chat feed no longer re-derives on every render \(\#22913\)](https://git.cafe/pingdotgg/t3code/commit/71b867080b1dc5853b53417efe15b2443f33f904?format=markdown) — 71b867080b1dc5853b53417efe15b2443f33f904; Theo Browne

- [fix\(server\): a desktop backend whose launcher died shuts down cleanly instead of crashing \(\#22471\)](https://git.cafe/pingdotgg/t3code/commit/2936b90883b2e23b00e1c2a5361ea545c3ac8dff?format=markdown) — 2936b90883b2e23b00e1c2a5361ea545c3ac8dff; Dara Adedeji

- [fix\(pi\): declare properties on MCP tool schemas that omit them \(\#21822\)](https://git.cafe/pingdotgg/t3code/commit/9892aca206279640b17a5453578f9f2b3178800d?format=markdown) — 9892aca206279640b17a5453578f9f2b3178800d; Taissa

- [fix\(server\): Codex no longer offers a one-click update for installs it can't detect \(\#22504\)](https://git.cafe/pingdotgg/t3code/commit/c25ba721ae403aacce6974bb1fb044cc65bb1e79?format=markdown) — c25ba721ae403aacce6974bb1fb044cc65bb1e79; Koushik_xd

- [fix\(cursor\): a closed-stream write in the Cursor SDK no longer stops the server \(\#22897\)](https://git.cafe/pingdotgg/t3code/commit/f54dfc09915d5fd7ee6476cdf446cd978abc197c?format=markdown) — f54dfc09915d5fd7ee6476cdf446cd978abc197c; Theo Browne

- [refactor\(web\): ChatView's paste-to-focus, titlebar controls, and timeline overlays move out \(\#23072\)](https://git.cafe/pingdotgg/t3code/commit/322d08dbd46eecf4446d33d85f9fd7ff08d60f1b?format=markdown) — 322d08dbd46eecf4446d33d85f9fd7ff08d60f1b; Julius Marminge

- [refactor\(web\): ChatView's thread derivations are tested functions in ChatView.logic \(\#23071\)](https://git.cafe/pingdotgg/t3code/commit/9952a7aa518275c4c42f7cf57b28409122a22537?format=markdown) — 9952a7aa518275c4c42f7cf57b28409122a22537; Julius Marminge

- [refactor\(web\): ChatView's pull request checkout lives in usePullRequestDraftThread \(\#23070\)](https://git.cafe/pingdotgg/t3code/commit/114f77fd056346babc1fa9571d947147bed3f72b?format=markdown) — 114f77fd056346babc1fa9571d947147bed3f72b; Julius Marminge

- [refactor\(web\): ChatView's model, mode, and workspace choices live in useComposerSelection \(\#23069\)](https://git.cafe/pingdotgg/t3code/commit/976a601b87342646913ee9f77226762a9f7ad82a?format=markdown) — 976a601b87342646913ee9f77226762a9f7ad82a; Julius Marminge

- [refactor\(web\): ChatView's project clone banner lives in useProjectCloneBanner \(\#23068\)](https://git.cafe/pingdotgg/t3code/commit/7be791c675347ac75eb32e89cf28370db2b08341?format=markdown) — 7be791c675347ac75eb32e89cf28370db2b08341; Julius Marminge

- [refactor\(web\): ChatView's attachment preview handoff lives in useAttachmentPreviewHandoff \(\#23067\)](https://git.cafe/pingdotgg/t3code/commit/5b8298c23848ffe20f2185a48d6d064eb18e1c77?format=markdown) — 5b8298c23848ffe20f2185a48d6d064eb18e1c77; Julius Marminge

- [refactor\(web\): ChatView's revert, rollback, and fork live in useTimelineRewind \(\#23066\)](https://git.cafe/pingdotgg/t3code/commit/9f087f782c2357f3c08b79266e23e3b2299626c1?format=markdown) — 9f087f782c2357f3c08b79266e23e3b2299626c1; Julius Marminge

- [refactor\(web\): ChatView's snooze, settle, and checkout actions live in useThreadLifecycle \(\#23065\)](https://git.cafe/pingdotgg/t3code/commit/92105d49946474a048f2fccadb3d2c1300d7d27b?format=markdown) — 92105d49946474a048f2fccadb3d2c1300d7d27b; Julius Marminge

- [refactor\(web\): ChatView's right panel actions live in useRightPanelActions \(\#23064\)](https://git.cafe/pingdotgg/t3code/commit/ebe828cd9ddee677d8c9adb3f5c33a772d285978?format=markdown) — ebe828cd9ddee677d8c9adb3f5c33a772d285978; Julius Marminge

- [refactor\(web\): ChatView's terminal actions live in useChatTerminalActions \(\#23063\)](https://git.cafe/pingdotgg/t3code/commit/379a391fcb9951afae0bcf1afe61236f095fc867?format=markdown) — 379a391fcb9951afae0bcf1afe61236f095fc867; Julius Marminge

- [refactor\(web\): ChatView's send paths live in useComposerSend \(\#23062\)](https://git.cafe/pingdotgg/t3code/commit/f136d5a75515c7eee9d2ce0c50a20ca140fec32c?format=markdown) — f136d5a75515c7eee9d2ce0c50a20ca140fec32c; Julius Marminge

- [refactor\(web\): composer key handling lives in useComposerCommandKey \(\#23060\)](https://git.cafe/pingdotgg/t3code/commit/e78f58046876271109bf6985e8f46769d8e7505d?format=markdown) — e78f58046876271109bf6985e8f46769d8e7505d; Julius Marminge

- [refactor\(web\): the composer's footer controls render in ComposerControlsBar \(\#23058\)](https://git.cafe/pingdotgg/t3code/commit/1444b3f99442630c92abfb5157840d500487d145?format=markdown) — 1444b3f99442630c92abfb5157840d500487d145; Julius Marminge

- [refactor\(web\): composer file intake lives in useComposerAttachmentIntake \(\#23049\)](https://git.cafe/pingdotgg/t3code/commit/98c494ec69a47871d8544e45df23d61928326692?format=markdown) — 98c494ec69a47871d8544e45df23d61928326692; Julius Marminge

- [refactor\(web\): composer context imports live in useComposerContextImport \(\#23048\)](https://git.cafe/pingdotgg/t3code/commit/fa3700214ec1701c9b28d1ab5debcc1d66bbb2c9?format=markdown) — fa3700214ec1701c9b28d1ab5debcc1d66bbb2c9; Julius Marminge

More commits follow; continue with `GET /api/repos/pingdotgg/t3code/commits?after=IjA3NTVmOTg0MDFmZWMwZjM0MDBkNGM0ZWYyMjk0YWE5MmFjZTM5ZDEi`.
