# Commit history · gitcafe/t3code

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

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

Visibility: public

Requested revision: eea9f7cfebbdb51d27f07a816119c71a67509997

Requested commit: eea9f7cfebbdb51d27f07a816119c71a67509997

- [fix\(orchestration-v2\): show reported subagent models \(\#14108\)](https://git.cafe/gitcafe/t3code/commit/eea9f7cfebbdb51d27f07a816119c71a67509997?format=markdown) — eea9f7cfebbdb51d27f07a816119c71a67509997; Bilal Bakr

- [chore\(deps\): upgrade @effect/tsgo to 0.46.1 \(\#16360\)](https://git.cafe/gitcafe/t3code/commit/78552a8c6162c9b5248231bc70be8bffdb50cbd3?format=markdown) — 78552a8c6162c9b5248231bc70be8bffdb50cbd3; Erik Thorelli

- [fix\(mcp\): preserve thread command rejection reasons \(\#15627\)](https://git.cafe/gitcafe/t3code/commit/b38aa18365fe314e079d99670932bedfc7407e5a?format=markdown) — b38aa18365fe314e079d99670932bedfc7407e5a; maria

- [fix\(release\): unblock nightly browser tests and cli builds \(\#16515\)](https://git.cafe/gitcafe/t3code/commit/fd1c3386c4d60f3477ab3f13c87537848de099f5?format=markdown) — fd1c3386c4d60f3477ab3f13c87537848de099f5; maria

- [fix\(mcp\): mark declared tool failures as errors \(\#15617\)](https://git.cafe/gitcafe/t3code/commit/dff412c3411f34b3150983f00686a98b600526e3?format=markdown) — dff412c3411f34b3150983f00686a98b600526e3; maria

- [fix: restore service references breaking ci \(\#16495\)](https://git.cafe/gitcafe/t3code/commit/17c0878941ab8ab19108fb639c5138d92a89e919?format=markdown) — 17c0878941ab8ab19108fb639c5138d92a89e919; maria

- [feat\(preview\): run the browser on the environment server \(\#15328\)](https://git.cafe/gitcafe/t3code/commit/ac8e9453ca0948469ccf5651b765086d8d9ecd64?format=markdown) — ac8e9453ca0948469ccf5651b765086d8d9ecd64; maria

- [fix\(server\): OpenCode 2 threads get T3 Code's MCP tools \(\#16142\)](https://git.cafe/gitcafe/t3code/commit/9bd1d8009a6b7c50f9dd9458e2bf27d481ff3b43?format=markdown) — 9bd1d8009a6b7c50f9dd9458e2bf27d481ff3b43; Nikita Koynov

- [fix\(shared\): find versioned JetBrains macOS app bundles \(\#16246\)](https://git.cafe/gitcafe/t3code/commit/e6abc01788eef557c214a086999b3fd635b69f71?format=markdown) — e6abc01788eef557c214a086999b3fd635b69f71; Sypher760-gif

- [fix\(desktop\): use the crypto service for screenshot IDs \(\#16415\)](https://git.cafe/gitcafe/t3code/commit/4fb04fe7fae566cc91ab810888b3232f274a00cf?format=markdown) — 4fb04fe7fae566cc91ab810888b3232f274a00cf; Yash Singh

- [fix\(server\): reject invalid explicit Bitbucket repositories \(\#15876\)](https://git.cafe/gitcafe/t3code/commit/9ae9f2ba1f30e5fc14f69ba6dff6b08c7bfb401c?format=markdown) — 9ae9f2ba1f30e5fc14f69ba6dff6b08c7bfb401c; Arav Jain

- [fix\(web\): queued messages no longer split the composer notice stack \(\#16400\)](https://git.cafe/gitcafe/t3code/commit/4980ba282eb313b3be87a6b7df28f3b42dcb4ce9?format=markdown) — 4980ba282eb313b3be87a6b7df28f3b42dcb4ce9; Tristan Manchester

- [fix\(server\): end clone options before the repository URL \(\#14781\)](https://git.cafe/gitcafe/t3code/commit/e65063ccf6ce83aa33d10521aeaf929210f0ff04?format=markdown) — e65063ccf6ce83aa33d10521aeaf929210f0ff04; Alex Southwell

- [fix\(desktop\): prevent browser screenshot filename collisions \(\#14784\)](https://git.cafe/gitcafe/t3code/commit/411cef0008fa8e1e5251a8aae2cc6a215f700a9c?format=markdown) — 411cef0008fa8e1e5251a8aae2cc6a215f700a9c; Alex Southwell

- [fix\(web\): type in front of bold that starts a composer line \(\#13217\)](https://git.cafe/gitcafe/t3code/commit/d0dc45885c1441da5bd46dcf13124d94ed728b0a?format=markdown) — d0dc45885c1441da5bd46dcf13124d94ed728b0a; Alex Southwell

- [fix\(release\): resolve version-qualified catalog overrides \(\#16411\)](https://git.cafe/gitcafe/t3code/commit/1f2b10c25bc400461e6c114c2c7236e91996225c?format=markdown) — 1f2b10c25bc400461e6c114c2c7236e91996225c; Yash Singh

- [fix\(orchestration-v2\): let Stop recover stalled runs \(\#15442\)](https://git.cafe/gitcafe/t3code/commit/a7a2230c33fbec9d6616a5de26f09e1fa8856c05?format=markdown) — a7a2230c33fbec9d6616a5de26f09e1fa8856c05; Yash Singh

- [fix\(server\): avoid scanning completed history for pending secrets \(\#16409\)](https://git.cafe/gitcafe/t3code/commit/0290c4a04e52ca4e93be7a6fb94c14bcc7b53728?format=markdown) — 0290c4a04e52ca4e93be7a6fb94c14bcc7b53728; Yash Singh

- [fix\(desktop\): retry transient bearer bootstrap and degrade on session fetch failure \(\#12919\)](https://git.cafe/gitcafe/t3code/commit/76d3c96fd5b89cca2c06aeaceaea16100c75084a?format=markdown) — 76d3c96fd5b89cca2c06aeaceaea16100c75084a; James Villarrubia

- [fix\(server\): Pi thread titles use linked PR context \(\#16210\)](https://git.cafe/gitcafe/t3code/commit/4ae976dbae39b3e80243b864a8b61da00f642dc4?format=markdown) — 4ae976dbae39b3e80243b864a8b61da00f642dc4; Julius Marminge

- [fix\(relay\): export traces through one tracer, one request span each \(\#16382\)](https://git.cafe/gitcafe/t3code/commit/442735897f6f92af33798075baa12d4fd4d710dd?format=markdown) — 442735897f6f92af33798075baa12d4fd4d710dd; Julius Marminge

- [refactor: Effect code gets UUIDs and SHA-256 from Effect's Crypto \(\#16377\)](https://git.cafe/gitcafe/t3code/commit/83b982a85c87b4c0eda08beb9028e3a73f7c89b6?format=markdown) — 83b982a85c87b4c0eda08beb9028e3a73f7c89b6; Erik Thorelli

- [fix\(web\): bring back the live shimmer on work log rows \(\#16372\)](https://git.cafe/gitcafe/t3code/commit/8f75697b9e022033f2615cb32e3c6ddc61c52353?format=markdown) — 8f75697b9e022033f2615cb32e3c6ddc61c52353; Julius Marminge

- [fix\(relay\): error and deadline responses carry CORS headers \(\#16253\)](https://git.cafe/gitcafe/t3code/commit/0ecb78ed0d351b65ef68262f632359223f9c389b?format=markdown) — 0ecb78ed0d351b65ef68262f632359223f9c389b; Julius Marminge

- [fix\(observability\): T3 Connect tracing stops at the relay boundary \(\#16314\)](https://git.cafe/gitcafe/t3code/commit/25f0b2a1b7323563aa5d4e7f70e78a3889c5918e?format=markdown) — 25f0b2a1b7323563aa5d4e7f70e78a3889c5918e; Julius Marminge

- [chore\(lint\): catch known tags with Effect.catchTags \(\#16361\)](https://git.cafe/gitcafe/t3code/commit/ff397a29523d3c63e5844b11608c0189640c7561?format=markdown) — ff397a29523d3c63e5844b11608c0189640c7561; Erik Thorelli

- [fix\(server\): main's settings, keybindings and session tests compile again \(\#16363\)](https://git.cafe/gitcafe/t3code/commit/fad673225650193fad2a85487ecffc903f8ff30a?format=markdown) — fad673225650193fad2a85487ecffc903f8ff30a; Julius Marminge

- [fix\(contracts\): trimmed IDs round-trip \(\#16300\)](https://git.cafe/gitcafe/t3code/commit/2d162d157dfb0eea7e205c508f47d663ab4e8bf9?format=markdown) — 2d162d157dfb0eea7e205c508f47d663ab4e8bf9; Julius Marminge

- [refactor\(web\): import connection storage as a namespace in its test \(\#16315\)](https://git.cafe/gitcafe/t3code/commit/efeeb7737bed89bbfc6dc81662058f8ce7fba2ea?format=markdown) — efeeb7737bed89bbfc6dc81662058f8ce7fba2ea; Julius Marminge

- [fix\(server\): metrics count interrupted work on the monotonic clock \(\#16207\)](https://git.cafe/gitcafe/t3code/commit/c299308a832db382fce61233bd10a4bd13bbc60c?format=markdown) — c299308a832db382fce61233bd10a4bd13bbc60c; Julius Marminge

- [fix\(shared\): DrainableWorker keeps running after a failed item \(\#16223\)](https://git.cafe/gitcafe/t3code/commit/24e4b62c883eb67251bdfb07d2bf22cfd3987820?format=markdown) — 24e4b62c883eb67251bdfb07d2bf22cfd3987820; Julius Marminge

- [chore: keep one copy each of undici 8 and ws 8 \(\#16211\)](https://git.cafe/gitcafe/t3code/commit/4b3568b775d86fc699938ec5a9ada773bad8b45f?format=markdown) — 4b3568b775d86fc699938ec5a9ada773bad8b45f; Julius Marminge

- [fix\(server\): the PR cache sweep only removes real entry files \(\#16285\)](https://git.cafe/gitcafe/t3code/commit/bfe40e6d2574447b0651bdb41337db743ddbe12c?format=markdown) — bfe40e6d2574447b0651bdb41337db743ddbe12c; Julius Marminge

- [fix\(server\): one-shot initializers no longer race \(\#16260\)](https://git.cafe/gitcafe/t3code/commit/327a29ef56e215c69a5db5d0b6f8df89f04f5d5b?format=markdown) — 327a29ef56e215c69a5db5d0b6f8df89f04f5d5b; Julius Marminge

- [fix\(server\): caches and ids are written atomically \(\#16242\)](https://git.cafe/gitcafe/t3code/commit/eef36a67c37fa74905fc7feaa836e5a81daa8685?format=markdown) — eef36a67c37fa74905fc7feaa836e5a81daa8685; Julius Marminge

- [Add esthor to the list of GitHub users](https://git.cafe/gitcafe/t3code/commit/3236d8ce73d06df91e30532d0a5fd03cb537de8e?format=markdown) — 3236d8ce73d06df91e30532d0a5fd03cb537de8e; Julius Marminge

- [fix\(server\): Claude limits load again for users with large transcript histories \(\#16358\)](https://git.cafe/gitcafe/t3code/commit/255ac27d5200b01c50acef105ab0ec8bb6ab8345?format=markdown) — 255ac27d5200b01c50acef105ab0ec8bb6ab8345; Theo Browne

- [fix\(server\): project favicons stop being rescanned every minute \(\#16206\)](https://git.cafe/gitcafe/t3code/commit/24edd55d9459edfa0a2956094b7868102bba5b6f?format=markdown) — 24edd55d9459edfa0a2956094b7868102bba5b6f; Theo Browne

- [fix\(server\): main's startup auto-pull test compiles again \(\#16357\)](https://git.cafe/gitcafe/t3code/commit/61a0ec9eb0ad12dd4ef054d2dbab8b5eedbdaf06?format=markdown) — 61a0ec9eb0ad12dd4ef054d2dbab8b5eedbdaf06; Theo Browne

- [perf\(shared\): scan PATH once per command before spawning, not on every spawn \(\#12600\)](https://git.cafe/gitcafe/t3code/commit/71964e670ff212006ebb8de26585649c2adced68?format=markdown) — 71964e670ff212006ebb8de26585649c2adced68; SkiTee3000

- [fix\(server\): status polling no longer locks the git index \(\#14718\)](https://git.cafe/gitcafe/t3code/commit/447046b589140a50a4a782453133da83ff77e85e?format=markdown) — 447046b589140a50a4a782453133da83ff77e85e; ahalekelly

- [fix\(observability\): a failing trace disk no longer stalls the server \(\#13758\)](https://git.cafe/gitcafe/t3code/commit/570b72d83978f718a5e677002bde3abe55a6d797?format=markdown) — 570b72d83978f718a5e677002bde3abe55a6d797; Theo Browne

- [fix\(server\): probe project favicon candidates concurrently \(\#12543\)](https://git.cafe/gitcafe/t3code/commit/b69f8b5ff079cccc259bf2a001c2da2bc25d6892?format=markdown) — b69f8b5ff079cccc259bf2a001c2da2bc25d6892; Ishaan Kothari

- [fix\(server\): return partial workspace index on timeout \(\#11500\)](https://git.cafe/gitcafe/t3code/commit/fec71c5ab4fd860331fb15ce37c15edf6db1c236?format=markdown) — fec71c5ab4fd860331fb15ce37c15edf6db1c236; Michel Liao

- [fix\(web\): avoid blocking image preparation conversions \(\#13342\)](https://git.cafe/gitcafe/t3code/commit/ff2fda7d6d59a05b9077b8fc48a5e0b67054b8d5?format=markdown) — ff2fda7d6d59a05b9077b8fc48a5e0b67054b8d5; Bilal Bakr

- [fix\(server\): stop the startup project sync from delaying the app window \(\#14912\)](https://git.cafe/gitcafe/t3code/commit/2103bfaa77c431e0923ceb53b52418c0eef174da?format=markdown) — 2103bfaa77c431e0923ceb53b52418c0eef174da; Igor Makowski

- [fix\(server\): forks no longer merge into their upstream repo's project group \(\#16353\)](https://git.cafe/gitcafe/t3code/commit/017c9a0eb53b2c100b5be2d366d2374038da9241?format=markdown) — 017c9a0eb53b2c100b5be2d366d2374038da9241; Theo Browne

- [refactor\(server\): replay guards stay in CloudLink \(\#16349\)](https://git.cafe/gitcafe/t3code/commit/99db70cf1a1f24deca80e40a94a6cdbbaf511da6?format=markdown) — 99db70cf1a1f24deca80e40a94a6cdbbaf511da6; Julius Marminge

- [refactor\(server\): CloudLink fails with its own errors; the connect routes map them to HTTP \(\#16341\)](https://git.cafe/gitcafe/t3code/commit/68e50db20b3784bad69dd754165020a08f2cd42a?format=markdown) — 68e50db20b3784bad69dd754165020a08f2cd42a; Julius Marminge

- [refactor\(server\): CloudLink keeps only the link lifecycle; pure checks live beside it \(\#16340\)](https://git.cafe/gitcafe/t3code/commit/ff873b2ec1972b701c3f9edd6a0f727c91604dc4?format=markdown) — ff873b2ec1972b701c3f9edd6a0f727c91604dc4; Julius Marminge

- [chore\(review\): turn off CodeRabbit's docstring coverage check \(\#16328\)](https://git.cafe/gitcafe/t3code/commit/3a9c1a6df1b71d8ba73d287be90443e8e874802f?format=markdown) — 3a9c1a6df1b71d8ba73d287be90443e8e874802f; Erik Thorelli

- [chore\(review\): point CodeRabbit at the web UI conventions \(\#16324\)](https://git.cafe/gitcafe/t3code/commit/c21f93e43087c5b7d7f18b2d45d991cbf1f4d28c?format=markdown) — c21f93e43087c5b7d7f18b2d45d991cbf1f4d28c; Erik Thorelli

- [docs\(relay\): add the legacy tunnel cleanup rollout runbook \(\#13568\)](https://git.cafe/gitcafe/t3code/commit/204a6390967b14311d40ab9205e062302a0c195a?format=markdown) — 204a6390967b14311d40ab9205e062302a0c195a; Julius Marminge

- [feat\(connect\): tell users when an idle tunnel was removed \(\#13567\)](https://git.cafe/gitcafe/t3code/commit/6b456a9618c35f2fa525f6dfc9ef9b0ff01471b8?format=markdown) — 6b456a9618c35f2fa525f6dfc9ef9b0ff01471b8; Julius Marminge

- [perf\(relay\): delete expired tunnels four at a time within a time budget \(\#13566\)](https://git.cafe/gitcafe/t3code/commit/6bfc8baeb8f280e57ef6d0d514680b0bce8538a2?format=markdown) — 6bfc8baeb8f280e57ef6d0d514680b0bce8538a2; Julius Marminge

- [feat\(relay\): clean up tunnels of hosts that never registered recovery \(\#13565\)](https://git.cafe/gitcafe/t3code/commit/41d2535a90fdfb49b2b9a7a7c8fb4bce09c4170f?format=markdown) — 41d2535a90fdfb49b2b9a7a7c8fb4bce09c4170f; Julius Marminge

- [feat\(relay\): measure the managed tunnel backlog \(\#13564\)](https://git.cafe/gitcafe/t3code/commit/7b32b2ca39892bc59e1d8cfff7aea2a8fbefa73a?format=markdown) — 7b32b2ca39892bc59e1d8cfff7aea2a8fbefa73a; Julius Marminge

- [fix\(relay\): stop forcing manual relay deploys by default \(\#13563\)](https://git.cafe/gitcafe/t3code/commit/18c1210810cbdb798d28edda1826fa4de91992d1?format=markdown) — 18c1210810cbdb798d28edda1826fa4de91992d1; Julius Marminge

- [fix\(web\): recover from a closed IndexedDB connection \(\#16311\)](https://git.cafe/gitcafe/t3code/commit/9c49228f5425f644cff9b41ae88ca564d40d79fa?format=markdown) — 9c49228f5425f644cff9b41ae88ca564d40d79fa; Julius Marminge

- [feat\(desktop\): the renderer's bootstrap token rotates every 12 hours \(\#16275\)](https://git.cafe/gitcafe/t3code/commit/5afe18eaf9d20c1633b4ec9177c6c9309a8f3d99?format=markdown) — 5afe18eaf9d20c1633b4ec9177c6c9309a8f3d99; Julius Marminge

- [fix\(web\): a rejected desktop-local credential is not retried every poll \(\#16273\)](https://git.cafe/gitcafe/t3code/commit/f36df1852423fef7f7855f86946c9f9a95c3429f?format=markdown) — f36df1852423fef7f7855f86946c9f9a95c3429f; Julius Marminge

- [refactor\(relay\): import HookInboxObject once, as a namespace \(\#16307\)](https://git.cafe/gitcafe/t3code/commit/8bd7745f0af918582807326d90e58d59324bb2a6?format=markdown) — 8bd7745f0af918582807326d90e58d59324bb2a6; Julius Marminge

- [chore\(lint\): require a reason on every lint and type-checker suppression \(\#16294\)](https://git.cafe/gitcafe/t3code/commit/31d0c8a4f47ead36c9a63ac4d3bf27b55c05095a?format=markdown) — 31d0c8a4f47ead36c9a63ac4d3bf27b55c05095a; Erik Thorelli

- [docs: put the Effect and web UI review rules in the docs \(\#16286\)](https://git.cafe/gitcafe/t3code/commit/6262e5f50081845bb247e5af2fc81b068c8ae893?format=markdown) — 6262e5f50081845bb247e5af2fc81b068c8ae893; Erik Thorelli

- [chore\(review\): configure CodeRabbit in TypeScript \(\#16281\)](https://git.cafe/gitcafe/t3code/commit/ea54be7f853aca37981f60958d66039196f13a0c?format=markdown) — ea54be7f853aca37981f60958d66039196f13a0c; Erik Thorelli

- [refactor\(server\): one module per service instead of Services/ and Layers/ folders \(\#16295\)](https://git.cafe/gitcafe/t3code/commit/3d17862e58554460b0baae7bae0e03d36b8ce5ab?format=markdown) — 3d17862e58554460b0baae7bae0e03d36b8ce5ab; Julius Marminge

- [fix\(web\): inline HTML renders no longer trap the thread's scroll \(\#16283\)](https://git.cafe/gitcafe/t3code/commit/64275ae39653379e63f49f87be021c190fd20e81?format=markdown) — 64275ae39653379e63f49f87be021c190fd20e81; Theo Browne

- [fix\(web\): sidebar drag and drop no longer snaps back \(\#16291\)](https://git.cafe/gitcafe/t3code/commit/db4d0a8e6e49d92a9efcd8d6f82bbed10e2bd748?format=markdown) — db4d0a8e6e49d92a9efcd8d6f82bbed10e2bd748; Theo Browne

- [refactor\(server\): T3 Connect link capabilities live in a CloudLink service \(\#16265\)](https://git.cafe/gitcafe/t3code/commit/9422e2ee12fd3e3bfdf6fe5c377672badf7b20ca?format=markdown) — 9422e2ee12fd3e3bfdf6fe5c377672badf7b20ca; Julius Marminge

- [refactor: layer variables are named layer or layerXyz \(\#16282\)](https://git.cafe/gitcafe/t3code/commit/ecfdda5fa804582066c1aa62afea419677c24883?format=markdown) — ecfdda5fa804582066c1aa62afea419677c24883; Julius Marminge

- [fix\(pull-requests\): PR detail reads no longer drain the GitHub quota \(\#16280\)](https://git.cafe/gitcafe/t3code/commit/4df84a7d03ff084ff4c6dd7aef54623984690fb7?format=markdown) — 4df84a7d03ff084ff4c6dd7aef54623984690fb7; Theo Browne

- [perf\(server\): PR watches spend \~90% fewer GitHub points by checking a 1-point fingerprint first \(\#16270\)](https://git.cafe/gitcafe/t3code/commit/758dc290e900e35958d37fec41fed4a357ad60fa?format=markdown) — 758dc290e900e35958d37fec41fed4a357ad60fa; Theo Browne

- [perf\(server\): idle status polls and PR sweeps start fewer git processes \(\#16272\)](https://git.cafe/gitcafe/t3code/commit/dcbaf05279984187b96c99edc2416abf91e77b96?format=markdown) — dcbaf05279984187b96c99edc2416abf91e77b96; Theo Browne

- [feat\(server,web\): choose where new worktrees are created \(\#16231\)](https://git.cafe/gitcafe/t3code/commit/1024941575067f68d909c6b98f56b02edac25b37?format=markdown) — 1024941575067f68d909c6b98f56b02edac25b37; Julius Marminge

- [feat\(server\): log how long PR watches stay quiet before they end \(\#16262\)](https://git.cafe/gitcafe/t3code/commit/fc4ecc835e6d54eb411c333d737f2c4881884338?format=markdown) — fc4ecc835e6d54eb411c333d737f2c4881884338; Theo Browne

- [refactor\(server\): import service modules as namespaces, not aliased layers \(\#16267\)](https://git.cafe/gitcafe/t3code/commit/6302d66f7773ee43d198155d2cfc22d9d66dbbe0?format=markdown) — 6302d66f7773ee43d198155d2cfc22d9d66dbbe0; Julius Marminge

- [fix\(server\): a T3 Connect preferences save finishes even if the client disconnects \(\#16266\)](https://git.cafe/gitcafe/t3code/commit/ee6991ad502c7c8979ab47b6a8fc645498f5b4ce?format=markdown) — ee6991ad502c7c8979ab47b6a8fc645498f5b4ce; Julius Marminge

- [refactor\(server,relay\): webhook capabilities live in services, not handlers \(\#16232\)](https://git.cafe/gitcafe/t3code/commit/7a047d0136de606accc8270dce64f2260529c120?format=markdown) — 7a047d0136de606accc8270dce64f2260529c120; Julius Marminge

- [fix\(relay\): releasing a tunnel that still has a connector no longer 500s \(\#16250\)](https://git.cafe/gitcafe/t3code/commit/cfa4f765ec05950a032b6c1cf9cdfff0c2391545?format=markdown) — cfa4f765ec05950a032b6c1cf9cdfff0c2391545; Julius Marminge

- [fix\(server\): finished outbox rows and old PR cache files are pruned \(\#16247\)](https://git.cafe/gitcafe/t3code/commit/ca952677321abf9f3762ae4bb0129454e5a63955?format=markdown) — ca952677321abf9f3762ae4bb0129454e5a63955; Julius Marminge

- [fix\(server\): ACP mode states with null descriptions are no longer dropped \(\#16218\)](https://git.cafe/gitcafe/t3code/commit/27ab45593fdcaffe718c1fa54dcbb2df4bd769a2?format=markdown) — 27ab45593fdcaffe718c1fa54dcbb2df4bd769a2; Julius Marminge

- [feat\(web\): see and stop pull request watches in the thread details card \(\#16235\)](https://git.cafe/gitcafe/t3code/commit/3da82d5d384a5f45e3e4a9c5bdb8336eb54e49ff?format=markdown) — 3da82d5d384a5f45e3e4a9c5bdb8336eb54e49ff; Theo Browne

- [feat: agents ask the user for a secret through a private card \(\#15907\)](https://git.cafe/gitcafe/t3code/commit/9f61ba674115f3ddb67a8a1fbe0a0ac8839551bf?format=markdown) — 9f61ba674115f3ddb67a8a1fbe0a0ac8839551bf; Julius Marminge

- [chore\(relay\): match Alchemy to the PS-80 Postgres cluster \(\#16228\)](https://git.cafe/gitcafe/t3code/commit/25d5c7cacb99bc50056edc0ea8d201eac31cfdf4?format=markdown) — 25d5c7cacb99bc50056edc0ea8d201eac31cfdf4; Julius Marminge

- [feat: agents can show HTML pages inline in threads \(\#15968\)](https://git.cafe/gitcafe/t3code/commit/677d1527c3d96b90b2294d9a0aed7d8c8874b29b?format=markdown) — 677d1527c3d96b90b2294d9a0aed7d8c8874b29b; Theo Browne

- [perf: cheaper shell refreshes, one copy of Codex streaming text, no MCP wait polling \(\#15033\)](https://git.cafe/gitcafe/t3code/commit/c138163c8cc39d4a98b2d3d796bcef183013bac5?format=markdown) — c138163c8cc39d4a98b2d3d796bcef183013bac5; Theo Browne

- [feat: new branches use the shorter t3/ prefix \(\#16220\)](https://git.cafe/gitcafe/t3code/commit/2afe87ea4bb94f4dbbd1660a556cbffefd7498a2?format=markdown) — 2afe87ea4bb94f4dbbd1660a556cbffefd7498a2; Theo Browne

- [fix\(server\): delegation sees a fixed provider without the app open \(\#16219\)](https://git.cafe/gitcafe/t3code/commit/cbb731beb36db2330c9a2632b11354315658ea21?format=markdown) — cbb731beb36db2330c9a2632b11354315658ea21; Theo Browne

- [fix\(server\): PR watches stop burning GitHub's rate limit and giving up \(\#16208\)](https://git.cafe/gitcafe/t3code/commit/9e5229b47f7af66e2f88447a49f8ea7f00c734c6?format=markdown) — 9e5229b47f7af66e2f88447a49f8ea7f00c734c6; Theo Browne

- [feat\(relay,server,web,mobile\): opt-in to hold webhooks while offline \(\#15487\)](https://git.cafe/gitcafe/t3code/commit/f33b060cafc96d7c3229744315c230a3b8d1f631?format=markdown) — f33b060cafc96d7c3229744315c230a3b8d1f631; Julius Marminge

- [feat\(web\): create webhook automations and inspect their deliveries \(\#15088\)](https://git.cafe/gitcafe/t3code/commit/ea4b44343d3c8f71cf49a72a266d00eac7389435?format=markdown) — ea4b44343d3c8f71cf49a72a266d00eac7389435; Julius Marminge

- [feat\(mobile\): create and copy webhook automations \(\#15087\)](https://git.cafe/gitcafe/t3code/commit/aee889b0e043fdc652e48850698d08ebc563d5bc?format=markdown) — aee889b0e043fdc652e48850698d08ebc563d5bc; Julius Marminge

- [feat\(relay\): forward webhook requests to the environment's tunnel \(\#15086\)](https://git.cafe/gitcafe/t3code/commit/b070e52d3e6b49c98117249e5b3f0d46edce173a?format=markdown) — b070e52d3e6b49c98117249e5b3f0d46edce173a; Julius Marminge

- [feat\(server\): scheduled tasks can run on a webhook \(\#15085\)](https://git.cafe/gitcafe/t3code/commit/7dfb86a32be6ec064dd8988e1a3b44cc046ff958?format=markdown) — 7dfb86a32be6ec064dd8988e1a3b44cc046ff958; Julius Marminge

- [fix\(server\): PR sync waits out a GitHub rate limit pause instead of failing every PR \(\#16203\)](https://git.cafe/gitcafe/t3code/commit/54b6b667f340c03132e9fc2cb2c3d657571442a2?format=markdown) — 54b6b667f340c03132e9fc2cb2c3d657571442a2; Theo Browne

- [chore\(deps\): bump cursor sdk and astro to clear vulnerable transitives \(\#16214\)](https://git.cafe/gitcafe/t3code/commit/3d2a98f99be10b7621a368f4e05f36a853ac48d1?format=markdown) — 3d2a98f99be10b7621a368f4e05f36a853ac48d1; Julius Marminge

- [fix\(threads\): threads watching a PR stay in Working instead of bouncing to the inbox \(\#16204\)](https://git.cafe/gitcafe/t3code/commit/207f6a10b05cbdaee6fc650e915ba09dbe39d428?format=markdown) — 207f6a10b05cbdaee6fc650e915ba09dbe39d428; Theo Browne

- [docs\(mcp\): thread tools reach threads in any project \(\#15947\)](https://git.cafe/gitcafe/t3code/commit/f5eb25071c042c4a729ddae9fd07bd81804907da?format=markdown) — f5eb25071c042c4a729ddae9fd07bd81804907da; Theo Browne

- [fix: tool screenshots show as images, not base64 text \(\#16199\)](https://git.cafe/gitcafe/t3code/commit/5eb87730871ac6125266b48b98d067de00a19ec7?format=markdown) — 5eb87730871ac6125266b48b98d067de00a19ec7; Theo Browne

- [fix: a failed DPoP key load and a fresh maintenance read are no longer cached \(\#15500\)](https://git.cafe/gitcafe/t3code/commit/2a68a777afda95aa23538b9954c5a15221ed2857?format=markdown) — 2a68a777afda95aa23538b9954c5a15221ed2857; Julius Marminge

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