# Commit history · gitcafe/t3code

[View on GitCafe](https://git.cafe/gitcafe/t3code/commits/70eeb3996d557a2e553f817c8e123bf79bbd378c)

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

Visibility: public

Requested revision: 70eeb3996d557a2e553f817c8e123bf79bbd378c

Requested commit: 70eeb3996d557a2e553f817c8e123bf79bbd378c

- [fix\(mobile\): stop refreshing Git status on streamed thread updates \(\#15893\)](https://git.cafe/gitcafe/t3code/commit/70eeb3996d557a2e553f817c8e123bf79bbd378c?format=markdown) — 70eeb3996d557a2e553f817c8e123bf79bbd378c; Julius Marminge

- [fix\(web\): Usage breadcrumb stays centered on small viewports \(\#15552\)](https://git.cafe/gitcafe/t3code/commit/85a41391e9625d760f5bb2294834c38f42bbf5b8?format=markdown) — 85a41391e9625d760f5bb2294834c38f42bbf5b8; oliver

- [fix\(web\): command palette scrollbar no longer clipped at the top \(\#17035\)](https://git.cafe/gitcafe/t3code/commit/647d8affa78c848c2a55c3e00ed14af9a9eca58e?format=markdown) — 647d8affa78c848c2a55c3e00ed14af9a9eca58e; oliver

- [fix\(web\): PR commit menu no longer stretches across the window \(\#15560\)](https://git.cafe/gitcafe/t3code/commit/98b5e1bef3c8d933d7ad826f837086a506a3732f?format=markdown) — 98b5e1bef3c8d933d7ad826f837086a506a3732f; oliver

- [fix\(web\): PR code toolbar no longer overlaps in narrow panels \(\#15561\)](https://git.cafe/gitcafe/t3code/commit/ed27eb724b4d7963b59de8fd2e51d6b877004163?format=markdown) — ed27eb724b4d7963b59de8fd2e51d6b877004163; oliver

- [fix\(mobile\): restore file viewer insets and glass header \(\#17073\)](https://git.cafe/gitcafe/t3code/commit/e803242d936af3e052757d59ab32bc7c4fcc2390?format=markdown) — e803242d936af3e052757d59ab32bc7c4fcc2390; Julius Marminge

- [fix\(mobile\): pause hidden home thread list updates \(\#15705\)](https://git.cafe/gitcafe/t3code/commit/65404eb75de9233c9d1068ddfd09bacfc3b0465b?format=markdown) — 65404eb75de9233c9d1068ddfd09bacfc3b0465b; Julius Marminge

- [perf\(mobile\): pause elapsed-time timers on hidden thread screens \(\#15397\)](https://git.cafe/gitcafe/t3code/commit/eb17e0db2bd075e71b4015dc57588e7f838cbcdc?format=markdown) — eb17e0db2bd075e71b4015dc57588e7f838cbcdc; Julius Marminge

- [perf\(mobile\): omit duplicated turn items from bounded thread snapshots \(\#15385\)](https://git.cafe/gitcafe/t3code/commit/28f5516a9acfcfc1e203487e78869a406fd23b76?format=markdown) — 28f5516a9acfcfc1e203487e78869a406fd23b76; Julius Marminge

- [fix\(web\): PR file stats ignore the hide-whitespace toggle \(\#16162\)](https://git.cafe/gitcafe/t3code/commit/6053a7878d24e5fd596d2b417ed94964a4b9c1c6?format=markdown) — 6053a7878d24e5fd596d2b417ed94964a4b9c1c6; oliver

- [fix\(server\): a message sent during a rollback no longer undoes it \(\#17079\)](https://git.cafe/gitcafe/t3code/commit/c28cd905572e2a28934a6229d88bcf2975963032?format=markdown) — c28cd905572e2a28934a6229d88bcf2975963032; Theo Browne

- [fix\(server\): held queued wakes no longer keep delegated tasks running \(\#17028\)](https://git.cafe/gitcafe/t3code/commit/0bfd9dd19d0c9418a936190525ec8f4c4fdae09b?format=markdown) — 0bfd9dd19d0c9418a936190525ec8f4c4fdae09b; Julius Marminge

- [fix\(web\): PR timeline no longer shifts when its scrollbar appears \(\#15588\)](https://git.cafe/gitcafe/t3code/commit/b24f0fbba09d8623c896081b4ff70aa7190c8fda?format=markdown) — b24f0fbba09d8623c896081b4ff70aa7190c8fda; oliver

- [fix\(web\): PR file headers keep the file name in narrow panels \(\#15562\)](https://git.cafe/gitcafe/t3code/commit/2b7fa212a89edda7aad8f73fc3b4afd5b56c442c?format=markdown) — 2b7fa212a89edda7aad8f73fc3b4afd5b56c442c; oliver

- [refactor\(web\): PR loading skeleton shares the detail panel's layout \(\#15583\)](https://git.cafe/gitcafe/t3code/commit/843c593ab2dfe432abfba7b928292f3f8e9c7d44?format=markdown) — 843c593ab2dfe432abfba7b928292f3f8e9c7d44; oliver

- [fix\(web\): messages with quotes or links no longer collapse when short \(\#16624\)](https://git.cafe/gitcafe/t3code/commit/6f83358ae6d85b5dee7d3280e645e0e9a0aeff62?format=markdown) — 6f83358ae6d85b5dee7d3280e645e0e9a0aeff62; oliver

- [fix\(server,web,mobile\): thread links reference the thread id, not a baked title \(\#17017\)](https://git.cafe/gitcafe/t3code/commit/0f09627a111f7e9adc22c256c725565672676f1a?format=markdown) — 0f09627a111f7e9adc22c256c725565672676f1a; Julius Marminge

- [fix\(server\): opening a long thread no longer blocks the server for a second \(\#17029\)](https://git.cafe/gitcafe/t3code/commit/04ad17425a80484bf323a7d5076bd477a9499119?format=markdown) — 04ad17425a80484bf323a7d5076bd477a9499119; Dara Adedeji

- [fix\(server\): replaying a command no longer freezes the server \(\#17041\)](https://git.cafe/gitcafe/t3code/commit/9fba2093e50f208c52d9041c70a793296e311477?format=markdown) — 9fba2093e50f208c52d9041c70a793296e311477; Dara Adedeji

- [perf\(mobile\): show the cached thread list sooner and stop the freeze after it \(\#16713\)](https://git.cafe/gitcafe/t3code/commit/f9e16b3f66476ad1e213152708c9aa8b035085a3?format=markdown) — f9e16b3f66476ad1e213152708c9aa8b035085a3; Julius Marminge

- [chore\(review\): remove the custom Approvability check \(\#17018\)](https://git.cafe/gitcafe/t3code/commit/83a82a46b0631234ac85748b912566d6f4b1dee3?format=markdown) — 83a82a46b0631234ac85748b912566d6f4b1dee3; Erik Thorelli

- [refactor\(server\): GitHub rate limits read the response headers \(\#16986\)](https://git.cafe/gitcafe/t3code/commit/d720210996a514368ba99f4860063110033d93fa?format=markdown) — d720210996a514368ba99f4860063110033d93fa; Julius Marminge

- [refactor\(server\): GitHub source control reads GitHubApi directly \(\#16982\)](https://git.cafe/gitcafe/t3code/commit/42d92ec59775c187af69071c81b2b91180810bdd?format=markdown) — 42d92ec59775c187af69071c81b2b91180810bdd; Julius Marminge

- [refactor\(server\): GitHub GraphQL batches use variables and share one pager \(\#16960\)](https://git.cafe/gitcafe/t3code/commit/a21ac5fb153e3bf418ccd2a4abef2787c241813c?format=markdown) — a21ac5fb153e3bf418ccd2a4abef2787c241813c; Julius Marminge

- [refactor\(server\): GitHub services are named for the API they call, not gh \(\#16967\)](https://git.cafe/gitcafe/t3code/commit/08b1222d0bae670433c275ec70165c7b5048726f?format=markdown) — 08b1222d0bae670433c275ec70165c7b5048726f; Julius Marminge

- [feat\(web\): find in diffs with Cmd\+F \(\#14623\)](https://git.cafe/gitcafe/t3code/commit/14fe0158ede3d964f183e281f9fec225d30a6b32?format=markdown) — 14fe0158ede3d964f183e281f9fec225d30a6b32; Julius Marminge

- [fix\(settings\): provider updates show live progress instead of a bare spinner \(\#16958\)](https://git.cafe/gitcafe/t3code/commit/ff3a04a8ebaaf6bb74b8b5b996013b82e044c700?format=markdown) — ff3a04a8ebaaf6bb74b8b5b996013b82e044c700; shivam

- [fix\(web\): cancelling a new citation no longer leaves a stray space \(\#16828\)](https://git.cafe/gitcafe/t3code/commit/3143335fc3a568cbbb5174764961889272135cb9?format=markdown) — 3143335fc3a568cbbb5174764961889272135cb9; Afonso Ferreira

- [fix\(web\): center project monograms in settled rows \(\#16841\)](https://git.cafe/gitcafe/t3code/commit/46dd0949053ae387e785c5e9801725a9ccc28de1?format=markdown) — 46dd0949053ae387e785c5e9801725a9ccc28de1; Afonso Ferreira

- [feat\(web\): block-level Markdown in the rich text composer \(\#14677\)](https://git.cafe/gitcafe/t3code/commit/300f7f9d45ff19c01bc987dbf1c3bc3e9a3a59ee?format=markdown) — 300f7f9d45ff19c01bc987dbf1c3bc3e9a3a59ee; Chris Deeming

- [feat\(clients\): live row shows the agent's latest thought \(\#16284\)](https://git.cafe/gitcafe/t3code/commit/95ccbf406626a8a80fa545777a6388bdf5153086?format=markdown) — 95ccbf406626a8a80fa545777a6388bdf5153086; Theo Browne

- [fix\(web\): C\#, Java, PHP and 11 other languages get file icons \(\#16974\)](https://git.cafe/gitcafe/t3code/commit/abbf5d5bcd045cdb6baf16128ef54d4df3a7f3fd?format=markdown) — abbf5d5bcd045cdb6baf16128ef54d4df3a7f3fd; Julius Marminge

- [fix\(web\): Copy MCP URL shows up for environments reached over plain http \(\#16909\)](https://git.cafe/gitcafe/t3code/commit/7ac5ec6b15593f5b682fe73b483bc8e24de76665?format=markdown) — 7ac5ec6b15593f5b682fe73b483bc8e24de76665; Dara Adedeji

- [fix\(web\): simplify workspace card rows \(\#16823\)](https://git.cafe/gitcafe/t3code/commit/7f3628e4153d5be4a241c4d54f73a6d7087014ce?format=markdown) — 7f3628e4153d5be4a241c4d54f73a6d7087014ce; Bilal Bakr

- [fix\(web\): fast typing no longer scrambles text when type-to-focus kicks in \(\#14595\)](https://git.cafe/gitcafe/t3code/commit/26285ab80513260d1ff29d2c3fbe18f21990cb62?format=markdown) — 26285ab80513260d1ff29d2c3fbe18f21990cb62; Otavio Salvador

- [fix\(server\): unload Codex threads left idle on the shared app-server \(\#16917\)](https://git.cafe/gitcafe/t3code/commit/eba0521563946a0834af881465d3e1ff7a4ca2f1?format=markdown) — eba0521563946a0834af881465d3e1ff7a4ca2f1; Rhys Sullivan

- [fix\(server\): missing project folders no longer log favicon warnings \(\#16757\)](https://git.cafe/gitcafe/t3code/commit/85489611b5477050d7d777a4195c1c50ac0ce6be?format=markdown) — 85489611b5477050d7d777a4195c1c50ac0ce6be; Yordis Prieto

- [fix\(desktop\): sign-in and captchas work again in desktop browser tabs \(\#16939\)](https://git.cafe/gitcafe/t3code/commit/538329603352173afe3ae9f4586a4f772c0f3a4f?format=markdown) — 538329603352173afe3ae9f4586a4f772c0f3a4f; Julius Marminge

- [fix\(mobile\): Android composer picker scrolls past the first four rows \(\#15856\)](https://git.cafe/gitcafe/t3code/commit/8a92ebe413dd9e4569724c94e74a1ed54675eff7?format=markdown) — 8a92ebe413dd9e4569724c94e74a1ed54675eff7; shivam

- [feat\(mobile\): adopt v5 navigation and native iPad columns \(\#16733\)](https://git.cafe/gitcafe/t3code/commit/468ade30495c450ae4e731483187f77bc3c5e42b?format=markdown) — 468ade30495c450ae4e731483187f77bc3c5e42b; Julius Marminge

- [fix\(web\): show live names in thread-read activity \(\#13140\)](https://git.cafe/gitcafe/t3code/commit/a9fb6a80635c77a1d4fd988e0018059e13628eff?format=markdown) — a9fb6a80635c77a1d4fd988e0018059e13628eff; Bilal Bakr

- [feat\(desktop\): install the t3 command from Settings \(\#16683\)](https://git.cafe/gitcafe/t3code/commit/0678e4e23d8675ef88f9ac08e1ae90cfe7d6ef2e?format=markdown) — 0678e4e23d8675ef88f9ac08e1ae90cfe7d6ef2e; Julius Marminge

- [fix\(desktop\): setup prompts name a t3 that runs on desktop installs \(\#16676\)](https://git.cafe/gitcafe/t3code/commit/73e87f683ae1455feb663481f1fa588f01b5784b?format=markdown) — 73e87f683ae1455feb663481f1fa588f01b5784b; Julius Marminge

- [fix\(server\): Claude 5-series models always run 1M context \(\#16908\)](https://git.cafe/gitcafe/t3code/commit/9f48092ec95dd9eab78931601de95be0107a930c?format=markdown) — 9f48092ec95dd9eab78931601de95be0107a930c; Julius Marminge

- [fix\(web\): iPhone Duo folds animate, center on the hinge, and keep the phone's orientation \(\#16885\)](https://git.cafe/gitcafe/t3code/commit/ba0ea3d152150f399827d36a5b4b86c5bbda2d7f?format=markdown) — ba0ea3d152150f399827d36a5b4b86c5bbda2d7f; Gabriel De Andrade

- [feat\(models\): add Claude Haiku 5.5 and retire Sonnet 5 and Opus 5 to legacy \(\#16903\)](https://git.cafe/gitcafe/t3code/commit/588d32e22b10932404856d9bdd9f2f39c7e38070?format=markdown) — 588d32e22b10932404856d9bdd9f2f39c7e38070; Julius Marminge

- [fix\(server\): Claude prompts no longer hang on a uuid the session already holds \(\#16897\)](https://git.cafe/gitcafe/t3code/commit/f570bd21663f56ce94c41829d3b7d72886e25a34?format=markdown) — f570bd21663f56ce94c41829d3b7d72886e25a34; Julius Marminge

- [fix\(server\): main typechecks again after a test used renamed helpers \(\#16895\)](https://git.cafe/gitcafe/t3code/commit/41985b44ff1b3a353ab805a31d4e4810842cbf2b?format=markdown) — 41985b44ff1b3a353ab805a31d4e4810842cbf2b; Julius Marminge

- [fix\(server\): Windows worktrees with long paths no longer fail or strand \(\#14917\)](https://git.cafe/gitcafe/t3code/commit/4ce6a51a4c4bbc9a2fc9e371ecb446851f953482?format=markdown) — 4ce6a51a4c4bbc9a2fc9e371ecb446851f953482; Roger Maxwell

- [fix\(server\): free worktrees for terminal thread statuses \(\#15150\)](https://git.cafe/gitcafe/t3code/commit/e0201d3ab51b4593eff3c41d03ab9c9b2dc07471?format=markdown) — e0201d3ab51b4593eff3c41d03ab9c9b2dc07471; ANSH SINGH

- [fix\(server\): merged-worktree cleanup removes worktrees after squash merges \(\#14847\)](https://git.cafe/gitcafe/t3code/commit/93e864042cf066f4cdb3efe65dbefaaf0d168894?format=markdown) — 93e864042cf066f4cdb3efe65dbefaaf0d168894; Tristan Knight

- [fix\(server\): worktree cleanup no longer deletes files hidden by showUntrackedFiles=no \(\#15834\)](https://git.cafe/gitcafe/t3code/commit/d9068d38099fe5cb4f3fed4cb5455fee878db491?format=markdown) — d9068d38099fe5cb4f3fed4cb5455fee878db491; Dara Adedeji

- [fix\(web\): onboarding Continue no longer locks on computers that won't connect \(\#16887\)](https://git.cafe/gitcafe/t3code/commit/db46c42744874ca123bc170a90c1faa312f20119?format=markdown) — db46c42744874ca123bc170a90c1faa312f20119; Julius Marminge

- [fix\(server\): a refused Claude turn no longer throws away its session \(\#16287\)](https://git.cafe/gitcafe/t3code/commit/87c366b1206b13701fbcc38e459d457f0f9da2df?format=markdown) — 87c366b1206b13701fbcc38e459d457f0f9da2df; Dara Adedeji

- [fix\(mobile\): hide threads from switched-off environments \(\#16886\)](https://git.cafe/gitcafe/t3code/commit/8d564a3e5c77d283994119eca82881f8c37a4a4d?format=markdown) — 8d564a3e5c77d283994119eca82881f8c37a4a4d; Charlie J

- [fix\(server\): a background Claude subagent's work shows while its parent is idle \(\#16486\)](https://git.cafe/gitcafe/t3code/commit/a8c480241836a7f6b79862e4504f37801cda6cde?format=markdown) — a8c480241836a7f6b79862e4504f37801cda6cde; Vantrongs

- [feat: MCP apps render and run inline in threads \(\#16236\)](https://git.cafe/gitcafe/t3code/commit/4d976d1fc233d3aa971fa7dcbf2e7316bfa3ac72?format=markdown) — 4d976d1fc233d3aa971fa7dcbf2e7316bfa3ac72; Julius Marminge

- [fix\(clients\): running subagent cards stay visible after their parent turn settles \(\#16878\)](https://git.cafe/gitcafe/t3code/commit/6ecb82dc42c4c721fd2c03c92316ee5361306cdb?format=markdown) — 6ecb82dc42c4c721fd2c03c92316ee5361306cdb; Julius Marminge

- [fix\(web\): replace Lineage timers with Stop on hover \(\#16791\)](https://git.cafe/gitcafe/t3code/commit/521f5b5a5682b18f2d59cf95226fc203cd314240?format=markdown) — 521f5b5a5682b18f2d59cf95226fc203cd314240; Bilal Bakr

- [feat\(server,web,mobile\): agents see snooze state and link to threads \(\#16782\)](https://git.cafe/gitcafe/t3code/commit/611132c171f3a821bd2e32f22261135cef6330ac?format=markdown) — 611132c171f3a821bd2e32f22261135cef6330ac; Theo Browne

- [fix\(server\): threads settle as soon as a client sees their PR merge \(\#16761\)](https://git.cafe/gitcafe/t3code/commit/cd41c4ada0c70cc2eec95ecd7266f3dab010c58c?format=markdown) — cd41c4ada0c70cc2eec95ecd7266f3dab010c58c; Theo Browne

- [perf\(server\): background branch lookups share one GitHub query per sweep \(\#16760\)](https://git.cafe/gitcafe/t3code/commit/c93080b0a3bf4faffb375169c5ec06adce05eb2f?format=markdown) — c93080b0a3bf4faffb375169c5ec06adce05eb2f; Theo Browne

- [fix\(server\): status refresh no longer pegs CPU in repos with thousands of untracked files \(\#16771\)](https://git.cafe/gitcafe/t3code/commit/10395bcc59707302c1476e19186532ff5a9d3557?format=markdown) — 10395bcc59707302c1476e19186532ff5a9d3557; Theo Browne

- [fix\(server\): stop storing tool image bytes no client reads \(\#16652\)](https://git.cafe/gitcafe/t3code/commit/b77108bc41506ad7ba28839d9a8e04ba79fe340b?format=markdown) — b77108bc41506ad7ba28839d9a8e04ba79fe340b; Derek Trimm

- [fix\(server\): settled threads stop polling their pull requests \(\#16762\)](https://git.cafe/gitcafe/t3code/commit/453e596da7e98d973e3853a5c2728681dedf363b?format=markdown) — 453e596da7e98d973e3853a5c2728681dedf363b; Theo Browne

- [feat\(web\): old Claude threads compact on send instead of stacking notices \(\#16631\)](https://git.cafe/gitcafe/t3code/commit/655dfbe8ba87f0f9ef1d6fad83c20634634653aa?format=markdown) — 655dfbe8ba87f0f9ef1d6fad83c20634634653aa; Theo Browne

- [feat\(server\): run a project action when a worktree thread settles \(\#16290\)](https://git.cafe/gitcafe/t3code/commit/079e4bccdcffc56c54bd69523ed77c006553ea21?format=markdown) — 079e4bccdcffc56c54bd69523ed77c006553ea21; Theo Browne

- [fix: composer picks up new project skills without a server restart \(\#16750\)](https://git.cafe/gitcafe/t3code/commit/a1830915ecf70e3ad4fbe8efb15ae9f18517eb54?format=markdown) — a1830915ecf70e3ad4fbe8efb15ae9f18517eb54; Julius Marminge

- [fix\(mcp\): agent HTML pages stop painting slab backgrounds \(\#16752\)](https://git.cafe/gitcafe/t3code/commit/4b063a042ec93418a196c020b852459f57e17b57?format=markdown) — 4b063a042ec93418a196c020b852459f57e17b57; Theo Browne

- [fix\(web\): thread details card gives titles room to read \(\#16746\)](https://git.cafe/gitcafe/t3code/commit/f60367b8cb5e4a7e5e12dd01dc3889618151b1be?format=markdown) — f60367b8cb5e4a7e5e12dd01dc3889618151b1be; Theo Browne

- [docs: connect Claude Code, Codex, ChatGPT and bots over MCP \(\#16741\)](https://git.cafe/gitcafe/t3code/commit/0f4f02abb6ab5428c06a7e4b6c76b3ec84c62498?format=markdown) — 0f4f02abb6ab5428c06a7e4b6c76b3ec84c62498; Julius Marminge

- [feat\(server\): hosted agents like ChatGPT can sign in to the T3 MCP server \(\#16718\)](https://git.cafe/gitcafe/t3code/commit/10f39eb9ac80c9a4b7f5097575dd2addc3b6f631?format=markdown) — 10f39eb9ac80c9a4b7f5097575dd2addc3b6f631; Julius Marminge

- [fix\(auth\): keep old clients connected across scope changes \(\#10298\)](https://git.cafe/gitcafe/t3code/commit/365aa87982a4d81cc8e0c085e8d1a40ca7daecdc?format=markdown) — 365aa87982a4d81cc8e0c085e8d1a40ca7daecdc; Julius Marminge

- [feat\(auth\): allow passive terminal observation \(\#9791\)](https://git.cafe/gitcafe/t3code/commit/cc41482df0232454af0cc5ac2f1afd984e342134?format=markdown) — cc41482df0232454af0cc5ac2f1afd984e342134; Julius Marminge

- [feat\(auth\): separate diagnostics and usage permissions \(\#9790\)](https://git.cafe/gitcafe/t3code/commit/57b2418d4fbab56290ff4cb861dcd0a7d0f5ef63?format=markdown) — 57b2418d4fbab56290ff4cb861dcd0a7d0f5ef63; Julius Marminge

- [feat\(auth\): separate browser preview control permissions \(\#9789\)](https://git.cafe/gitcafe/t3code/commit/7175edcff4f250b583ebed8877e27e36dc48411e?format=markdown) — 7175edcff4f250b583ebed8877e27e36dc48411e; Julius Marminge

- [feat\(auth\): separate filesystem read and write permissions \(\#9788\)](https://git.cafe/gitcafe/t3code/commit/321c6f9d26e9240f6ed3d2a3a8f7fc11344c2f17?format=markdown) — 321c6f9d26e9240f6ed3d2a3a8f7fc11344c2f17; Julius Marminge

- [feat\(auth\): separate source control write permissions \(\#9787\)](https://git.cafe/gitcafe/t3code/commit/2eda8ac6a3151b70b8ee49b438bfb6fcd835802e?format=markdown) — 2eda8ac6a3151b70b8ee49b438bfb6fcd835802e; Julius Marminge

- [feat\(auth\): separate environment administration permissions \(\#9786\)](https://git.cafe/gitcafe/t3code/commit/28ce9d1c1751d70c869e3de3287b96d5e28fc845?format=markdown) — 28ce9d1c1751d70c869e3de3287b96d5e28fc845; Julius Marminge

- [fix\(auth\): preserve explicitly granted pairing scopes \(\#9785\)](https://git.cafe/gitcafe/t3code/commit/e9c3d950f023130791d8ac5fe7aa0992e3430738?format=markdown) — e9c3d950f023130791d8ac5fe7aa0992e3430738; Julius Marminge

- [fix\(pi\): preserve provider identity in discovered models \(\#16661\)](https://git.cafe/gitcafe/t3code/commit/bfec2387b8102975c84690f99be0f5f834fd0cbe?format=markdown) — bfec2387b8102975c84690f99be0f5f834fd0cbe; maria

- [fix\(web\): preserve bare anchor placeholders in markdown \(\#16637\)](https://git.cafe/gitcafe/t3code/commit/5886bd8f19c8d4b01d7a0b36ad62a9d35f02552d?format=markdown) — 5886bd8f19c8d4b01d7a0b36ad62a9d35f02552d; maria

- [fix\(web\): keep workspace options when expanding lineage \(\#16635\)](https://git.cafe/gitcafe/t3code/commit/847c53df0126a225fb1a64d4bda9acfffa2b68ed?format=markdown) — 847c53df0126a225fb1a64d4bda9acfffa2b68ed; maria

- [fix\(web\): iPhone Duo fold controls follow the phone's orientation \(\#16630\)](https://git.cafe/gitcafe/t3code/commit/2991331515ed5b7e4df0751e5119fa04954e803a?format=markdown) — 2991331515ed5b7e4df0751e5119fa04954e803a; Gabriel De Andrade

- [fix\(server\): recover a deleted tunnel when Cloudflare says "Tunnel not found" \(\#16648\)](https://git.cafe/gitcafe/t3code/commit/740bda40c92e1ded65dd2b65ef7c583357b1d258?format=markdown) — 740bda40c92e1ded65dd2b65ef7c583357b1d258; Julius Marminge

- [fix\(relay\): a host restarting onto a deleted tunnel gets a new one \(\#16649\)](https://git.cafe/gitcafe/t3code/commit/c4481b9b07d9108d3aa93494a0ec5dd28ed8fd80?format=markdown) — c4481b9b07d9108d3aa93494a0ec5dd28ed8fd80; Julius Marminge

- [chore\(deps\): upgrade @pierre/diffs to 1.5.2 and @pierre/trees to beta.6 \(\#16644\)](https://git.cafe/gitcafe/t3code/commit/f8ed2a039b7deaa324beda29b44cc74c846311f7?format=markdown) — f8ed2a039b7deaa324beda29b44cc74c846311f7; Julius Marminge

- [refactor\(server\): instrument WS RPCs in group middleware \(\#15548\)](https://git.cafe/gitcafe/t3code/commit/d021f57bf3a500e419e800c3eb957568bed8f713?format=markdown) — d021f57bf3a500e419e800c3eb957568bed8f713; Julius Marminge

- [fix\(web\): show "No project" near the top of the new thread picker \(\#16628\)](https://git.cafe/gitcafe/t3code/commit/517188b3caa135bc09ec0a4f93474ef17c8b5c4f?format=markdown) — 517188b3caa135bc09ec0a4f93474ef17c8b5c4f; Julius Marminge

- [fix\(server\): provider sessions clean up when their start is interrupted \(\#15571\)](https://git.cafe/gitcafe/t3code/commit/4b5c60485366421794787aee7513913f92eced29?format=markdown) — 4b5c60485366421794787aee7513913f92eced29; Julius Marminge

- [feat\(web\): open right panel tab menu with Mod\+T \(\#15686\)](https://git.cafe/gitcafe/t3code/commit/7202ba666080cfca1351c080d7aaa2d81bfa9a66?format=markdown) — 7202ba666080cfca1351c080d7aaa2d81bfa9a66; Bilal Bakr

- [feat\(web\): add fast actions to linked pull requests \(\#16627\)](https://git.cafe/gitcafe/t3code/commit/ab28039ef77ca8847c6bfe845c3502ff7e348c30?format=markdown) — ab28039ef77ca8847c6bfe845c3502ff7e348c30; maria

- [feat\(web\): stop T3-owned subagents from Lineage \(\#15211\)](https://git.cafe/gitcafe/t3code/commit/c5c6f9cb485b2db0f205797394bc95f9f575d139?format=markdown) — c5c6f9cb485b2db0f205797394bc95f9f575d139; Bilal Bakr

- [feat\(web\): group keybindings settings by area with a page toolbar \(\#12822\)](https://git.cafe/gitcafe/t3code/commit/72d5c32ba67953805feb6fe9ad3b70b632a64c47?format=markdown) — 72d5c32ba67953805feb6fe9ad3b70b632a64c47; maria

- [fix\(vcs\): passive sidebar rows stop retaining remote pollers \(\#15666\)](https://git.cafe/gitcafe/t3code/commit/5055de3ae483d5ece45695ad682b9766ff0cf423?format=markdown) — 5055de3ae483d5ece45695ad682b9766ff0cf423; maria

- [fix\(web\): show attempted paths in file preview errors \(\#15628\)](https://git.cafe/gitcafe/t3code/commit/876f8656e310f365eab98678e68bcc45615fec7f?format=markdown) — 876f8656e310f365eab98678e68bcc45615fec7f; maria

- [fix\(web\): open pull request row actions on right-click \(\#16612\)](https://git.cafe/gitcafe/t3code/commit/d8d037eae1b77a77f372fd1afd2662a31ebe37c8?format=markdown) — d8d037eae1b77a77f372fd1afd2662a31ebe37c8; Jake Leventhal

- [fix\(contracts\): a context record that cannot be encoded no longer fails the send \(\#16398\)](https://git.cafe/gitcafe/t3code/commit/13aabf3d7d0ec13e902234e86d3df27149c0e4a9?format=markdown) — 13aabf3d7d0ec13e902234e86d3df27149c0e4a9; Julius Marminge

- [fix\(server\): one failing RPC handler no longer ends the client's other requests \(\#15515\)](https://git.cafe/gitcafe/t3code/commit/8ddf200e8f637eaf9a4f0d3036ece8f1d3869d10?format=markdown) — 8ddf200e8f637eaf9a4f0d3036ece8f1d3869d10; Julius Marminge

- [fix\(desktop\): include Linux package license and app metadata \(\#16597\)](https://git.cafe/gitcafe/t3code/commit/f4f148eb670622a049ae6561d7795011e383fc43?format=markdown) — f4f148eb670622a049ae6561d7795011e383fc43; Julius Marminge

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