Repository navigation
Show each slice's files in the desktop's reading order - #67
Conversation
The Code tab listed files in the order the patch had them. The desktop's orderDiffFiles puts source first, each file after the changed files it imports, then the tests after the source they cover, then the files a tool wrote, each slice on its own. t3term now works the same order out once when a slice comes, finding imports in every line of a file's hunks as the desktop's diff library gives them, and comparing paths as the root collation does for ASCII. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… t3term/pull-request-file-order Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
bc31899 to
a31ca31
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…in after a theme change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e recipe Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cipe Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each slice's files now come in the desktop's reading order, so the recipe checks the order of the Rust diff's rows and of a TypeScript diff whose files import each other, and chooses the reader with a second Down now that the binary comes first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t u64::MAX and reads the Code's diff again each time it shows a minute after it came Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, the environment switcher Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…count at the highest line number Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
FAIL for head The behavior checks pass. The FAIL is the review gate: Greptile's new dotted-test finding has no reply and is unresolved. At
Regression sweep: all 13 checkout recipes pass on each build, including the Code rerun with that checkout's fixture; all 12 master recipes pass on both builds. Parent results from the preceding layer are reused by exact SHA. Unchanged captures differ only in run addresses, ages, spinners and reconnect timing, plus master's 80x24 Summary capture straddling the activity answer. That capture was taken 2.971 seconds after the request on base and 3.060 seconds on head, across the fixture's 3-second delay. A settled paired repeat has identical screens and RPC counts, in settled-summary-v2-parent/ and settled-summary-v2-head/. Shared Code steps have identical Rules: doctor and live/after-stop checks pass on valid drives. No added control reads the host without the reader asking. The feature file is updated. Local Greptile: one new unanswered thread, discussed above. No independent code defect found. Binaries driven, with LC_UUID:
Evidence: |
|
PASS for head The head and patch id are unchanged from round 1, so its behavior evidence still holds. This round checks the review gate that blocked that verdict.
Regression sweep: round 1's 13 checkout recipes pass on each build, and its 12 master recipes pass on each build. The settled Summary and linked-list repeats match in screens and Rules: doctor and live/after-stop checks pass on the reused valid runs. Local tests in round 1: 823 passed. CI on this exact head: macOS, E2E smoke, Linux build and Greptile passed. Greptile: one thread, answered and resolved; no open threads or new findings. The author's reply explains that the pinned desktop's Binaries driven in the reused evidence, with LC_UUID:
Evidence: Notes: none. No code defect found. No pull request or branch was edited, pushed, merged or closed. |
Shows each slice's files on the Code tab in the desktop's reading order instead of the patch's.
.test.,.spec., or undertest,testsor__tests__), each after the source file whose name it has.dist,build,vendor,__generated__or__snapshots__, by path..claude/skills/verify-t3term/features/pull-request-code.mdnow checks the order of the Rust diff's rows and of a TypeScript diff whose files import each other, and picks the reader with a second Down now that the binary comes first (f863b6e).Stacked on #66.
Both come from the fixture server with an invented TypeScript patch whose files are out of reading order.
Decision log
What I noticed. #66's Code tab listed files in patch order, which its Known limits named. The desktop orders them so a reviewer reads the change, then what proves it, then what a tool wrote.
How I confirmed it. In the pinned T3 source (f570bd2):
orderDiffFilesand its helpers are in apps/web/src/components/pullRequest/pullRequestFileOrder.logic.ts:1-197.additionLinesanddeletionLines. In @pierre/diffs 1.5.2, the version T3 pins, a partial patch's unchanged lines go on both sides (dist/utils/parsePatchFiles.js:208-222). So an import in an unchanged line counts. T3's patch to that library doesn't touch the parser.localeComparesorts every ASCII case in the collation test the same way t3term does.The desktop's test file (pullRequestFileOrder.logic.test.ts) is ported case for case.
Options.
IMPORT_SPECIFIERpattern does, with no new dependency. Rejected: adding theregexcrate for one pattern.Button.tsxbefore__tests__anda_baftera-b, unlike the desktop. Rejected: full Unicode collation, which needs a new dependency for paths outside ASCII.What review changed. Greptile reviewed it twice, the second time after #66's cache fix merged in at a31ca31, and found nothing to change.
4195b13 merges #66 at 8073497, which brings #66's fix for a hunk that removes nothing at the highest line number (8073497) and its test, with the same patch.
Known limits.
éwithe.from,importorrequire(. Rust'suseandmod, Python's unquoted imports and the like don't count, as on the desktop.Tests
../, index files, the name fallback and its ambiguity,.jsfor.ts,requireand bare imports, cycles, tests by their source, orphan tests, and the same order from any arrival order..jsspecifier that only the path resolves, tests ordered by source against path order, the specifier matcher's edges, and the collation against Node's.files_show_folded_and_each_unfolds_into_its_hunksnow expects reading order..jscase and the source-position case.🤖 Generated with Claude Code


Confidence Score: 5/5
The PR appears safe to merge, with the previously reported dotted-test ordering issue remaining as a non-blocking concern.Fix with agent prompt
Summary
The Code tab now computes each slice's reading order once when it arrives.
No new findings were accepted. The full PR diff was reviewed because the previous and current revisions have different merge bases with the target.
Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR A[Slice arrives] --> B[Parse patch] B --> C[Keep last file for each path] C --> D[Order source files by imports] D --> E[Append tests by source position] E --> F[Append generated files by path] F --> G[Store slice order] G --> H[Append without moving earlier slices]Reviews (6) · Last reviewed commit: "Merge the code-tab branch at 820c03f, wh..." · Reviewed by Greptile