Skip to content

Preserve raw empty-object bytes while assembling streamed tool arguments - #330

Merged
acoliver merged 3 commits into
mainfrom
fix326-framing
Oct 4, 2026
Merged

acoliver merged 3 commits into
mainfrom
fix326-framing

Conversation

@acoliver

@acoliver acoliver commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Proven product defect

The shared ToolCallPartDelta::apply treated received raw "{}" as an initial placeholder and replaced it with the next fragment. This can discard valid argument bytes or erase a malformed prefix. The fix distinguishes a typed initial empty-object placeholder from raw received bytes and appends raw fragments without parser repair, guessed fields or replay.

Five compiled current-route regressions cover {} plus whitespace, split braces, concatenated malformed objects, empty/partial/array arguments, interleaved calls and reasoning, split UTF-8, request boundaries and typed initialization. Two baseline byte assertions fail; all five pass on candidate 6d142ae9. The regenerated vendor patch and unchanged strict provenance comparisons are bound to the actual delta.

Relation to #326

This investigation found a current owned-code defect. The original historical read_file empty-argument cause remains unestablished. Its terminal envelope has no framing evidence, and no accepted historical request was replayed. This PR must not be represented as proof of that historical provenance.

Verification and remaining gates

MSRV/stable root/xtask gates, owning model/Responses checks and all 12 existing SSE tests passed locally. Independent initial review is active; no approval yet. Exact-head CI, strict release/source/extracted acceptance and final candidate runtime proof remain pending.

Negative receipts remain: local aggregate release fixtures failed with ENOSPC. An extra direct-core all-feature clippy invocation reproduces nine unchanged baseline lints; it is not green. Root and established direct model/Responses clippy passed. No lint rule, threshold, assertion, scanner exclusion, compatibility allowance or replay policy was weakened. Raw evidence is under evalwork/results/pr-landing-20261003/fix326-evidence/.

@acoliver

acoliver commented Oct 4, 2026

Copy link
Copy Markdown
Contributor Author

Independent review found no introduced defect in the narrow seven-path raw-byte preservation change. It also reproduced a separate pre-existing Responses item-lifecycle defect, now #331: mismatched item IDs and contradictory done arguments can fold into a successful call. This PR does not claim to repair that boundary or establish historical #326 provenance.

Exact 6d142ae9 CI passed eight checks. A locally rebuilt release ran a fresh authenticated task, but productive acceptance was incomplete: the model guessed a replace digest, strict validation rejected it, and no edit/post-edit tests occurred. Those receipts remain intact.

Native Sol is now composing this unchanged reviewed scope onto newly landed compaction main 621a51a5, verifying complete source mappings, exact-source gates and a different fresh authenticated task. No accepted request is replayed. Fresh composed-head CI/current-main release binding will be required; source rules/assertions remain unchanged.

@acoliver
acoliver merged commit 638ae7b into main Oct 4, 2026
9 checks passed
@acoliver

acoliver commented Oct 4, 2026

Copy link
Copy Markdown
Contributor Author

Merged at 638ae7b4d5e1cb5114d0561747f37de06165c7b2. All seven independently reviewed fix paths remain byte-identical to 6d142ae9; every other tracked record equals landed compaction main 621a51a5. No composition conflict or source-scope expansion occurred.

The composed source passed MSRV/stable owning/root gates and a rebuilt release authenticated display-formatting task: actual verified-digest edit followed by all three unchanged tests passing. The earlier failed digest task is retained separately. Fresh run 37178167865 passed eight checks; actual generated checkout 1ce3bd04 has the exact shipped tree and all 16 strict release/extracted phases passed. Source artifact ID 11294203913 keeps its actual generating commit.

Local failed ENOSPC and inherited extra direct-core clippy receipts are not relabelled green. Historical #326 empty-call provenance remains unestablished. Separate pre-existing item-framing defect #331 remains open. Final actually merged-main build and a new authenticated task are running; that result is not claimed yet.

@acoliver

acoliver commented Oct 4, 2026

Copy link
Copy Markdown
Contributor Author

Final actually merged-main usability passed at 638ae7b4d5e1cb5114d0561747f37de06165c7b2. Native Cargo release invocation succeeded on that HEAD; Cargo reused the complete-tree-identical e309 artifact, with original code-generation provenance retained rather than claiming new codegen. Final binary SHA-256: d05118dc8581cf6fbec3dd0c28fba0d4ed5bfa58be3cb4b9da967c6ae6f06a10.

One new authenticated Sol300000/localoauth task executed eight actual tools across nine rounds: read fixture/tests, demonstrate one expected baseline failure, calculate actual SHA-256, make a verified replacement, run the same three unchanged tests successfully and read back the edit. Real framed SessionStore reconstruction validates every checkpointed call and completed suffix. Selected live transcript, durable look-back and separate nine-call cache observations are preserved. No accepted request replay or manual completion.

No product source changed. The original dirty outer checkout is untouched. The PR queue is empty. Remaining qualifications: #331 is unresolved, historical #326 provenance unknown, prior failed digest task and local ENOSPC/unrun package receipts retained. Final report and machine manifest: evalwork/results/pr-landing-20261003/final-main-report.md and final-main.json.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant