Skip to content

Manual git R0 fixture: request the default -z records its decoders model; surface typed refusals; RFM - #13392

Closed
gunbai-bot[bot] wants to merge 3 commits into
session/bright-fox-380-fcpfrom
session/nimble-wolf-584-r0-fixture
Closed

gunbai-bot[bot] wants to merge 3 commits into
session/bright-fox-380-fcpfrom
session/nimble-wolf-584-r0-fixture

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

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_back was 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" }
  • inner cause: GitLsTreeZFramingRefused { GitNulQuartetIncompleteRecord { field_count: 0 } }. The test discarded it as cause: _.

The fixture asked git for ls-tree -z --format=…%x00…, and ls-files likewise. git emits a real NUL for %x00: its FIELD NAMES docs say %xx interpolates a hex byte, and I reproduced it on git 2.47.3 (100644\\0blob\\0<oid>\\0a\\0).

extdeps.git.object_store git_decode_ls_tree_z and git_decode_ls_files_stage_z model 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 survives utf8_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

  • The fixture now asks git for its default records: ls-tree -z <tree> and ls-files -z --stage.
  • Both cause: _ arms now render the typed refusal in full into the diagnostic, so a red names what refused and where. The rendering helpers are ls_tree_z_refusal_text, ls_files_stage_z_refusal_text and their inner renderers.
  • New RFM 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)

  • The probe over git_r0_typed_execution_read_back returns GitR0LiveFixtureObserved { GitReadBackVerified }.
  • --claim-run PASSes witness_git_cli_fixture_hashes_projects_and_independently_reads_back; it was FAIL before.
  • The rendered-cause path is the same rendering the pre-fix probe used to get the field_count: 0 cause above.

Identities touched (all outside the gate): test.manual.git_upstream_model_execution git_r0_typed_execution_read_back, plus the new render helpers.

🤖 Generated with Claude Code

…model; surface typed decode refusals; RFM row

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Base automatically changed from session/nimble-wolf-584 to session/bright-fox-380-fcp October 5, 2026 11:58
Brian Searls and others added 2 commits October 5, 2026 13:31
… 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>
@gunbai-bot
gunbai-bot Bot marked this pull request as draft October 9, 2026 17:14
@briansrls
briansrls marked this pull request as ready for review October 9, 2026 18:37
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T18:39:57.590475Z cc17e07 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +140 to +141
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))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@gunbai-bot

gunbai-bot Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

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

@gunbai-bot gunbai-bot Bot closed this Oct 9, 2026
@gunbai-bot gunbai-bot Bot mentioned this pull request Oct 10, 2026
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.

0 participants