Skip to content

fix: cloned projects show their favicon instead of a monogram - #14635

Merged
t3dotgg merged 1 commit into
mainfrom
t3code/fix-cloned-project-icon
Oct 1, 2026
Merged

t3dotgg merged 1 commit into
mainfrom
t3code/fix-cloned-project-icon

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Oct 1, 2026

Copy link
Copy Markdown
Member

Cloning a repo into T3 Code showed a generated monogram instead of the repo's favicon. The same repo on other machines showed the right icon. Only a reload fixed it.

The server creates the project before git writes any files. Clients ask for the icon at once, the server finds nothing in the empty folder and caches that miss for a minute, and the client keeps the "missing" answer for up to 30 minutes. In the case that prompted this, the lookup ran 1 s before the clone wrote its files, and nothing asked again.

Fix

  • Server: while a project's clone is unfinished, assets.createUrl answers "missing" without running the favicon resolver, so no miss is cached.
  • Clients: the shared project favicon family asks again whenever the phase of the clone into that folder changes. Web, desktop, and mobile all use it. Progress updates do not trigger a lookup.

Holding the request open until the clone lands was simpler, but web shows a slow-request toast for any RPC pending over 15 s.

Related: #13121 fixes the same bug on t3code/codex-turn-mapping with a different approach. This one targets main.

Reviewed with sol-loop: 2 rounds with gpt-6.1-sol on high.

Created with Claude Opus 5.5 in Claude Code (T3 Code).

🤖 Generated with Claude Code

The server creates a cloned project before git writes any files. Clients
asked for its icon at once, the server cached the miss for a minute, and
clients kept the "missing" answer for up to 30 minutes.

While a project's clone is unfinished, the server now answers "missing"
without running the resolver, so no miss is cached. The shared project
favicon family asks again whenever the phase of the clone into that folder
changes, so web, desktop, and mobile pick up the icon once the clone lands.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@github-actions github-actions Bot added the vouch:trusted Author is trusted by repo permissions or the VOUCHED list. label Oct 1, 2026
@juliusmarminge juliusmarminge added the macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews label Oct 1, 2026
@github-actions github-actions Bot added the size:M 30-99 changed lines (additions + deletions). label Oct 1, 2026
Comment thread apps/server/src/assets/AssetAccess.ts Resolved
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.5 KiB 13.5 KiB −39 B (−0.3%) 15.1 KiB ✅
Codex Thread snapshot wire 7.1 KiB 7.1 KiB −5 B (−0.1%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.5 KiB 6.4 KiB −34 B (−0.5%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 56.3 KiB 56.2 KiB −44 B (−0.1%) 66.4 KiB ✅
Codex Live turn messages 10 9 −1 (−10.0%) 21 ✅
Claude Total thread wire 13.6 KiB 13.5 KiB −25 B (−0.2%) 15.1 KiB ✅
Claude Thread snapshot wire 7.1 KiB 7.1 KiB −2 B (−0.0%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.5 KiB 6.5 KiB −23 B (−0.3%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 57.1 KiB 57.0 KiB −44 B (−0.1%) 66.4 KiB ✅
Claude Live turn messages 10 9 −1 (−10.0%) 21 ✅

Baseline: bed69f6 · PR result: 11f26aa · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 114.0 KiB
  • Claude decoded thread snapshot: 114.7 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 11f26aa

Macroscope's review found this PR approvable — This is a narrowly scoped cross-client fix that prevents cloned-project favicon misses from being cached and refreshes the icon after the checkout completes, with targeted server and client tests. An unresolved Medium finding notes that failed or cancelled clones may still suppress an existing favicon, which should be addressed separately.

Notes:

  • This verdict was updated automatically after the outstanding correctness findings were resolved. Macroscope did not re-review the code.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: ef07249a-4338-4ace-8314-600f0e98d9ac

📥 Commits

Reviewing files that changed from the base of the PR and between bed69f6 and 11f26aa.

📒 Files selected for processing (9)
  • apps/mobile/src/state/assets.ts
  • apps/mobile/src/state/projectClones.ts
  • apps/server/src/assets/AssetAccess.ts
  • apps/server/src/server.test.ts
  • apps/server/src/ws.ts
  • apps/web/src/state/assets.ts
  • apps/web/src/state/projectClones.ts
  • packages/client-runtime/src/state/assets.test.ts
  • packages/client-runtime/src/state/assets.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The client refreshes project favicon URL requests when the matching clone phase changes. The server treats the favicon as missing while a clone targeting the project workspace is unfinished, then resolves it after checkout completes.

Changes

Project favicon refresh

Layer / File(s) Summary
Handle favicon requests during checkout
apps/server/src/ws.ts, apps/server/src/assets/AssetAccess.ts, apps/server/src/server.test.ts
The WebSocket handler marks a favicon lookup as pending for an unfinished clone whose destination matches the workspace root. Asset URL issuance skips favicon path resolution while pending. An integration test checks requests during and after cloning.
Refresh client favicon URLs from clone state
packages/client-runtime/src/state/assets.ts, packages/client-runtime/src/state/assets.test.ts, apps/web/src/state/projectClones.ts, apps/web/src/state/assets.ts, apps/mobile/src/state/projectClones.ts, apps/mobile/src/state/assets.ts
The runtime refreshes the favicon URL request when the matching clone phase changes. Web and mobile supply clone state to the runtime; tests cover matching and non-matching destinations and an initially completed clone.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant WebSocketClient
  participant projectFaviconHandler
  participant CloneState
  participant issueAssetUrl
  WebSocketClient->>projectFaviconHandler: request project-favicon URL
  projectFaviconHandler->>CloneState: read clone phase and destination
  CloneState-->>projectFaviconHandler: matching clone is unfinished
  projectFaviconHandler->>issueAssetUrl: issue URL with checkout pending
  issueAssetUrl-->>WebSocketClient: missing-resource URL
  WebSocketClient->>projectFaviconHandler: request project-favicon URL again
  projectFaviconHandler->>CloneState: read clone phase and destination
  CloneState-->>projectFaviconHandler: matching clone is done
  projectFaviconHandler->>issueAssetUrl: issue URL without checkout pending
  issueAssetUrl-->>WebSocketClient: URL for resolved favicon
Loading

Suggested reviewers: juliusmarminge, maria-rcks

Merge Risk: ⚪ Minimal · up to 11f26

Cloned projects should now show their favicon once the clone finishes. No merge-blocking risk was found in the reviewed changes.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description clearly explains the problem and implementation, but it omits the required Scope and approval section and focused Verification results. Add a Scope and approval section with the issue, maintainer approval, or a clear explanation of why this focused bug fix qualifies without prior approval. Add a Verification section with the specific tests or manual checks run, observed res…
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 9 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the primary fix: cloned projects display their favicon instead of a generated monogram.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Resolution

Add a Scope and approval section with the issue, maintainer approval, or a clear explanation of why this focused bug fix qualifies without prior approval. Add a Verification section with the specific tests or manual checks run, observed results, and any checks that were not performed.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Comment @coderabbitai help to get the list of available commands.

@t3dotgg
t3dotgg merged commit 6ea01f8 into main Oct 1, 2026
33 checks passed
@t3dotgg
t3dotgg deleted the t3code/fix-cloned-project-icon branch October 1, 2026 19:34
tarunravi pushed a commit to tarunravi/t3code that referenced this pull request Oct 1, 2026
…tgg#14635)

Fork note: dropped the apps/server/src/server.test.ts hunk; the V2 branch
removed that file (59ceaa9), so the client-runtime asset tests cover it.

(cherry picked from commit 6ea01f8)
Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 2, 2026
## What's Changed
* chore(mobile): upgrade to Expo SDK 58 and React Native 0.88 RC by @juliusmarminge in pingdotgg/t3code#12045
* feat(mobile): render the Android subscription widget with expo-widgets by @juliusmarminge in pingdotgg/t3code#12046
* feat(mobile): degrade the agent Live Activity once its content goes stale by @juliusmarminge in pingdotgg/t3code#12047
* feat(notifications): stack agent alerts by thread on both platforms by @juliusmarminge in pingdotgg/t3code#12048
* chore(mobile): drive dev-menu suppression from the dev-client launch URL by @juliusmarminge in pingdotgg/t3code#12049
* fix(mobile): read display scale and width from the view's scene, not UIScreen.main by @juliusmarminge in pingdotgg/t3code#12050
* refactor(mobile): adopt Expo Modules 2.0 for function-only native members by @juliusmarminge in pingdotgg/t3code#12051
* feat(mobile): suppress only the on-screen thread's alert on Android by @juliusmarminge in pingdotgg/t3code#12052
* feat(marketing): replace the screenshot crop with a designed social card by @flamboh in pingdotgg/t3code#13487
* docs: update user count in AGENTS.md by @Kamkmgamer in pingdotgg/t3code#11413
* test(web): remove duplicate sidebar ordering tests by @t3-code[bot] in pingdotgg/t3code#14558
* fix: cloned projects show their favicon instead of a monogram by @t3dotgg in pingdotgg/t3code#14635
* docs: server features are services, and handlers stay thin by @juliusmarminge in pingdotgg/t3code#14613

## New Contributors
* @Kamkmgamer made their first contribution in pingdotgg/t3code#11413

**Full Changelog**: pingdotgg/t3code@v0.0.45-nightly.20261001.2539...v0.0.45-nightly.20261001.2552

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.45-nightly.20261001.2552
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 2, 2026
## What's Changed
* fix(shared): merge OpenCode Go limits by credential by @Yash-Singh1 in pingdotgg/t3code#14209
* feat(codex): regenerate protocol bindings for Codex 0.159 by @juliusmarminge in pingdotgg/t3code#14311
* test(server): stop pinning codex install advisory to a release range by @maria-rcks in pingdotgg/t3code#14323
* chore: stop CodeRabbit from editing PR descriptions by @t3dotgg in pingdotgg/t3code#14307
* fix(web): unresolved pull request links use the compact link tooltip by @flamboh in pingdotgg/t3code#14243
* fix(client-runtime): keep model ids in inline code from becoming file chips by @otavio in pingdotgg/t3code#13909
* fix(web): show the agent's question on user-input timeline rows by @saphid in pingdotgg/t3code#12900
* fix(web): open workspace root links in the file explorer by @saphid in pingdotgg/t3code#12449
* fix(grok): recover from crashed provider sessions by @saphid in pingdotgg/t3code#10607
* fix(web): let command menu descriptions use the full row width by @jakaskerjanc in pingdotgg/t3code#8865
* fix(web): multi-PR badges open the linked pull requests panel by @flamboh in pingdotgg/t3code#13211
* fix(web): stop clipping the bottoms of diff file names by @shivamhwp in pingdotgg/t3code#14375
* fix(web): name the step that registers a mobile client by @Sethmr in pingdotgg/t3code#10963
* test(desktop): Keep WSL busy-runtime fixtures visible when sh is bash by @mwolson in pingdotgg/t3code#14351
* chore: bump vite-plus to 1.0 by @juliusmarminge in pingdotgg/t3code#14462
* fix(web): show double bolts for Codex Ultrafast by @t3dotgg in pingdotgg/t3code#14479
* docs: define contribution triage policy by @juliusmarminge in pingdotgg/t3code#14480
* docs: use explicit contribution triage exemptions by @juliusmarminge in pingdotgg/t3code#14485
* fix(server): Grok CLIs older than 1.0.13 are marked broken by @juliusmarminge in pingdotgg/t3code#14486
* fix(clients): hide disconnected environments when adding projects by @juliusmarminge in pingdotgg/t3code#14490
* feat: start threads without a project by @t3dotgg in pingdotgg/t3code#13612
* fix(server): Claude /compact no longer ends early and leaves the thread busy by @t3dotgg in pingdotgg/t3code#14497
* fix(web): Dark+ and Light+ themes import instead of colliding with built-in ids by @flamboh in pingdotgg/t3code#14499
* fix(web): make composer suggestions usable with screen readers by @akj in pingdotgg/t3code#10154
* perf(release): build and publish npm platform packages concurrently by @t3dotgg in pingdotgg/t3code#14028
* perf(ci): run PR checks side by side and balance server shards by @t3dotgg in pingdotgg/t3code#14025
* perf(release): trim Windows packaging setup by @t3dotgg in pingdotgg/t3code#14037
* perf(release): start Windows builds without waiting for the Linux job by @t3dotgg in pingdotgg/t3code#14027
* perf(release): build Vercel deployments early and go live after publish by @t3dotgg in pingdotgg/t3code#14029
* fix(server): Claude subagents with their own model no longer show the parent's model by @t3dotgg in pingdotgg/t3code#14540
* feat(web): restart the agent session from cmd+k to load new skills and plugins by @t3dotgg in pingdotgg/t3code#14542
* fix(web): hotkey settings record plain keys and Tab by @t3dotgg in pingdotgg/t3code#14548
* fix(release): Windows CLI smoke test no longer fails on temp dir cleanup by @t3dotgg in pingdotgg/t3code#14553
* feat: start a new project from just a name by @t3dotgg in pingdotgg/t3code#14527
* fix(desktop): agent clicks in the browser no longer pop Save dialogs by @t3dotgg in pingdotgg/t3code#14573
* chore(mobile): upgrade to Expo SDK 58 and React Native 0.88 RC by @juliusmarminge in pingdotgg/t3code#12045
* feat(mobile): render the Android subscription widget with expo-widgets by @juliusmarminge in pingdotgg/t3code#12046
* feat(mobile): degrade the agent Live Activity once its content goes stale by @juliusmarminge in pingdotgg/t3code#12047
* feat(notifications): stack agent alerts by thread on both platforms by @juliusmarminge in pingdotgg/t3code#12048
* chore(mobile): drive dev-menu suppression from the dev-client launch URL by @juliusmarminge in pingdotgg/t3code#12049
* fix(mobile): read display scale and width from the view's scene, not UIScreen.main by @juliusmarminge in pingdotgg/t3code#12050
* refactor(mobile): adopt Expo Modules 2.0 for function-only native members by @juliusmarminge in pingdotgg/t3code#12051
* feat(mobile): suppress only the on-screen thread's alert on Android by @juliusmarminge in pingdotgg/t3code#12052
* feat(marketing): replace the screenshot crop with a designed social card by @flamboh in pingdotgg/t3code#13487
* docs: update user count in AGENTS.md by @Kamkmgamer in pingdotgg/t3code#11413
* test(web): remove duplicate sidebar ordering tests by @t3-code[bot] in pingdotgg/t3code#14558
* fix: cloned projects show their favicon instead of a monogram by @t3dotgg in pingdotgg/t3code#14635
* docs: server features are services, and handlers stay thin by @juliusmarminge in pingdotgg/t3code#14613
* fix(ci): pin eas-cli so mobile PR previews deploy again by @juliusmarminge in pingdotgg/t3code#14659
* fix(server): background GitHub polling uses ~74% fewer calls with batched GraphQL by @t3dotgg in pingdotgg/t3code#14673
* fix(web): show the Docker icon on dockerfile code blocks by @chrisdeeming in pingdotgg/t3code#14675
* feat(web): update providers on every machine with one click by @t3dotgg in pingdotgg/t3code#14678
* feat(web): beta Working section hides busy threads until they need you by @t3dotgg in pingdotgg/t3code#13926
* fix(web): PR checks status collapses to its icon instead of wrapping by @flamboh in pingdotgg/t3code#14700
* fix: remove outdated restart setting update advice by @t3-code[bot] in pingdotgg/t3code#14710
* fix(web): keep the terminal toggle clear of the last header action by @Mnigos in pingdotgg/t3code#13426
* fix(web): group composer undo the way the Lexical composer did by @chrisdeeming in pingdotgg/t3code#14674
* fix(desktop): markdown pages no longer render invisible in the dark-mode browser by @shivamhwp in pingdotgg/t3code#14601
* fix(mobile): one No project row at the top of the project picker by @juliusmarminge in pingdotgg/t3code#14532
* Remove unused isCloudDebugEnabled and isTerminalDebugEnabled by @kridaydave in pingdotgg/t3code#14367
* fix(mobile): update Expo 58 to restore widgets and Live Activities by @juliusmarminge in pingdotgg/t3code#14734
* fix(mobile): project picker cards match the settings card color by @juliusmarminge in pingdotgg/t3code#14756
* fix(markdown): keep Windows paths intact in link and image destinations by @SunkenInTime in pingdotgg/t3code#12615

## New Contributors
* @jakaskerjanc made their first contribution in pingdotgg/t3code#8865
* @Sethmr made their first contribution in pingdotgg/t3code#10963
* @Kamkmgamer made their first contribution in pingdotgg/t3code#11413

**Full Changelog**: pingdotgg/t3code@v0.0.44...v0.0.45

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.45
IanWorley added a commit to IanWorley/t3code that referenced this pull request Oct 3, 2026
* fix(web): stop clipping the bottoms of diff file names (pingdotgg#14375)

* fix(web): name the step that registers a mobile client (pingdotgg#10963)

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
Co-authored-by: shivam <[email protected]>

* test(desktop): Keep WSL busy-runtime fixtures visible when sh is bash (pingdotgg#14351)

* chore: bump vite-plus to 1.0 (pingdotgg#14462)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(web): show double bolts for Codex Ultrafast (pingdotgg#14479)

* docs: define contribution triage policy (pingdotgg#14480)

* docs: use explicit contribution triage exemptions (pingdotgg#14485)

* fix(server): Grok CLIs older than 1.0.13 are marked broken (pingdotgg#14486)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(clients): hide disconnected environments when adding projects (pingdotgg#14490)

* feat: start threads without a project (pingdotgg#13612)

Co-authored-by: maria-rcks <[email protected]>
Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(server): Claude /compact no longer ends early and leaves the thread busy (pingdotgg#14497)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(web): Dark+ and Light+ themes import instead of colliding with built-in ids (pingdotgg#14499)

* fix(web): make composer suggestions usable with screen readers (pingdotgg#10154)

Co-authored-by: Khai Shern, Toh <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>

* perf(release): build and publish npm platform packages concurrently (pingdotgg#14028)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* perf(ci): run PR checks side by side and balance server shards (pingdotgg#14025)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* perf(release): trim Windows packaging setup (pingdotgg#14037)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* perf(release): start Windows builds without waiting for the Linux job (pingdotgg#14027)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* perf(release): build Vercel deployments early and go live after publish (pingdotgg#14029)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(server): Claude subagents with their own model no longer show the parent's model (pingdotgg#14540)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* feat(web): restart the agent session from cmd+k to load new skills and plugins (pingdotgg#14542)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(web): hotkey settings record plain keys and Tab (pingdotgg#14548)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(release): Windows CLI smoke test no longer fails on temp dir cleanup (pingdotgg#14553)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* feat: start a new project from just a name (pingdotgg#14527)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(desktop): agent clicks in the browser no longer pop Save dialogs (pingdotgg#14573)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* chore(mobile): upgrade to Expo SDK 58 and React Native 0.88 RC (pingdotgg#12045)

Co-authored-by: Claude Fable 5 <[email protected]>

* feat(mobile): render the Android subscription widget with expo-widgets (pingdotgg#12046)

Co-authored-by: Claude Fable 5 <[email protected]>

* feat(mobile): degrade the agent Live Activity once its content goes stale (pingdotgg#12047)

Co-authored-by: Claude Fable 5 <[email protected]>

* feat(notifications): stack agent alerts by thread on both platforms (pingdotgg#12048)

Co-authored-by: Claude Fable 5 <[email protected]>

* chore(mobile): drive dev-menu suppression from the dev-client launch URL (pingdotgg#12049)

Co-authored-by: Claude Fable 5 <[email protected]>

* fix(mobile): read display scale and width from the view's scene, not UIScreen.main (pingdotgg#12050)

Co-authored-by: Claude Fable 5 <[email protected]>

* refactor(mobile): adopt Expo Modules 2.0 for function-only native members (pingdotgg#12051)

Co-authored-by: Claude Fable 5 <[email protected]>

* feat(mobile): suppress only the on-screen thread's alert on Android (pingdotgg#12052)

Co-authored-by: Claude Fable 5 <[email protected]>

* feat(marketing): replace the screenshot crop with a designed social card (pingdotgg#13487)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* docs: update user count in AGENTS.md (pingdotgg#11413)

* test(web): remove duplicate sidebar ordering tests (pingdotgg#14558)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>

* Update marketing stats for GitHub stars and users

* fix: cloned projects show their favicon instead of a monogram (pingdotgg#14635)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* docs: server features are services, and handlers stay thin (pingdotgg#14613)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(ci): pin eas-cli so mobile PR previews deploy again (pingdotgg#14659)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(server): background GitHub polling uses ~74% fewer calls with batched GraphQL (pingdotgg#14673)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(web): show the Docker icon on dockerfile code blocks (pingdotgg#14675)

* feat(web): update providers on every machine with one click (pingdotgg#14678)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* feat(web): beta Working section hides busy threads until they need you (pingdotgg#13926)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(web): PR checks status collapses to its icon instead of wrapping (pingdotgg#14700)

* fix: remove outdated restart setting update advice (pingdotgg#14710)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: maria <[email protected]>

* fix(web): keep the terminal toggle clear of the last header action (pingdotgg#13426)

* fix(web): group composer undo the way the Lexical composer did (pingdotgg#14674)

* fix(desktop): markdown pages no longer render invisible in the dark-mode browser (pingdotgg#14601)

Co-authored-by: PR Batch Tester <[email protected]>
Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(mobile): one No project row at the top of the project picker (pingdotgg#14532)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* Remove unused isCloudDebugEnabled and isTerminalDebugEnabled (pingdotgg#14367)

* fix(mobile): update Expo 58 to restore widgets and Live Activities (pingdotgg#14734)

* fix(mobile): project picker cards match the settings card color (pingdotgg#14756)

* chore(mobile): bump app version to 1.4.0

Co-authored-by: codex <[email protected]>

* fix(markdown): keep Windows paths intact in link and image destinations (pingdotgg#12615)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(mobile): opening a thread no longer crashes Android release builds (pingdotgg#14850)

* chore(release): prepare v0.0.45

* fix(server): stop a second server from resending Claude turns (pingdotgg#13295)

* docs(triage): leave protected PRs open (pingdotgg#14852)

* feat(orchestrator): introduce new orchestrator (pingdotgg#2829)

Co-authored-by: maria-rcks <[email protected]>
Co-authored-by: Bilal Bakr <[email protected]>
Co-authored-by: shivam <[email protected]>
Co-authored-by: Vitalii Yehorov <[email protected]>
Co-authored-by: Jake Leventhal <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
Co-authored-by: Alex Southwell <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Wasmiller <[email protected]>
Co-authored-by: PB <[email protected]>
Co-authored-by: Exotic <[email protected]>
Co-authored-by: Yash Singh <[email protected]>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Theo Browne <[email protected]>
Co-authored-by: Gabriel De Andrade <[email protected]>
Co-authored-by: Dara Adedeji <[email protected]>
Co-authored-by: scratchyone <[email protected]>
Co-authored-by: Dominic Roy <[email protected]>
Co-authored-by: chukfinley <[email protected]>
Co-authored-by: Primož Ajdišek <[email protected]>
Co-authored-by: benthecarman <[email protected]>
Co-authored-by: NaveDanan <[email protected]>
Co-authored-by: aaditagrawal <[email protected]>
Co-authored-by: Aditya Garud <[email protected]>
Co-authored-by: Nick Anisimov <[email protected]>
Co-authored-by: MacKinley Smith <[email protected]>
Co-authored-by: Yordis Prieto <[email protected]>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: AKolenda <[email protected]>
Co-authored-by: Guillermo Casanova <[email protected]>
Co-authored-by: Otavio Salvador <[email protected]>
Co-authored-by: Shirish Pothi <[email protected]>
Co-authored-by: Ishaan Kothari <[email protected]>
Co-authored-by: Bob Fowler <[email protected]>
Co-authored-by: Anton Bezdenezhnykh <[email protected]>
Co-authored-by: ValeraZSD <[email protected]>
Co-authored-by: Ephraim <[email protected]>
Co-authored-by: Ryan Ilano <[email protected]>
Co-authored-by: Alex <[email protected]>
Co-authored-by: maco <[email protected]>
Co-authored-by: Cursor <[email protected]>
Co-authored-by: Tristan Knight <[email protected]>
Co-authored-by: PR Batch Tester <[email protected]>
Co-authored-by: oliver <[email protected]>
Co-authored-by: kamkm <[email protected]>
Signed-off-by: Yordis Prieto <[email protected]>

* chore(mobile): bump app version to 2.0.0

Co-authored-by: codex <[email protected]>

* fix(server): Claude MCP tools show their names and icons (pingdotgg#14860)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(server): released builds keep the OpenCode policy for their own version (pingdotgg#14863)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(server): idle shells stop reloading every project once a minute (pingdotgg#14893)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(server): Claude model changes no longer kill running background agents (pingdotgg#14726)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(server): API-key Codex installs no longer warn on every start (pingdotgg#14903)

Signed-off-by: Yordis Prieto <[email protected]>

* fix(server): steers keep the newest next-turn selection (pingdotgg#14725)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(settings): Pi and ACP Registry no longer show an Early Access badge (pingdotgg#14915)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(server): Codex auth tokens are an omitted key, never undefined (pingdotgg#14908)

Signed-off-by: Yordis Prieto <[email protected]>

* chore(lint): forbid declaring tests inside for loops (pingdotgg#14921)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* fix(desktop): markdown no longer loads invisible in new dark-mode browser tabs (pingdotgg#14727)

Co-authored-by: PR Batch Tester <[email protected]>
Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>

* refactor(pi): remove legacy ACP connection

* fix(providers): preserve Kiro and VibeProxy behavior

---------

Signed-off-by: Yordis Prieto <[email protected]>
Co-authored-by: shivam <[email protected]>
Co-authored-by: Seth <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
Co-authored-by: Mike Olson <[email protected]>
Co-authored-by: Julius Marminge <[email protected]>
Co-authored-by: Theo Browne <[email protected]>
Co-authored-by: maria-rcks <[email protected]>
Co-authored-by: oliver <[email protected]>
Co-authored-by: Andrew Johnson <[email protected]>
Co-authored-by: Khai Shern, Toh <[email protected]>
Co-authored-by: kamkm <[email protected]>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Chris Deeming <[email protected]>
Co-authored-by: maria <[email protected]>
Co-authored-by: Igor Makowski <[email protected]>
Co-authored-by: PR Batch Tester <[email protected]>
Co-authored-by: Kriday Dave <[email protected]>
Co-authored-by: codex <[email protected]>
Co-authored-by: Dara Adedeji <[email protected]>
Co-authored-by: Aaron Queen <[email protected]>
Co-authored-by: Cestercian <[email protected]>
Co-authored-by: Bilal Bakr <[email protected]>
Co-authored-by: Vitalii Yehorov <[email protected]>
Co-authored-by: Jake Leventhal <[email protected]>
Co-authored-by: Alex Southwell <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Wasmiller <[email protected]>
Co-authored-by: PB <[email protected]>
Co-authored-by: Exotic <[email protected]>
Co-authored-by: Yash Singh <[email protected]>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Gabriel De Andrade <[email protected]>
Co-authored-by: scratchyone <[email protected]>
Co-authored-by: Dominic Roy <[email protected]>
Co-authored-by: chukfinley <[email protected]>
Co-authored-by: Primož Ajdišek <[email protected]>
Co-authored-by: benthecarman <[email protected]>
Co-authored-by: NaveDanan <[email protected]>
Co-authored-by: aaditagrawal <[email protected]>
Co-authored-by: Aditya Garud <[email protected]>
Co-authored-by: Nick Anisimov <[email protected]>
Co-authored-by: MacKinley Smith <[email protected]>
Co-authored-by: Yordis Prieto <[email protected]>
Co-authored-by: AKolenda <[email protected]>
Co-authored-by: Guillermo Casanova <[email protected]>
Co-authored-by: Otavio Salvador <[email protected]>
Co-authored-by: Shirish Pothi <[email protected]>
Co-authored-by: Ishaan Kothari <[email protected]>
Co-authored-by: Bob Fowler <[email protected]>
Co-authored-by: Anton Bezdenezhnykh <[email protected]>
Co-authored-by: ValeraZSD <[email protected]>
Co-authored-by: Ephraim <[email protected]>
Co-authored-by: Ryan Ilano <[email protected]>
Co-authored-by: Alex <[email protected]>
Co-authored-by: maco <[email protected]>
Co-authored-by: Cursor <[email protected]>
Co-authored-by: Tristan Knight <[email protected]>
aorwall added a commit to aorwall/t3code that referenced this pull request Oct 3, 2026
Merges `pingdotgg/t3code` `20012ebd8` (33 commits, base `0cf482b08`)
into the fork. Landed 211 files, the same 211 that upstream changed in
the range. The fork delta is 756 files.

## Conflicts (7)
- `.github/workflows/ci.yml` (converged): upstream split the old `check`
job into separate jobs (pingdotgg#14025). The Moatless spec-check step now runs
after `vpr typecheck` in the `typecheck` job.
- `AGENTS.md` (decide): kept the fork's shape. Upstream's pingdotgg#14613 rule
("services, thin transports") is folded into the `apps/server` line,
along with its link to `effect-services.md`.
- `Sidebar.tsx` (converged): the memo dependency list is the union of
the fork's `isBrowsing`/`showsClosed` and upstream's
`workingShelfEnabled`.
- `DraftHeroHeadline.tsx`, `SidebarThreadHeader.tsx` (converged): takes
upstream's "Add project" label and keeps the
`FEATURES.projectManagement` gates.
- `third-party-licenses.config.json` (converged): upstream's copy, with
the fork's `khroma`/`fastdom`/`strictdom` overrides added back at the
end.
- `pnpm-lock.yaml` (theirs): taken from upstream, then re-derived with
`install.mjs`.

## Fork changes in this merge
- `projects.createNew` now declares `UnsupportedMethodError` (the ADD
from `unsupported-methods.mjs`).
- `<ProviderUpdatesAction />` in `ProviderSettingsPanel.tsx` is now
gated on `FEATURES.providerConfiguration`, because it calls
`server.updateProvider`, which Moatless refuses. Moatless publishes no
`versionAdvisory`, so the button would render nothing anyway.
- Updated `docs/fork/inventory.json`, `upstream-merge-inventory.md`,
`gaps.md` and `upstream-merge-log.md`.

## Usable as-is
- pingdotgg#13926: beta Working sidebar section. It is a client setting.
- pingdotgg#14635: cloned projects show their favicon.
- pingdotgg#14548: hotkey settings record plain keys and Tab. The keybindings
page is gated off in the fork, so this has no visible effect here.
- pingdotgg#14700 (PR checks layout), pingdotgg#14675 (Docker icon), pingdotgg#14710 (removes
outdated settings text), pingdotgg#13426 (terminal toggle spacing).
- Mobile (Expo SDK 58 and related), desktop, release, CI, docs and
marketing commits do not affect the web fork.

## Unsupported in Moatless / needs implementation
- pingdotgg#14527 `projects.createNew` + `ServerConfig.newProjectsRoot`: create a
project from just a name. The command palette entries hide themselves
while `newProjectsRoot` is absent. Moatless needs to implement the
method and report a root; then delete the union entry.
- pingdotgg#14678 `server.updateProvider` "update every machine": already
unsupported. Now gated behind `providerConfiguration`.

## Backend behavior to consider reproducing in Moatless
- pingdotgg#14542: "Restart agent session" in cmd+k calls
`server.refreshProviders` with `fresh: true` so skills and plugins are
rescanned. Moatless serves the method, but it may not honor `fresh`.
- pingdotgg#14673: background GitHub polling batched into GraphQL queries, about
74% fewer calls. Also adds an optional `PullRequestSummary.stack`.
- pingdotgg#14540: a Claude subagent with its own model is attributed to that
model, not the parent's.

## Verification
The full `verify.mjs` run passed all 10 checks. `@t3tools/mobile` failed
in the parallel test run and passed when run on its own, which points to
load rather than the merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---
Moatless task:
https://moatless.soaplabstest.com/tasks/eb08321e-6aab-41b3-b1a9-018b50a335c9
incognitojam pushed a commit to incognitojam/styal that referenced this pull request Oct 11, 2026
…tgg#14635)

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
(cherry picked from commit 6ea01f8)

Fork adaptation: The new clone test stubs the fork's post-clone fork remote wiring, which runs before the hook that refreshes the cloned project.

Upstream-PR: 14635
Fork-Feature: source-control-fork-remotes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews size:M 30-99 changed lines (additions + deletions). vouch:trusted Author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants