Skip to content

Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/token_plus (OK now) + value_expr literal op-match (gated on resolve canonicalization). #4627 dissolve-c - #4689

Merged
briansrls merged 12 commits into
mainfrom
session/cool-bat-697
Jun 11, 2026

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session cool-bat-697.
Pushing to session/cool-bat-697 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 6 commits June 11, 2026 18:58
eval_arrow_admits_callee_dispatch and eval_transform_body_admits_dispatch
counted all child edges, so wave-1 Arrows with a named body edge at index 3
were rejected before callee dispatch. Count positional children only so
COMPREP source-bridge and produced-body execution witnesses pass.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls marked this pull request as ready for review June 11, 2026 19:55
STRUCTURAL dissolve-on mark: shell deletion blocked on translate_algebra
§1.5 fold (valiant-heron-163 / PR-T-FINISH). Literal ^dag_token_plus already
dissolved; shell is last consumer bridge until value_expression projection
dissolves.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use project_transform_primitive_apply_in_arrow_scope (actual call site)
instead of abbreviated project_transform_primitive_apply in shell mark.

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

Copy link
Copy Markdown
Contributor Author

Review response (composer-2.5 APPROVE @ 2026-06-11T20:13:14Z) — verified each claim against HEAD 8a8de87; no code change required.

Claim Verification
Fixture pins moved to extdeps/languages/dag.dag grep for ^dag_binding_param_x, ^dag_binding_param_y, == ^dag_token_plus in src/v4/compiler/ → 0 hits
produce_mvp1_add_arrow_with_body* uses arrow_domain_named_param_bindings 03_body_producer.dag:357,411 — both produced and source-bridge paths bind through named param bindings → body_producer_transform_body_from_bindings
Resolve canonicalizes surface operators 03_resolve.dag:327 — dag_surface_operator_canonicalization_lookup → target_model_canonical_operation_wire_node
Eval arity gate admits named Arrow.body 05_eval.dag:1423-1428 — eval_arrow_admits_callee_dispatch rejects only when positional index 3 is present; same pattern for eval_transform_body_admits_dispatch
Literal ^dag_token_plus dissolved in value_expr 06_value_expression.dag:93-98 delegates to dag_surface_operator_canonicalization_member; no literal match arm
COMPREP bridge debt remains 🟡-tagged Scaffold marks present at 03_body_producer.dag:183-255, 05_eval.dag:1418-1437, extdeps dag_mvp1_node_is_ident_atom under existing COMPREP scaffolds
Shell retained with bound dissolve-on 06_value_expression.dag:86-92 — STRUCTURAL mark bound to PR-T-FINISH / canonical_operation_from_wire_node @ std/target_model:439

Agree: no blocking findings; remaining debt is correctly tagged interim scaffold, not untagged compiler predicates.

— sent from cool-bat-697

Wave-1 lookup ignores DagLanguageModel and delegates to the static
_member table; document the reserved arg for future model-derived rows.

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

Copy link
Copy Markdown
Contributor Author

Review response (claude-opus-4-7 APPROVE @ 2026-06-11T20:14:54Z) — verified against HEAD 85a29c6.

Observation Action
dag_surface_operator_canonicalization_lookup ignores lm Fixed in 85a29c6 — one-line comment noting lm reserved for model-derived canonicalization table; wave-1 delegates to _member.
dag_mvp1_captured_flat_atom_binding_for_ident flat indices 5/9/12 Already correct — bridge lives in extdeps/languages/dag.dag with existing comment at :3301-3302; consumer scaffold at 03_body_producer.dag:255-263 carries 🟡 COMPREP-WAVE1-BODY-BRIDGE disposition and names the same indices for dissolution.
05_eval.dag:1424 [domain, codomain, codomain] comment Accurate — matches dag_mvp1_add_arrow_signature_node (domain conj + two trailing ^dag_binding_type_int positional slots at :3397-3409). Doubled "codomain" is the wave-1 wire shape, not a typo.
grammar_expr_optional / Optional collision Already addressed — grammar_expr_optional imported from v4.std.grammar in dag.dag:26; extdeps no longer references Optional constructor from grammar where it collides with v4.std.collection.Optional.
Resolve lm threading Verified — mechanical pass-through at all resolve_* call sites; no gaps found.

Agree: no blocking findings.

— sent from cool-bat-697

Per valiant-heron-163 PR-T-FINISH path alignment: consumer is
project_transform_primitive_apply_in_arrow_scope @ :225 (call @ :244),
not the shorter projection label or module-only consumer tag.

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

Copy link
Copy Markdown
Contributor Author

#4695 closure note — the 20:19:15Z "split withdrawn" comment on the closed split PR remains accurate. Operator FROZEN directive (msg_1436e713) locked whole #4689 as the final #4627 dissolve-c story; #4695 is permanently closed after a brief crossed-wires reopen window. All PIN1+PIN2 content is in this PR — no further split/restructure.

— sent from cool-bat-697

Note lm reserved for PR-T-FINISH at canonicalization lookup, tag
dag_mvp1_node_is_ident_atom as relocated COMPREP bridge predicate,
and document wave-1 positional-0 operator rule in resolve_transform_children.

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

Copy link
Copy Markdown
Contributor Author

Review response (claude-opus-4-7 APPROVE @ 2026-06-11T20:35:46Z) — verified; fixes in 998b499.

Finding Action
dag_surface_operator_canonicalization_lookup ignores lm Fixed — comment now reads shell: lm reserved for PR-T-FINISH translate_algebra §1.5 model-derived table; wave-1 delegates to _member
dag_mvp1_node_is_ident_atom relocated Bool predicate Annotated — one-line note: relocated from body_producer (deleted here); dissolves with COMPREP-WAVE1-BODY-BRIDGE scaffold. Agree: move improves body_producer surface; not dissolved in this PR by design
resolve_transform_children only canonicalizes positional-0 Fixed — // Wave-1: operator is positional-0; later positions resolve as ordinary nodes. at the length == 0 arm

Agree: dissolution is real (grep=0, bindings from arrow_domain_named_param_bindings, literal match gone). No blocking findings.

— sent from cool-bat-697

@briansrls

Copy link
Copy Markdown
Contributor Author

Review response (composer-2.5 APPROVE @ 2026-06-11T20:37:26Z) — verified against HEAD 998b499; no code change required.

Claim Verification
Hardcoded pins dissolved from body_producer compiler grep for ^dag_binding_param_x/y, ^dag_token_plus → 0 hits; fixtures in extdeps/languages/dag.dag
Producer derives via arrow_domain_named_param_bindings 03_body_producer.dag:357,411
Resolve threads lm, canonicalizes Transform operators 03_resolve.dag:327 + positional-0 rule in resolve_transform_children
value_expr delegates to LM catalog (no local ^dag_token_plus match) 06_value_expression.dag:95 → dag_surface_operator_canonicalization_member
Eval admits [domain, codomain, codomain] + named body 05_eval.dag:1424-1428 positional-only arity gate
Remaining scaffolds 🟡-tagged with dissolve-on COMPREP-WAVE1-BODY-BRIDGE, PR-T-FINISH shell mark, eval interim gates

Agree: no findings; #4627 dissolve-c intent met.

— sent from cool-bat-697

@briansrls

Copy link
Copy Markdown
Contributor Author

Review response (claude-opus-4-7 APPROVE @ 2026-06-11T20:54:36Z) — verified against HEAD 998b499; no code change required.

Observation Verification
resolve_surface_operator_atom falls back to resolve_atom on lookup Rejected (03_resolve.dag:339-340) Accurate — wave-1 closed-set member check; diagnostic swallow acceptable now; will matter when lm carries model-derived table (already noted at lookup site)
dag_mvp1_captured_flat_atom_binding_for_ident hard flat indices 5/9/12 Consolidation, not new debt — literals moved to single extdeps fixture surface; inherits COMPREP-WAVE1-BODY-BRIDGE dissolve trigger; dag_mvp1_node_is_ident_atom tagged as relocated scaffold @ 998b499
Eval node_positional_child_targets switch (05_eval.dag:1424-1448) Correct — semantically equivalent for wave-1 [domain, codomain, codomain] + named body
surface_op_atom_to_canonical PR-T-FINISH mark (06_value_expression.dag:86-93) Matches gated-interim pattern — feature/bind/owner/consumer/dissolve-on/forbidden-clause with canonical_operation_from_wire_node authority

Agree: focused dissolve step, no invariant violations, no blocking findings.

— sent from cool-bat-697

@briansrls

Copy link
Copy Markdown
Contributor Author

Review response (composer-2.5 APPROVE @ 2026-06-11T20:56:46Z) — verified against HEAD 998b499; no code change required.

Claim Verification
Fixture pins / body_producer_node_is_* predicates removed from 03_body_producer.dag Confirmed — grep shows no body_producer_node_is_*; bindings via arrow_domain_named_param_bindings + dag_mvp1_captured_flat_atom_binding_for_ident in extdeps
Surface-op mapping under dag_surface_operator_canonicalization_member Confirmed — resolve (03_resolve.dag:327) and value_expr (06_value_expression.dag:95) share extdeps authority
Eval positional-only arity gate (05_eval.dag:1423-1428) Confirmed — admits named Arrow.body for wave-1 shape
Remaining bridges tagged (COMPREP / PR-T-FINISH) Confirmed — mvp1_flat_atom_at + COMPREP-WAVE1-BODY-BRIDGE @ 03_body_producer.dag:255-263; surface_op_atom_to_canonical STRUCTURAL mark @ 06_value_expression.dag:86-93; extdeps fixture consolidation not new unmarked debt

Agree: no findings; narrowly scoped pin dissolution with real eval fix.

— sent from cool-bat-697

@briansrls

Copy link
Copy Markdown
Contributor Author

Review response (claude-opus-4-7 APPROVE @ 2026-06-11T21:22:10Z + composer-2.5 APPROVE @ 2026-06-11T21:24:10Z) — verified against HEAD 998b499; no code change required.

Observation Verification
dag_surface_operator_canonicalization_member literal ^dag_token_plus in extdeps Intentional wave-1 LM catalog — compiler grep for ^dag_token_plus = 0; value_expr shell @ :94 delegates to member; STRUCTURAL dissolve-on @ :86-93 names PR-T-FINISH + canonical_operation_from_wire_node authority
_lookup(lm, ...) ignores lm Tagged @ extdeps/dag.dag:197 — reserved for PR-T-FINISH model-derived table
Fixture relocation to extdeps; arrow_domain_named_param_bindings path Confirmed — 03_body_producer.dag consumes bindings generically; compiler grep ^dag_binding_param_x/y = 0
Eval positional-only arity (05_eval.dag:1424, 1442) Correct — node_positional_child_targets; 🟡 COMPREP-WAVE1-EVAL marks retained
resolve_transform_children branch duplication Acknowledged — implementation-level collapse candidate later; not blocking

Agree: both APPROVE, no blocking findings; narrowly scoped dissolution.

CI note: run 27377399378 v4_lens_gate canceled after 8/8 witnesses passed (concurrency churn) — re-triggering CI separately.

— sent from cool-bat-697

Witnesses passed before job cancel (infra/concurrency); local lens gate
green on 998b499. No code change.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls merged commit e00af43 into main Jun 11, 2026
11 checks passed
@briansrls
briansrls deleted the session/cool-bat-697 branch June 11, 2026 23:33
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