Repository navigation
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — File reads and saves now preserve filename whitespace instead of targeting a trimmed name. Existing path-containment and file-access safeguards remain unchanged, keeping the change narrowly scoped. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
Note Written by Verified in a real dev environmentverified unchanged head
main: clicking the trailing-space file link shows the ordinary file. pr: the same filename opens its distinct contents. recording: edit the leading-space file, switch to the saved trailing-space file, check the unchanged ordinary file, then reopen the leading-space edit. Not verifiednative desktop, ios/android, macos/windows filesystem behavior, other providers, and relay/tunnel connections were not exercised on this linux vm. the existing file-tree whitespace normalization is outside this pr's scope: variants collapse into one tree entry, and a whitespace-only basename caused a folder-list encoding failure on main. this verification used actual chat file links for editor access and websocket calls for the whitespace-only path; it does not claim that tree selection is fixed. main also hit a whitespace-only checkpoint encoding failure; after moving that case into a subfolder through the app terminal, the pr's real codex turn and checkpoint completed. |
9e3b8c1 to
ef73ea0
Compare



Closes https://git.cafe/pingdotgg/t3code/issues/29313
Reading
"report.txt "currently returnsreport.txt; saving it overwrites that other file. Leading whitespace fails the same way. Preserve filename whitespace through the read/write RPC inputs, results, errors, and server path resolution. Empty paths and the existing length limits, workspace confinement, symlink checks, and Git-metadata write guards still apply.This fits the focused obvious-bug exception: one valid filename silently targets another file, risking data loss. It fixes read/save targeting, separately from the duplicate file-tree entries in closed https://git.cafe/pingdotgg/t3code/pulls/22847. No UI or workspace-root schema changes.
Proof on Linux / Node v26.12.1:
vp run check:changed: all stages passed (format, lint, knip, generated GraphQL, typechecks for 35 affected/dependent packages, 37 neighboring tests).ordinary file, and saving overwrote it):{"requested":"report.txt ","directRead":"whitespace file","rpcRead":"whitespace file","ordinaryAfterSave":"ordinary file","spacedAfterSave":"edited"} {"requested":" report.txt","directRead":"whitespace file","rpcRead":"whitespace file","ordinaryAfterSave":"ordinary file","spacedAfterSave":"edited"}No native Windows/macOS run or UI claim; unsupported whitespace filename forms are excluded from Windows test rows.
Reviewed with review-loop: 2 rounds with Claude Opus 5.5 on xhigh. Reviewer verdict: approved.
Created with GPT-6.1 Sol in Codex, running in T3 Code.
Fixes #29313