fix(web): fix folder links, sidebar search and diff symlink crashes - #671
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 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.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
…iew (#11075) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit 9ea9c3d5d2c444133e3ddff40eecf38737951589)
…en preview (#10909) Co-authored-by: exe.dev user <exedev@ropeway-swimming.exe.xyz> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> (cherry picked from commit 886c83450797c46ee84ae28fc16c2208cafa965e)
(cherry picked from commit c557bb10aa7cbb78a50df230d1e8e24af79cb662)
434e84b to
67ba1d4
Compare
Adversarial review outcome —
|
Ports four upstream web fixes from T3 Code. Part of upstream integration cycle #667, bounded at upstream
b44c1ce5d25ee0d5a5be82e380618a886c19ea96.Sources
9ea9c3d5d2c444133e3ddff40eecf38737951589886c83450797c46ee84ae28fc16c2208cafa965ec557bb10aa7cbb78a50df230d1e8e24af79cb6623fd5d6439d8fd49d173503ecda96500463a39bd2What lands
A file whose type changes to a symlink no longer crashes the diff view. A folder link from chat now keeps its breadcrumbs, drops the preview pane and reveals the folder in the tree instead of rendering a broken file surface. Sidebar search matches message content, not just titles, with a distinct pending state. Numbered jumps are gated so they stop stealing the browser's own tab shortcuts.
Conflict resolutions worth reviewing
Pylon's files are diverged, so each conflict's "theirs" side carried code from upstream commits Pylon has never adopted. Each was resolved by diffing
git show <sha> -- <file>against Pylon's version and applying only that commit's change:projectFilesQueryState.ts— theirs added adirectoryPathargument togetProjectEntriesQueryAtom. That is not part of #10909 and Pylon'slistEntries({ cwd })has no such input. Dropped; onlyProjectFileQueryState/isNotFilewas taken.FilePreviewPanel.tsx— theirs carrieduseUpdateClientSettings()and ashowsRawTextword-wrap block. Neither symbol exists anywhere in Pylon. Dropped; the commit's only real change there ispreviewPath !== null &&oncanToggleRendered.FileBrowserPanel.tsx— upstream had already reordered the entry-kind guard above the handled-reveal dedupe in a different unadopted commit. Pylon's older placement is kept; only the condition changed, to captureselectedKindand guardundefined.Sidebar.logic.ts/Sidebar.tsx— import-block conflicts, resolved additively so Pylon'sOrchestrationThreadShelland delegated-threads imports survive alongside the new ones.#12315 partial
pnpm-lock.yamldeliberately excluded. The upstream hunk was only analchemypeer-hash churn with no dependency change. The lockfile does not appear in this diff.PullRequestDetailPanel.test.tsxconflicted modify/delete — that file does not exist in Pylon, so it was not created.docs/user/keybindings.mdcontent matches upstream, rewrapped to Pylon's 100-column prose width.whenconditions added.ShortcutMatchOptions.contextisPartial<ShortcutMatchContext>, so the two new context keys break no existing consumer; all three call sites that build a full context are patched.Known limits
mod+1..9.apps/server/src/keybindings.tsonly seeds defaults for commands not already present in a user'skeybindings.json, so anyone with persisted thread-jump rules keeps them ungated until they edit them. This matches upstream, but the fix only reaches fresh configs.isMediashort-circuit so a folder namedassets.pngis detectable. Every image/video/PDF surface now issues a read; the server stats first and returns no body. Upstream accepted this cost; it has not been re-measured on Pylon.Verification
Re-run on the final head, not taken from a report:
vp test runacross the diff tree, diff rendering, project files query state, right panel store, sidebar logic and keybindings suites — 7 files, 389 tests passed.vp run -F @t3tools/web typecheckandvp run -F @t3tools/shared typecheck— both exit 0 (@t3tools/sharedconfirmed to exist, so the flag matched a real package).vp checkon the changed files — 0 errors. The 74 warnings are pre-existing React-compiler notes inChatView.tsx,Sidebar.tsx,_chat.pull-requests.tsxandFilePreviewPanel.tsx; every reported line was checked against the changed ranges and none falls inside one.Upstream co-author trailers are retained, matching the 24 prior commits on
pylonthat do the same. Behavior was verified by code reading and unit tests; the folder-link, sidebar-search and keybinding paths were not exercised in a running browser.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.