Skip to content

recurring_failure_mode.dag conflicts on every integration; resolution silently drops a block's tail - #9941

Closed
briansrls wants to merge 5 commits into
mainfrom
session/quiet-cat-378
Closed

briansrls wants to merge 5 commits into
mainfrom
session/quiet-cat-378

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session quiet-cat-378.
Pushing to session/quiet-cat-378 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

Brian Searls and others added 5 commits September 1, 2026 05:54
…ows on the two design ledgers

The two ledger carriers grow by appended rows, and every row was a multi-line block
ending in a suffix every other row also ends in. A three-way merge never includes a
shared suffix in the conflict region, so two lanes appending two independent rows get
one tail below the markers for two half-blocks above them, and the correct additive
resolution gives the first row's closing lines to the second.

Rows are now one line each. A one-line row has no tail to lose; the only suffix a merge
can factor out is the blank separator, which carries nothing.

Measured, discriminating pair, gunbc built from source at d0009ca:
  RED  byte-exact mis-resolved file -> module index refused, exit 1,
       "dag/gunbc/recurring_failure_mode.dag:65912-65913: expected expression, found Eq"
  GREEN same two-lane merge against the transformed carrier, same additive resolution ->
       parses, evaluates, and both appended rows render in the projected ledger.

So the class is LOUD, not silent: claim_executor phase 1, the .dag parse sweep over
src/v1, dag and src/v2 on the required witnesses lane, is the first phase in the job and
a parse error there is a phase failure. No wall is owed and none is written.

Strings carried byte-for-byte; regen writes exactly one added line to DESIGN.md and one
to docs/design-ledgers.md, both the new failure-mode row.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ae8qnkptQ8dhJgbsdJB6cZ
The annotation claimed construction of the one-line row shape. That is true of the
thirty rows as they stand and false of the file: nothing enforces row shape on either
carrier, so one hand-authored multi-line row restores the two-line tail and the whole
geometry. Writable invalid state is mechanically preventable at best, and claiming
otherwise is 4b(1) rung inflation sitting in the paragraph an appender reads first.

Next-rung trigger named as the capability, not an artifact: a row-shape obligation
decided for every declaration of a growth-surface type. data_decl_type_facts already
reads a declared type per declaration; the missing producer is one carrying each
declaration's source EXTENT, sufficient to refuse a multi-line row at authoring time.

Also records the complete loss-state set, all three measured at d0009ca rather than
the two previously run: losing both tail lines and losing `}` alone are PARSE refusals
at the module index; losing `evidence: [],` alone is a RESOLVE refusal, "missing
required field 'evidence'". Nothing silent in the set.

Annotation-only: projections unchanged, no regen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ae8qnkptQ8dhJgbsdJB6cZ
A live instance of the class this branch is about: main landed
mitigation_injected_where_judgment_declined (#9902) into the same append points.

Because this branch had already reshaped the rows, the conflict arrived as WHOLE
declarations on both sides rather than two half-blocks over one shared tail, and the
resolution was additive with nothing severed. Main's row is kept, converted to the
one-line shape, at main's source position; main's roster prefix is preserved and this
branch's row appends after it. All 30 of main's `authored` strings carry byte-for-byte.

DESIGN.md and docs/design-ledgers.md were left unmerged by the generated-artifact merge
driver and are REGENERATED, not hand-resolved: generated_artifact_gate main_wet, exit 0,
35 artifacts written. Against origin/main both projections differ by exactly 1 added
line and 0 deleted — this branch's one new row.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ae8qnkptQ8dhJgbsdJB6cZ
Resolves the recurring_failure_mode.dag conflict at identity grain: our
one-line row shape, main's grown state_space_conflation authored bytes
(#9906) carried verbatim. docs/design-ledgers.md regenerated from the
merged authorities, not byte-resolved.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01STHUYKae35MnDiXb6FP1nN
@briansrls
briansrls marked this pull request as ready for review September 1, 2026 14:16
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 1, 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-09-01T14:35:12.068801Z e2f896f 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.

@gunbai-bot

gunbai-bot Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Closing without rebasing. This PR re-proposes content that is already on main, and following the conflict remedy would revert other lanes' work behind a green check.

The content landed. #9898 squash-merged at 11:53:05Z. Verified on current origin/main: dag/gunbc/recurring_failure_mode.dag carries 33 declarations including merge_region_excludes_shared_tail, and dag/gunbc/rung_drop.dag carries 11 one-line RungDrop rows.

Why the branch still reads as unmerged. Squash-merge carries CONTENT, not ANCESTRY — the branch's commits never become ancestors of main, so git merge-base --is-ancestor reports the branch unmerged while git grep finds every declaration there byte-identical. Both answers are true of different questions.

What rebasing would have done. git diff --stat origin/main session/quiet-cat-378 is 37 files, +173 / −3220, reverting work this branch never touched — src/v2/workflow/local_repo_wet_terminal.dag (−313), dag/test/claim/tokenize/source_text_ingress_test.dag (−80), src/v2/test/floor_changed_witness_test.dag, src/v2/workflow/witness_admission.dag and others, i.e. #9903 and neighbours that landed after the squash.

The report was true and its remedy was wrong. It correctly detected a stale branch and prescribed the fix for unlanded work. The "blocks merge" line is also incorrect here: no other work depends on this PR.

Standing guidance for this fleet: after a squash-merge, close the auto-opened successor rather than rebasing it, and verify the landing on origin/main by content — the rows or declarations you added are present — rather than by whether the branch looks merged.

@gunbai-bot gunbai-bot Bot closed this Sep 1, 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.

1 participant