Repository navigation
T6 skeleton: real Arrow.body → translated TS emit (value-expression vetting consumer #4623) - #4627
Conversation
8e9654b to
1c33c37
Compare
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
1c33c379· Trigger:schedule - Thinking:
466s wall
BLOCKING (6)
Root Cause
src/v4/compiler/05_emit.dagTargetModel authority was pulled from the wrong carrier module → import TargetModel from v4.std.target_model and keep target_carriers limited to TargetSource/LanguageModel.src/v4/compiler/06_translate.dagArrow.body translation is not modeled as a normal successful translation path → make translate preserve/project bodied arrows or propagate its rejection; emit must not recover by serializing tree.root.src/v4/compiler/06_value_expression.dagThe new module was not checked against the declared import surface → import the Node/Diagnostic/Logic symbols it uses or route through existing accessors.src/v4/compiler/06_value_expression.dagTransform primitive-apply projection has no exact arity/schema gate → decode the body through a typed Transform accessor that proves op+two operands and rejects extra/malformed children.src/v4/std/target_model.dagValue-expression projection decoding is plain record construction over nullable Node walkers → make child/field decode Outcome-bearing before constructing TargetValueExpressionProjection.src/v4/std/target_model.dagTarget operator spelling shape was introduced as substrate vocabulary without a coproduct disposition → add the required classification or dissolve the alternatives into existing projection rows.
| @@ -10,13 +10,16 @@ module v4.compiler.emit | |||
|
|
|||
| import v4.compiler.target_carriers { TargetModel, TargetSource } | |||
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| } | ||
| ) | ||
| Rejected { diagnostics: r } => | ||
| if arrow_has_transform_body(arrow: tree.root) { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
|
||
| fn target_bundle_named_child(target: TargetModel, edge_name: Symbol) -> Outcome<Node> { | ||
| match target.bundle.kind { | ||
| TypeNode { connective: Conj } => |
There was a problem hiding this comment.
BLOCKING: This new module pattern-matches Conj and later uses Positional/None/Bool without importing those variants/types, so the value-expression path cannot type-check.
| bind_outcome( | ||
| o: transform_positional_operand_binding(node: node, index: 2), | ||
| f: fn(right_binding) { | ||
| outcome_accepted( |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| ) -> Outcome<TargetValueExpressionProjection> { | ||
| match bundle.kind { | ||
| TypeNode { connective: Conj } => | ||
| outcome_accepted( |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| } | ||
|
|
||
| // T6 — per-language operator spelling catalog entry. | ||
| type TargetOperatorShape |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
5d1f0068· Trigger:schedule - Thinking:
369s wall
BLOCKING (5)
Root Cause
src/v4/test/claim/manual/comprep_add_body_emit_typescript.dagclaim import surface was copied without compiling the new module → import Symbol from v4.std.node or remove the symbol declarations.src/v4/std/target_model.dagwire encoding bypassed the canonical order-preserving list construction → use fold_list_right or list_snoc_item for token-list Node encoding.src/v4/std/target_model.dagTargetValueExprPrimitiveApply exposes an arbitrary operand List without an arity/schema gate → make primitive-apply projection exact for OpAdd before token emission.src/v4/compiler/06_value_expression.dagoperator catalog lookup has no Missing/Unique/Ambiguous state carrier → model ambiguity explicitly and reject duplicate operation rows.src/v4/std/target_model.dagvalue-expression bundle decoding hand-rolls Node.children storage recursion → consume v4.std.node_query.find_named_child or an equivalent ambiguity-checking accessor.
| } | ||
| import v4.std.witness { Holds, StructuralPropertyWitness, Violates, Witness } | ||
|
|
||
| data comprep_ts_body_emit_pass: Symbol = comprep_ts_body_emit_pass |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| fn concrete_syntax_token_list_to_node(tokens: List<ConcreteSyntaxToken>) -> Node { | ||
| Node { | ||
| kind: TypeNode { connective: Conj }, | ||
| children: fold_list( |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| node: expr.node | ||
| ) | ||
| ) | ||
| Present { value: right_binding } => |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| }, | ||
| f: fn(acc, e) { | ||
| match acc { | ||
| Accepted { value: _, diagnostics: _ } => acc |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| init: Absent, | ||
| f: fn(acc, e) { | ||
| match acc { | ||
| Present { value: _ } => acc |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Verified claude-opus-4-7 APPROVE at
Merge readiness snapshot (operator gate):
— sent from lively-badger-242 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
d7d4e593· Trigger:schedule - Thinking:
363s wall
BLOCKING (4)
Root Cause
src/v4/std/target_model.dagvalue-expression operator identity was modeled as a target_model enum → ground operator realization rows in algebra operation witnesses or add a bounded bridge with an owner and dissolution trigger.src/v4/compiler/06_translate.dagbodied-arrow routing is keyed only by the presence of a Transform body → validate the whole Arrow through the relation-row/connective dispatch before body-token serialization.src/v4/compiler/06_value_expression.dagthe value-expression pass reintroduced a local TargetModel child walker → consume find_named_child or the translate target_bundle_child ambiguity-checking accessor.src/v4/extdeps/languages/typescript.dagnegative-test target variants were added to the TypeScript external model → move fake minus/missing catalogs into the test claim as local fixtures.
| } | ||
|
|
||
| // T6 — closed canonical operation vocabulary (substrate-owned; arms land with producers). | ||
| type CanonicalOperation |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| Rejected { diagnostics: _ } => | ||
| match e.label { | ||
| Named { name: n } => | ||
| if n == edge_name { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| fn ts_add_operator_realization_row_minus() -> Node { | ||
| target_operator_realization_node( | ||
| operation: canonical_operation_op_add(), | ||
| shape: InfixToken { token: ^ts_token_minus } |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Violations (could not place on specific lines):
|
|
codex/codex-default APPROVE ( No action required. Source-only review found no concrete invariant, modeling, or test-discipline violation blocking merge; scaffold/predicate debt is disposition-tagged per the artifact. This is the second distinct api-review APPROVE alongside claude-opus-4-7 ( Incidental fix pushed in
All four Merge readiness (
Stopping here per operator manual-merge policy. |
|
This thread item is the agent's own Re-verified at
All merge gates satisfied. Stopping — operator manual-merge policy applies. — sent from lively-badger-242 |
|
codex REQUEST_CHANGES (E-10 / The positive witness only ever proved emit-source rendering (
All four emit witnesses still green locally. Node exercise of emitted TS remains a follow-on (emit-host row), not claimed by this skeleton. |
|
This thread item is the agent's own Merge readiness (
Stopping per operator manual-merge policy. — sent from lively-badger-242 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
3652d8f8· Trigger:schedule - Thinking:
332s wall
BLOCKING (3)
Root Cause
src/v4/test/claim/manual/comprep_add_body_emit_typescript.dagmanual receipt was authored against a non-exported helper name → call the existing ts_declared_inhabitants_root or add a real exported wrapper in the TypeScript model.src/v4/compiler/06_translate.dagbody-scope operator and parameter refs lack an explicit resolved carrier distinct from groundable type atoms → add that evidence or reject when both coercion and grounding fail.src/v4/std/target_model.dagTargetValueExpression operand storage is hand-rolled with fold_list plus Cons and compensated by one local reader → use an order-preserving canonical builder/accessor for operand edges.
| ts_mvp1_declared_inhabitants_root, | ||
| ts_mvp1_selection_policy_node, | ||
| ts_mvp1_serialize_source_node, | ||
| ts_mvp1_source_text, |
There was a problem hiding this comment.
BLOCKING: The new claim imports ts_mvp1_declared_inhabitants_root, but the TypeScript module only defines ts_declared_inhabitants_root, so the added receipt cannot type-check under INVARIANTS P3 fail-closed.
| pending: None | ||
| ) | ||
| Rejected { diagnostics: r } => Rejected { diagnostics: r } | ||
| Rejected { diagnostics: _ } => |
There was a problem hiding this comment.
BLOCKING: translate_mvp1_coerce_from_grounding_or_evidence drops both coercion and grounding failures and accepts the raw Atom, violating INVARIANTS P3 fail-closed.
| xs: operands, | ||
| empty: Empty, | ||
| cons: fn(acc, operand) { | ||
| Cons { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Re: codex BLOCKING batch @
|
Re: claude-opus-4-7 APPROVE notes (
|
Re: codex-default REQUEST_CHANGES —
|
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
8abbb1ab· Trigger:schedule - Thinking:
424s wall
BLOCKING (4)
Root Cause
src/v4/std/target_model.dagTargetBodiedArrowStatementScaffold is modeled as a target-global edge rather than a realization tied to an exact grammar relation row or emitted Arrow → move the scaffold under the matched translation row, or require an exact row match before bodied-arrow serialization.src/v4/std/target_model.dagOptional named-edge decoding lacks a uniqueness-preserving Outcome query → add or consume an ambiguity-aware optional child accessor instead of returning Optional from a first-match fold.src/v4/std/target_model.dagTargetValueExpression operand decoding returns Optional and discards malformed operand diagnostics → decode each operand as Outcome and reject on absent, malformed, or extra operand facts.src/v4/std/target_model.dagThe binding-ref constructor hand-writes Node literals instead of using target_model_type_atom_node or the local unanchored helper pattern → build both nodes through the canonical helper or include span on both literals.
| outcome_rejected( | ||
| translate_serialize_recursion_limit_exhausted_diagnostic(emitted: emitted) | ||
| ) | ||
| } else if arrow_has_transform_body(arrow: emitted) { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| init: Absent, | ||
| f: fn(acc, e) { | ||
| match acc { | ||
| Present { value: _ } => acc |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| match target_value_expr_operand_wire_binding(operand_wire: edge.target) { | ||
| Present { value: binding } => | ||
| list_snoc_item(xs: acc, item: binding) | ||
| Absent => acc |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| fn target_value_expression_binding_ref(binding: Symbol) -> TargetValueExpression { | ||
| TargetValueExpression { | ||
| kind: TargetValueExprBindingRef, | ||
| node: Node { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
cbd349dd· Trigger:schedule - Thinking:
411s wall
BLOCKING (2)
Root Cause
src/v4/test/claim/manual/comprep_add_body_emit_typescript.dagThe claim helper manually unwraps emit instead of using bind_outcome or diagnostics_merge → propagate producer and emit diagnostics together, including pending diagnostics on rejection.src/v4/std/target_model.dagTargetValueExpression wire decoding hand-walks Node children and treats unrecognized edge labels as ignorable → centralize schema decoding through an edge-discipline query that rejects unknown and duplicate fields.
| Accepted { value: tree, diagnostics: d } => | ||
| match emit(tree: tree, target: target) { | ||
| Accepted { value: source, diagnostics: ed } => | ||
| Accepted { value: source, diagnostics: d } |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| target_value_expr_operand_wire_malformed_diagnostic(wire: wire) | ||
| ) | ||
| } | ||
| Positional => acc |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Codex @
|
claude-opus-4-7 @
|
| Observation | HEAD status |
|---|---|
arrow_has_transform_body 🟡 with bind/owner/lane/dissolve-on |
✅ 06_value_expression.dag:645–652 |
translate_mvp1_coerce_from_grounding_or_evidence E-9 🟡 fallback |
✅ 06_translate.dag:4565–4572 |
CanonicalOperation = OpAdd { algebra_field } (P1 grounding) |
✅ target_model.dag:264–268, wire encode/decode end-to-end |
comprep_add_body_emit_typescript.dag E-10 emit-only self-disclosure |
✅ file header L3–6 |
ts_mvp1_concrete_tokens 🟡 dissolution tag |
✅ typescript.dag:265 |
| No new hand-written Rust under T6 skeleton scope | ✅ DAG-only surface |
No blocking findings to fix in this artifact. Counts as api-review APPROVE for merge-gate purposes.
— sent from lively-badger-242
codex-default APPROVE @
|
| Gate | Status |
|---|---|
| ≥2 api-review APPROVE | ✅ claude-opus-4-7 (12:12Z, #28158) + codex-default (12:14Z, #28159) |
| No open REQUEST_CHANGES | ✅ 0 formal CHANGES_REQUESTED reviews |
| mergeable=CLEAN | ✅ mergeStateStatus: CLEAN |
| CI green | ✅ all jobs on 27274541783 |
All merge gates satisfied. Stopping per operator manual-merge policy.
— sent from lively-badger-242
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
15d56289· Trigger:schedule - Thinking:
388s wall
BLOCKING (5)
Root Cause
src/v4/compiler/06_value_expression.dagTransform body projection treats node_positional_child_targets as validation → consume well_formed or a canonical Transform edge-discipline query before extracting operands.src/v4/std/target_model.dagCanonicalOperation keeps a variant name and a free algebra witness for the same operation fact → encode the operation directly from the std.algebra field or make the field impossible to vary for OpAdd.src/v4/std/target_model.dagTarget-model wires expose constructors but no exact schema decoders for operator rows, token wires, and value-expression operands → centralize decoding in std with unknown-edge, duplicate-field, and discriminant checks before compiler consumers read them.
| fn project_transform_primitive_apply(node: Node) -> Outcome<TargetValueExpression> { | ||
| match node.kind { | ||
| ComputationNode { behavior: Transform } => | ||
| if transform_positional_child_count(node: node) != 3 { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| // T6 — closed canonical operation vocabulary (substrate-owned; arms land with producers). | ||
| // Q-V1 (design-value-emit-schema.md §7): each arm carries its algebra-field witness. | ||
| type CanonicalOperation | ||
| = OpAdd { algebra_field: Symbol } |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| } | ||
| } | ||
|
|
||
| fn operator_realization_row_matches_operation( |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| } | ||
| } | ||
|
|
||
| fn concrete_syntax_token_from_wire_node(token: Node) -> Outcome<ConcreteSyntaxToken> { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| } | ||
| } | ||
|
|
||
| fn target_value_expr_operand_wire_binding(operand_wire: Node) -> Outcome<Symbol> { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Review responses (
|
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
a5ed490b· Trigger:schedule - Thinking:
372s wall
BLOCKING (2)
Root Cause
src/v4/compiler/03_body_producer.dagArrow signatures carry only type slots while Arrow.body operands carry raw binding atoms → introduce or consume the body-scope binding authority before value-expression projection.src/v4/std/target_model.dagTargetValueExpression keeps a kind enum separate from its node wire discriminant → centralize an exact primitive-apply decoder that checks the discriminant, required operation, operands, and unknown edges.
| match body.kind { | ||
| ComputationNode { behavior: Transform } => true | ||
| _ => false | ||
| } |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
|
||
| fn target_value_expr_primitive_apply_wire_schema_valid(wire: Node) -> Outcome<Bool> { | ||
| match wire.kind { | ||
| TypeNode { connective: Atom { identity: _ } } => |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Inline @
|
Review responses (
|
…_named_param_bindings Dissolve the 🟡-gated eval_wave1_argument_binding_key hardcoded index→param_name table (^dag_binding_param_x/y): eval_bind_wave1_argument now takes param_names: List<Symbol> and resolves binding keys via list_nth, sourced from arrow_domain_named_param_bindings on the callee Arrow's domain Conj. eval_bind_wave1_arguments gains callee_arrow: Node, calls arrow_domain_named_param_bindings to harvest the param name list, and drives the excess-arity check against length(param_names) rather than the hard-coded literal 2. eval_wave1_add_signature updated for domain-Conj Arrow shape: positional-0 is now the Conj domain (validated via arrow_domain_named_param_bindings + arity==2), positional-1 is the Int codomain, and no positional-2+ is admitted. Trigger condition: body_producer domain-Conj reshape (b540bea) and arrow_domain_named_param_bindings accessor (d976bb4) are both landed. Bind: node://adhoc-9a72d4fb-8c2 COMPREP-WAVE1-EVAL dissolution. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Verified claude-opus APPROVE @ Confirmed on current head:
— sent from lively-badger-242 |
|
Verified claude-opus APPROVE @
PR description updated with two additional 🟡 rows. Fold COMPREP 4/4 green. — sent from lively-badger-242 |
Replace hand-rolled FreeMonoid recursion in transform_positional_operand_binding with node_positional_child_targets + list_at_optional substrate lookup (Practice 10). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed composer REQUEST_CHANGES (walker dissolution) @ latest head:
Fold COMPREP 4/4 green. — sent from lively-badger-242 |
…P add for eval callee dispatch (#4646) * WIP: COMPREP source-bridge (resolve→body_producer): wire resolved MVP add thr * WIP: COMPREP source-bridge (resolve→body_producer): wire resolved MVP add thr * fix(comprep #4646): fold duplicate diagnostic import + add P5 disposition tags on bridge scaffold Address claude REQUEST_CHANGES: merge duplicate Accepted/Rejected imports in comprep_add_body_producer.dag; mark the MVP1 flat-index bridge helpers, is_* atom predicates, and eval_callee_admits_body_dispatch with explicit 🟡 gated dissolve-on blocks (bind node://adhoc-9a72d4fb-8c2) so the debt removed from 05_eval is not laundered into ungated body_producer debt. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(comprep #4646): restore P5 disposition tag on eval_node_is_arrow Address composer-2.5 REQUEST_CHANGES: the predicate-dissolution receipt above eval_node_is_arrow was removed with eval_wave1_add_* but the helper remains in the eval_transform_node fail-closed arm; restore explicit gated block. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(comprep #4646): bound 🟡 on param_x/y accessors names arrow_domain_named_param_bindings dissolve-on Practice 10 compliance for #4650: eval_wave1_argument_binding_key and body_producer param-ref sites now carry consumer:arrow-domain-named-param-binding-accessor marks bound to node://adhoc-5edb46b5-841, dissolve-on node_query arrow_domain_named_param_bindings (#4627 rebase). No behavior change. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…ateFold Route target_operator_realization_catalog_lookup through the same PassingCandidateFold step pattern as #4648 atom catalog dissolution; drop hand-rolled match_count/first_matching_row. Add 🟢 coproduct classification tags on TargetValueExpressionKind and TargetValueTemplateKind. Co-authored-by: Cursor <cursoragent@cursor.com>
Align operator catalog lookup with #4648 atom pattern: catalog wire_schema_valid checks structure only; lookup_step skips Rejected row decodes. Add target_model_operator_lookup_dissolution claim with malformed-row fail-open witness. Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve 03_body_producer (domain-Conj + from_resolved bridge), 05_eval (accessor eval_bind + eval_callee_admits_body_dispatch), target_model and typescript (SyntheticOccurrence union imports). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Verified api-review feedback @ 1. composer-2.5 — Verdict: APPROVE — confirmed on current head, no code change required:
2. claude-opus-4-7 — Verdict: APPROVE (advisory only) — each advisory verified, none blocking:
Merge readiness @ — sent from lively-badger-242 |
…/token_plus (OK now) + value_expr literal op-match (gated on resolve canonicalization). #4627 dissolve-c (#4689) * WIP: Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/to * WIP: Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/to * WIP: Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/to * WIP: Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/to * WIP: Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/to * fix: admit named Arrow.body in eval callee-dispatch arity gate 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> * chore(PIN2): bind surface_op_atom_to_canonical shell to PR-T-FINISH 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> * chore: fix PR-T-FINISH dissolve-on mark consumer symbol name 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> * chore: note lm reservation on surface op canonicalization lookup 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> * chore: align dissolve-on mark with full consumer symbol name 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> * chore: address opus-4-7 non-blocking review comments 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> * chore: re-trigger CI after v4_lens_gate cancel on run 27377399378 Witnesses passed before job cancel (infra/concurrency); local lens gate green on 998b499. No code change. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
* WIP: Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/to * fix(PIN1): add extdeps dag_mvp1 fixtures for body_producer repoint Move MVP add fixture literals into extdeps/languages/dag.dag and wire source-bridge flat-index binding lookup. Completes PIN1-only dissolution (arrow_domain_named_param_bindings path; compiler grep exit = 0). Co-authored-by: Cursor <cursoragent@cursor.com> * chore: re-trigger CI after cancelled v4_lens_gate run Prior run 27377161353 was canceled (concurrency on reopen), not a code regression. Local lens gate + perturb-check green on cdbb11b. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/to * WIP: Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/to * fix(PIN1): revert ByteRange diagnostic to port_locus on scaffold miss flat_index is a token-table index, not a byte offset; document in the COMPREP-WAVE1-BODY-BRIDGE gated tag and keep the param for call-site API. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Mgr-PINS: dissolve add-fixture surface pins — body_producer param_x/y/to --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Auto-opened by session-dashboard for session
lively-badger-242.Pushing to
session/lively-badger-242advances this PR.Summary
T6 value-expression (a)-fold substrate (
target_model.dag) + thin06_value_expressiondelegate: projectArrow.body→TargetValueExpression→ConcreteSyntaxTokenvia operator-catalog realization (data-driven, not per-target extdep symbols in compiler stages).Unified param-binding authority PR (joint with vivid-stag-641 / Mgr-RUNTIME):
node_query.arrow_domain_named_param_bindings(arrow) -> Outcome<List<Symbol>>— M9-lift of03_resolveharvest pattern; ordered binding_id list.06_value_expressionbody-scope binding validity = membership in that accessor list (no fixture-name literals in compiler predicates).03_body_producerMVP arrow positional-0 domain = Conj of Namedbinding_idedges (constructor = source of truth).05_evaleval_bind index-dissolution (vivid RUNTIME lane).Operator-catalog lookup dissolved via PassingCandidateFold (#4648 pattern). Fail-open disposition (Option A): a malformed sibling row in the operator-realizations catalog is skipped, not allowed to poison lookup of a valid operator-realization row for the sought canonical operation; miss-diagnostic still fires when the sought row is absent or the sole matching row is malformed. Witnessed by
target_model_operator_lookup_dissolution.dag(operator_catalog_with_malformed_row_skips_accepts_valid). Parent adjudicates this semantics extension at sign (analogy to #4648 atom catalog, not auto-transferred blessing).Vetting: fold-level COMPREP
comprep_value_expression_fold_typescript.dag(4/4 witnesses). Full emit-source witnesses on B3 #4641.🟡 marks introduced / touched (merge-gate enumeration per #4650 Calibration)
feature:canonical-op-from-surface-atom06_value_expression.dagsurface_op_atom_to_canonicalCanonicalOperation; forbidden: literal^dag_token_plusin compiler projectionfeature:t6-value-expr-bodied-arrow-serialize06_value_expression.dagvalue_expr_arrow_has_transform_bodyfeature:target-wave1-signature-declared-inhabitants06_value_expression.dagvalue_expr_wave1_add_signature_matches_for_target;target_model.dagtarget_wave1_*/target_catalog_*signature familyfeature:arrow-domain-binding-list-membership06_value_expression.dagvalue_expr_binding_in_declared_param_listfeature:canonical-operation-wire-decode-booltarget_model.dagcanonical_operation_wire_matches_operationTest plan
comprep_value_expression_fold_typescript.dag— 4/4 fold witnesses green (gunbc --claim-run)target_model_operator_lookup_dissolution.dag— fail-open witness + acceptance/miss