Repository navigation
fix(server): missing project folders no longer log favicon warnings - #16757
Conversation
A moved or deleted project checkout has no icon to find, so failing to resolve one is expected and not worth a server warning. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrowly scoped server-side bug fix that suppresses warnings only for deleted or moved workspace roots while preserving logging for other favicon failures. A focused regression test verifies both behaviors, with no product-default or static-analysis configuration changes. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (3)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughFavicon enrichment now skips warning logs for resolution failures caused by nonexistent workspace roots. Other favicon failures continue to produce warnings. ChangesFavicon failure logging
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to Missing workspace roots no longer produce favicon warnings, while other favicon failures remain visible. No merge-blocking issue was identified. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
## What's Changed * feat(models): add Claude Haiku 5.5 and retire Sonnet 5 and Opus 5 to legacy by @juliusmarminge in pingdotgg/t3code#16903 * fix(web): iPhone Duo folds animate, center on the hinge, and keep the phone's orientation by @gabrielelpidio in pingdotgg/t3code#16885 * fix(server): Claude 5-series models always run 1M context by @juliusmarminge in pingdotgg/t3code#16908 * fix(desktop): setup prompts name a t3 that runs on desktop installs by @juliusmarminge in pingdotgg/t3code#16676 * feat(desktop): install the t3 command from Settings by @juliusmarminge in pingdotgg/t3code#16683 * fix(web): show live names in thread-read activity by @Bil0000 in pingdotgg/t3code#13140 * feat(mobile): adopt v5 navigation and native iPad columns by @juliusmarminge in pingdotgg/t3code#16733 * fix(mobile): Android composer picker scrolls past the first four rows by @shivamhwp in pingdotgg/t3code#15856 * fix(desktop): sign-in and captchas work again in desktop browser tabs by @juliusmarminge in pingdotgg/t3code#16939 * fix(server): missing project folders no longer log favicon warnings by @yordis in pingdotgg/t3code#16757 * fix(server): unload Codex threads left idle on the shared app-server by @RhysSullivan in pingdotgg/t3code#16917 * fix(web): fast typing no longer scrambles text when type-to-focus kicks in by @otavio in pingdotgg/t3code#14595 * fix(web): simplify workspace card rows by @Bil0000 in pingdotgg/t3code#16823 * fix(web): Copy MCP URL shows up for environments reached over plain http by @SunkenInTime in pingdotgg/t3code#16909 * fix(web): C#, Java, PHP and 11 other languages get file icons by @juliusmarminge in pingdotgg/t3code#16974 * feat(clients): live row shows the agent's latest thought by @t3dotgg in pingdotgg/t3code#16284 * feat(web): block-level Markdown in the rich text composer by @chrisdeeming in pingdotgg/t3code#14677 * fix(web): center project monograms in settled rows by @Aforno in pingdotgg/t3code#16841 * fix(web): cancelling a new citation no longer leaves a stray space by @Aforno in pingdotgg/t3code#16828 * fix(settings): provider updates show live progress instead of a bare spinner by @shivamhwp in pingdotgg/t3code#16958 * feat(web): find in diffs with Cmd+F by @juliusmarminge in pingdotgg/t3code#14623 * refactor(server): GitHub services are named for the API they call, not gh by @juliusmarminge in pingdotgg/t3code#16967 * refactor(server): GitHub GraphQL batches use variables and share one pager by @juliusmarminge in pingdotgg/t3code#16960 * refactor(server): GitHub source control reads GitHubApi directly by @juliusmarminge in pingdotgg/t3code#16982 * refactor(server): GitHub rate limits read the response headers by @juliusmarminge in pingdotgg/t3code#16986 ## New Contributors * @RhysSullivan made their first contribution in pingdotgg/t3code#16917 * @Aforno made their first contribution in pingdotgg/t3code#16841 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261007.2787...v0.0.46-nightly.20261008.2801 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261008.2801
## What's Changed * feat(models): add Claude Haiku 5.5 and retire Sonnet 5 and Opus 5 to legacy by @juliusmarminge in pingdotgg/t3code#16903 * fix(web): iPhone Duo folds animate, center on the hinge, and keep the phone's orientation by @gabrielelpidio in pingdotgg/t3code#16885 * fix(server): Claude 5-series models always run 1M context by @juliusmarminge in pingdotgg/t3code#16908 * fix(desktop): setup prompts name a t3 that runs on desktop installs by @juliusmarminge in pingdotgg/t3code#16676 * feat(desktop): install the t3 command from Settings by @juliusmarminge in pingdotgg/t3code#16683 * fix(web): show live names in thread-read activity by @Bil0000 in pingdotgg/t3code#13140 * feat(mobile): adopt v5 navigation and native iPad columns by @juliusmarminge in pingdotgg/t3code#16733 * fix(mobile): Android composer picker scrolls past the first four rows by @shivamhwp in pingdotgg/t3code#15856 * fix(desktop): sign-in and captchas work again in desktop browser tabs by @juliusmarminge in pingdotgg/t3code#16939 * fix(server): missing project folders no longer log favicon warnings by @yordis in pingdotgg/t3code#16757 * fix(server): unload Codex threads left idle on the shared app-server by @RhysSullivan in pingdotgg/t3code#16917 * fix(web): fast typing no longer scrambles text when type-to-focus kicks in by @otavio in pingdotgg/t3code#14595 * fix(web): simplify workspace card rows by @Bil0000 in pingdotgg/t3code#16823 * fix(web): Copy MCP URL shows up for environments reached over plain http by @SunkenInTime in pingdotgg/t3code#16909 * fix(web): C#, Java, PHP and 11 other languages get file icons by @juliusmarminge in pingdotgg/t3code#16974 * feat(clients): live row shows the agent's latest thought by @t3dotgg in pingdotgg/t3code#16284 * feat(web): block-level Markdown in the rich text composer by @chrisdeeming in pingdotgg/t3code#14677 * fix(web): center project monograms in settled rows by @Aforno in pingdotgg/t3code#16841 * fix(web): cancelling a new citation no longer leaves a stray space by @Aforno in pingdotgg/t3code#16828 * fix(settings): provider updates show live progress instead of a bare spinner by @shivamhwp in pingdotgg/t3code#16958 * feat(web): find in diffs with Cmd+F by @juliusmarminge in pingdotgg/t3code#14623 * refactor(server): GitHub services are named for the API they call, not gh by @juliusmarminge in pingdotgg/t3code#16967 * refactor(server): GitHub GraphQL batches use variables and share one pager by @juliusmarminge in pingdotgg/t3code#16960 * refactor(server): GitHub source control reads GitHubApi directly by @juliusmarminge in pingdotgg/t3code#16982 * refactor(server): GitHub rate limits read the response headers by @juliusmarminge in pingdotgg/t3code#16986 ## New Contributors * @RhysSullivan made their first contribution in pingdotgg/t3code#16917 * @Aforno made their first contribution in pingdotgg/t3code#16841 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261007.2787...v0.0.46-nightly.20261008.2801 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261008.2801
Problem
When a project's checkout folder is moved or deleted, favicon resolution fails with a
WorkspaceRootNotExistsError, and the server logs a warning for it on every enrichment pass. That failure is expected for a missing folder and is not something a maintainer or user needs to see repeated in the logs.Change
Tag favicon resolution failures that are caused specifically by a missing workspace root, and skip the warning log for that case in
ProjectEnrichmentService. Other favicon failures still log as before.Scope and approval
Very small, focused fix for an obvious bug: a missing project folder is an expected state, yet it produces a server warning on every enrichment pass. The change only stops logging that one error case. Favicon resolution, caching, and every other failure's logging are unchanged.
Verification
Before the fix, a new focused test (
does not warn about favicons for workspace roots that no longer existinProjectEnrichmentService.test.ts) fails: it observes a warning for both a missing-folder workspace root and a genuinely broken one, when only the broken one should warn.After the fix, the same test passes, and the warning count is confined to the genuinely broken workspace root.
Commands run:
vp test run src/project/ProjectEnrichmentService.test.ts src/project/ProjectFaviconResolver.test.ts(35 tests passed)vp run typecheck(scoped to apps/server; no errors, no new suggestions on the touched files)vp linton the three changed files (clean)Not checked: no manual run of the dev server or browser verification was done, since this is a server-side logging behavior covered directly by the added unit test.