fix(shared): classify workspace previews by literal filenames - #10311
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This small, well-tested fix corrects preview classification for literal filenames and folders containing No code changes detected at You can add or adjust custom eligibility rules. Learn more. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (1)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe preview extension check now evaluates the complete lowercased path. Tests cover preview paths and asset resolution when filenames or directories contain literal ChangesWorkspace preview paths
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The preview change has no established merge-blocking impact; ACP raw output remains available when a suffixed file URL is not promoted. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 3 systems. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 3 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Tested on two real Android phones (POCO F4 on Android 14, POCO M3 Pro on Android 13) with the dev client against an isolated server, comparing main with this PR. Each file was opened from an
I updated the branch with main. One gap main already has: the mobile Files screen still strips |
## What's Changed * fix(server): runs no longer get stuck by @t3dotgg in pingdotgg/t3code#15048 * fix(usage): Codex Fast and Ultrafast now cost what they bill by @t3dotgg in pingdotgg/t3code#15101 * fix(clients): a dev server left running no longer says the thread is waiting by @t3dotgg in pingdotgg/t3code#15114 * fix(web): a thread that left a shell running shows its unseen completion by @Mnigos in pingdotgg/t3code#14910 * fix(web): mod+enter starts a new thread in the background again by @t3dotgg in pingdotgg/t3code#15060 * feat(usage): show cost by token type, speed, and model detail by @t3dotgg in pingdotgg/t3code#15108 * feat(server): agents can watch a PR and get woken when checks, reviews, or conflicts need them by @t3dotgg in pingdotgg/t3code#15057 * fix(server): keep delegated review rounds on the task API by @t3dotgg in pingdotgg/t3code#15115 * fix(shared): classify workspace previews by literal filenames by @yashranaway in pingdotgg/t3code#10311 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261003.2623...v0.0.46-nightly.20261003.2632 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261003.2632
## What's Changed * fix(server): runs no longer get stuck by @t3dotgg in pingdotgg/t3code#15048 * fix(usage): Codex Fast and Ultrafast now cost what they bill by @t3dotgg in pingdotgg/t3code#15101 * fix(clients): a dev server left running no longer says the thread is waiting by @t3dotgg in pingdotgg/t3code#15114 * fix(web): a thread that left a shell running shows its unseen completion by @Mnigos in pingdotgg/t3code#14910 * fix(web): mod+enter starts a new thread in the background again by @t3dotgg in pingdotgg/t3code#15060 * feat(usage): show cost by token type, speed, and model detail by @t3dotgg in pingdotgg/t3code#15108 * feat(server): agents can watch a PR and get woken when checks, reviews, or conflicts need them by @t3dotgg in pingdotgg/t3code#15057 * fix(server): keep delegated review rounds on the task API by @t3dotgg in pingdotgg/t3code#15115 * fix(shared): classify workspace previews by literal filenames by @yashranaway in pingdotgg/t3code#10311 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261003.2623...v0.0.46-nightly.20261003.2632 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261003.2632

What Changed
Classify workspace images and browser documents by their literal filename extension, matching the existing video viewer behavior. Authored Markdown and media URLs retain their separate URL-aware parser.
The shared fix covers server asset validation and image search, web and desktop file viewers, mobile file previews, and provider image-read activity.
Why
Workspace previews strip literal
#and?characters as URL suffixes. This rejects files such asassets#archive/icon#v2.pngand accepts non-image filenames such asimage.png#notes.txt.Testing
git diff --checkpass.Checklist
Model: GPT-6 Astra
Harness: T3 code
Note
Add regression test for workspace asset previews with literal
#and?filenamesAdds an effect-based test in AssetAccess.test.ts that creates workspace files with literal
#or?in their path and verifies issued asset URLs resolve correctly. Also checks rejection of sibling files and filenames with image-like prefixes followed by non-image suffixes.Macroscope summarized f008404.