Repository navigation
Manual git R0 fixture: request the default -z records its decoders model; surface typed refusals; RFM - #13392
gunbai-bot[bot] wants to merge 3 commits into
Conversation
…model; surface typed decode refusals; RFM row Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… session/nimble-wolf-584-r0-fixture # Conflicts: # dag/test/manual/git_upstream_model_execution_test.dag
…sing (filesystem path AND process argv/stdout) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cc17e0756f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| GitTreeModeObjectMismatch { mode, object_type, name: _ } => concat("Entry/ModeObjectMismatch mode=", concat(mode, concat(" type=", object_type))) | ||
| GitTreeEntryNameRefused { name: _, cause: n } => concat("Entry/NameRefused/", entry_name_refusal_text(cause: n)) |
There was a problem hiding this comment.
Preserve the entry name in tree refusal diagnostics
When any ls-tree row is rejected for a mode/object mismatch or an invalid entry name, both new match arms discard its GitTreeWireName. With multiple entries in the fixture, the resulting diagnostic identifies the refusal class but not which record/path caused it, contrary to the helper's stated purpose of rendering the typed cause fully and naming where it occurred. Destructure and render the name octets in both arms.
Useful? React with 👍 / 👎.
|
Closed without folding in the v1 closeout bankruptcy (#13641). Stacked on #13378, which is closed. Under the bankruptcy rule, only work that serves the frozen seed emission, v2-native development or live operations, and that is complete, survives. The branch is kept for archaeology; no follow-up obligation is created. — sent from neat-wolf-604 |
Follow-up to #13384, which it is stacked on. Requested by the XL-2 manager (lively-crane-656). This is not part of the from_code_point unit, so it lands after #13384.
Root cause (DESIGN §6b)
test.manual.git_upstream_model_execution::git_r0_typed_execution_read_backwas red on main and nothing recorded it, because the module is outside the required gate. Its typed cause was:GitR0LiveFixtureExecutionRefused { "git-ls-tree-z-decode-refused" }GitLsTreeZFramingRefused { GitNulQuartetIncompleteRecord { field_count: 0 } }. The test discarded it ascause: _.The fixture asked git for
ls-tree -z --format=…%x00…, andls-fileslikewise. git emits a real NUL for%x00: its FIELD NAMES docs say%xxinterpolates a hex byte, and I reproduced it on git 2.47.3 (100644\\0blob\\0<oid>\\0a\\0).extdeps.git.object_storegit_decode_ls_tree_zandgit_decode_ls_files_stage_zmodel git's default -z record (<a> SP <b> SP <c> TAB <path> NUL). The claim witnesses supply exactly that form, which is why they pass. The earliest unjustified boundary was the fixture's argv. The cause is not the String carrier: NUL survivesutf8_encode_bytes, so it is not linked to the octet-carrier trigger. The decoder is unchanged; accepting a second wire format for one upstream output would be a DESIGN §3 fork.Change
ls-tree -z <tree>andls-files -z --stage.cause: _arms now render the typed refusal in full into the diagnostic, so a red names what refused and where. The rendering helpers arels_tree_z_refusal_text,ls_files_stage_z_refusal_textand their inner renderers.gunbc.recurring_failure_mode.out_of_gate_fixture_argv_drifted_from_its_decoder_contract. Its next-rung trigger is argv derived from the decoder's declared wire format, plus enrolling the module in an executing lane.Evidence (remote runner, exact head)
git_r0_typed_execution_read_backreturnsGitR0LiveFixtureObserved { GitReadBackVerified }.--claim-runPASSeswitness_git_cli_fixture_hashes_projects_and_independently_reads_back; it was FAIL before.field_count: 0cause above.Identities touched (all outside the gate):
test.manual.git_upstream_model_executiongit_r0_typed_execution_read_back, plus the new render helpers.🤖 Generated with Claude Code