Repository navigation
Conversation
There was a problem hiding this comment.
Ultimator's review of d363d04
The change preserves the engine's whole-file text cursor through the native adapter and exposes it as the query continuation; structured pagination remains unchanged. Changes requested: enabling text pagination exposes the CLI's deferred-content collection to pending-frame overflow on large patches. At d363d04, nix-syntax passed; the other ten CI checks were running or queued when inspected, and no local checks were run.
1 issue: 1 bug
No issue is open since the review of b5b3c50.
Reviewed in 5m 25s · Session · @ultimator-ai review reviews again · @ultimator-ai fix fixes the open issues
There was a problem hiding this comment.
Ultimator's review of b5b3c50
The CLI now consumes and prints each text PATCH page's content before requesting its continuation, fixing #1's accumulation of unread transfers; the extracted query_page helper preserves the existing decoding path for other queries. Approved at b5b3c50 with no new findings; all eleven exact-head CI checks were queued when inspected, and no local checks were run.
No issues found · 1 resolved
Reviewed in 38s · Session · @ultimator-ai review reviews again · @ultimator-ai fix fixes the open issues
b5b3c50 to
11d45b7
Compare
11d45b7 to
9d3b878
Compare
A
PATCH_TEXTquery whose patch is larger thanmax_bytessilently drops files. The engine stops at the last whole file, setsGIT_PATCH_TRUNCATED, and computes where to resume. Then:native_patchreturnsPatchResult::Text(bytes)and drops the response flags and the cursor.QueryCursor::Start, so the page has noQUERY_PAGE_MORE.docs/design/git.md says a non-empty continuation cursor is the only sign that more remains. So clients see a complete patch: the TypeScript SDK never sets
GIT_PATCH_TRUNCATED, andyas git diff -pprints only the first page.The engine now returns the text cursor next to the text, and
PatchResult::Textcarries it. The server answers withQueryCursor::Patch { path, position: 0 }, which the engine already reads as "resume after this file". A text page cannot stop mid-file, so the position is always 0. Structured mode is unchanged. Clients that already page structured patches page text patches the same way:appendPatchCursorin the SDK andquery_allin the CLI.Tests:
text_patch_cut_at_max_bytes_resumes_from_its_cursor(engine): with a budget of one file, it follows cursors until there are none, and the pages concatenate to the unbudgeted patch.cut_text_patch_page_carries_a_patch_cursor(server adapter): a cut page returns the first file and aPatchcursor naming it. With the oldStartmapping it fails.cargo test -p yas-git --test engine,cargo test -p yas-server --lib,cargo clippy -p yas-git -p yas-server --all-targets -- -D warningsandcargo fmt --checkpass.Tag
@indentto continue the conversation here.