Skip to content

Dissolution upstream P5 — std/node.dag fold_node catamorphism (T-1 substrate-extension) [#3243 §1.1] - #3312

Merged
briansrls merged 2 commits into
mainfrom
session/cool-deer-39
May 18, 2026
Merged

briansrls merged 2 commits into
mainfrom
session/cool-deer-39

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session cool-deer-39.
Pushing to session/cool-deer-39 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.

@briansrls
briansrls marked this pull request as ready for review May 18, 2026 17:51
@briansrls

Copy link
Copy Markdown
Contributor Author

Verification (cool-deer-39 / bcf7b8b82)

Cross-checked the codex review against current files:

  • src/v4/std/node.dag: NodeFold<R> + fold_node at lines 43–50; node_well_formed uses fold_node with NodeFold { … } at lines 122–133.
  • docs/audit/dissolution-inventory.md §1.1 P5 row: documents substrate landed v4 std/node: add fold_node catamorphism #3297 and calls out the open 03_resolve cascade (merge_binding_self + three harvest walkers).
  • src/v4/DECISIONS.md CP-1b item 12: forward text matches the same split (landed fold_node / remaining resolver cascade).
  • src/v4/compiler/03_resolve.dag: merge_binding_self (94), add_module_named_exports (99), add_arrow_domain_named_params (113), add_bind_atom_binder (140) unchanged — still the documented follow-on, not contradicted by this PR.

Action: No fix commit — the review is an APPROVE with no requested edits; the diff is documentation-only and consistent with substrate state.

Merge readiness (GitHub): mergeable=MERGEABLE, not draft, CI on the latest run shows successful ci / v4 / fmt / affected where applicable. Dashboard api-review rollup still shows only one posted review (codex dashboard-only artifact; parsed verdict not counted as a formal APPROVE), so the ≥2 distinct approving providers bar is not met yet — needs a second provider (e.g. openai-pro) before merge-readiness per program policy.

— sent from cool-deer-39

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Review metadata

  • Provider / model: codex / unknown
  • Commit: bcf7b8b8 · Trigger: schedule
  • Thinking: 242s wall

Non-blocking — Strengths

  • docs/audit/dissolution-inventory.md Docs-only P5 reclassification matches the inspected substrate: NodeFold, fold_node, and the node_well_formed consumer exist, and the remaining 03_resolve cascade is explicitly bounded by a scoped algebra trigger.

✅ No blocking concerns.

@briansrls

Copy link
Copy Markdown
Contributor Author

Response to @briansrls api-review relay (codex / bcf7b8b8)

Independent verification on bcf7b8b82: The relayed “strengths” bullets match the tree.

  • P5 row in docs/audit/dissolution-inventory.md: §1.1 line for P5 states substrate v4 std/node: add fold_node catamorphism #3297 (NodeFold, fold_node, node_well_formed consumer) and bounds the open work as the 03_resolve cascade with an explicit scoped binding-harvest fold_node algebra gate (no silent broadening of harvest scope).
  • Substrate in src/v4/std/node.dag: NodeFold / fold_node at 43–50; node_well_formed at 122–133 passes a NodeFold whose init is node_locally_well_formed and step conjoins child cata results — consistent with the inventory text.

Action: No fix commit — the review records no blocking concerns; there is no requested edit to implement on this PR.

Merge readiness (dashboard-ops reviews gunb-ai/gunbc#3312 + gh): GitHub mergeable=MERGEABLE, not draft, CI rollup passing for this HEAD. No REQUEST_CHANGES in the dashboard rollup. The program ≥2 distinct dashboard APPROVE bar is not satisfied yet: rollup still shows 0 parsed approvals (codex artifact remains verdict: unknown / dashboard-only), and openai-pro was still running on this SHA at last poll — wait for that review to post with a parsed APPROVE (or operator policy) before treating merge criteria as fully green.

— sent from cool-deer-39

Refresh §2.2 line-number citations after NodeFold/fold_node substrate
growth; tighten DECISIONS CP-1b item 12 INVARIANTS cross-ref to the P5
Dispatch-Discipline Mechanisms (b) home-of-record.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Response to openai-pro REQUEST_CHANGES (review / stdout artifact truncated in relay)

What I verified: On bcf7b8b82, docs/audit/dissolution-inventory.md §2.2 std/node.dag bullets still carried stale parenthetical line anchors (e.g. node_well_formed (113) while src/v4/std/node.dag has that fn at 122 after the NodeFold / fold_node substrate growth). Same drift on the neighboring all_edges_*, name_occurrences / all_names_distinct, connective_edge_discipline, edge_is_*, edges_conform, and node_locally_well_formed rows — the audit text no longer finger-pointed at the cited lines.

Fix (pushed 86a6fd608): Re-synced all those §2.2 line numbers to the current src/v4/std/node.dag on main+branch. Also tightened DECISIONS.md CP-1b item 12 so the SG-0 census gate cites INVARIANTS.md §P5 — Dispatch-Discipline Mechanisms (b) (explicit section + mechanism label), instead of the ambiguous shorthand INVARIANTS §P5 Mechanism (b).

Merge readiness: New HEAD will need fresh api-review passes on 86a6fd608; GitHub was MERGEABLE / CI green on the prior SHA before this push. I did not run gh pr merge.

— sent from cool-deer-39

@briansrls

Copy link
Copy Markdown
Contributor Author

Verification of codex APPROVE (86a6fd608, review #14225)

Cross-check (cool-deer-39 tree): The diff is still docs-only on P5 receipts. I spot-checked the two surfaces codex named:

  1. docs/audit/dissolution-inventory.md §2.2 std/node.dag parentheticals against src/v4/std/node.dag on this HEAD — anchors line up on the fn/type opens (connective_edge_discipline 57, edge_is_named 67 / edge_is_positional 73, all_edges_named 80 / all_edges_positional 86, name_occurrences 91 / all_names_distinct 99, edges_conform 107, node_locally_well_formed 115, node_well_formed 122). The P5 queue / §2.3 cascade text still names the 03_resolve binding-harvest follow-on with the scoped fold_node algebra gate — no dilution of that obligation.

  2. src/v4/DECISIONS.md CP-1b item 12 — still states landed fold_node / NodeFold (v4 std/node: add fold_node catamorphism #3297), optional is_empty_conj_root follow-up, and remaining cascade in 03_resolve; SG-0 census pointer now reads INVARIANTS.md §P5 — Dispatch-Discipline Mechanisms (b), matching the INVARIANTS home-of-record wording.

Action: No further commit from this thread item — codex’s APPROVE matches the live anchors and the stated dissolution posture.

Merge readiness (dashboard-ops + gh): GitHub mergeable=MERGEABLE, not draft, CI on the latest run SUCCESS (fmt, affected, ci, v4). Dashboard rollup on this HEAD shows codex → approve (1/2 toward the two-provider rule). It still lists openai-pro → request_changes, but that verdict is attached to the prior commit bcf7b8b82 (review #14219), not 86a6fd608; the follow-up commit 86a6fd608 already addressed the concrete doc↔substrate anchor drift that motivated that RC. Program bar is not fully green yet: need a fresh openai-pro pass on 86a6fd608 (or operator disposition) so the rollup clears stale REQUEST_CHANGES and reaches ≥2 distinct APPROVE without RC. No gh pr merge from this worker.

— sent from cool-deer-39

@briansrls

Copy link
Copy Markdown
Contributor Author

Verification of claude-opus-4-7 APPROVE (86a6fd608, review #14227)

Spot-check against this HEAD: claude’s bullets match the files.

  • docs/audit/dissolution-inventory.md: §1.1 P5 (~141) still splits substrate landed v4 std/node: add fold_node catamorphism #3297 (NodeFold / fold_node, node_well_formed consumer) from the open 03_resolve cascade with the scoped binding-harvest algebra constraint. §2.2 std/node.dag parentheticals still line up with src/v4/std/node.dag opens for the cited symbols (post-anchor-fix commit).
  • src/v4/DECISIONS.md: CP-1b item 12 still records landed fold_node, optional is_empty_conj_root follow-up, remaining resolver cascade, and the INVARIANTS.md §P5 — Dispatch-Discipline Mechanisms (b) SG-0 census pointer (v3 hand-Rust scope only).

Action: No commit — APPROVE with no change requests.

Merge readiness (dashboard-ops reviews + gh): On 86a6fd608, rollup shows 2/2 distinct parsed APPROVEs (claude + codex, reviews #14227 / #14225), GitHub mergeable=MERGEABLE, not draft, CI passing. The rollup still flags REQUEST_CHANGES from openai-pro, but that artifact (#14219) is pinned to the previous SHA bcf7b8b82; the follow-up commit 86a6fd608 addressed the concrete doc↔line-anchor drift. Net: substance is merge-ready on GitHub + CI + dual APPROVE, but the dashboard ready bit stays false until openai-pro re-runs on 86a6fd608 (or an operator clears/supersedes the stale RC). No gh pr merge from this worker.

— sent from cool-deer-39

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Review metadata

  • Provider / model: codex / unknown
  • Commit: 86a6fd60 · Trigger: schedule
  • Thinking: 267s wall

Non-blocking — Strengths

  • docs/audit/dissolution-inventory.md Docs-only P5 reclassification matches the inspected substrate: fold_node and node_well_formed exist, and the remaining 03_resolve cascade is bounded to a scoped binding-harvest follow-up.

✅ No blocking concerns.

@briansrls

Copy link
Copy Markdown
Contributor Author

Verification — @briansrls relay (codex / 86a6fd60, “No blocking concerns”)

On 86a6fd608 (matches relay prefix 86a6fd60):

  • docs/audit/dissolution-inventory.md §1.1 P5 (~141): Still documents v4 std/node: add fold_node catamorphism #3297 substrate (NodeFold / fold_node, node_well_formed consumer) and the open 03_resolve cascade with the scoped binding-harvest fold_node algebra gate — consistent with src/v4/std/node.dag (fold_node 47–50, node_well_formed 122–133).
  • Relay strengths: Accurate; no doc drift vs live std/node.dag on this HEAD (§2.2 anchors were re-synced in the same commit series).

Action: No fix commit — non-blocking APPROVE / no change requests.

Merge readiness: gh: OPEN, mergeable=MERGEABLE, not draft, CI rollup SUCCESS (fmt, affected, ci, v4). dashboard-ops reviews: 2/2 APPROVE (codex + claude) on 86a6fd608; rollup still lists openai-pro → REQUEST_CHANGES from review #14219 on prior SHA bcf7b8b82 (stale vs current head — already addressed by 86a6fd608 anchor/citation commit). Dashboard aggregate ready: false until that artifact is superseded or openai-pro re-runs on HEAD. No gh pr merge from this worker.

— sent from cool-deer-39

@briansrls
briansrls merged commit a73e02b into main May 18, 2026
7 checks passed
@briansrls
briansrls deleted the session/cool-deer-39 branch June 1, 2026 18:42
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