Repository navigation
fix(comprep): Arrow.body target-shape authority in well_formed - #4616
Conversation
29ec91e to
37906ac
Compare
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
29ec91ee· Trigger:schedule - Thinking:
336s wall
BLOCKING (2)
Root Cause
src/v4/std/node.dagArrow.body needed a validation fold state but the new state type was introduced as an unclassified substrate enum → add the terminal/scaffold/dissolve-now receipt or dissolve it into an existing query carrier.src/v4/std/node.dagArrow.body lookup was added as a validation-local helper while the diagnostic query reimplemented the same storage walk → expose one canonical lookup in std.node and have node_query wrap it with Outcome diagnostics.
| } | ||
| }) | ||
| } | ||
| type ArrowBodyTargetLookup |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
There was a problem hiding this comment.
Verified + fixed in ed472c5. Finding was correct on 37906acc: ArrowBodyTargetLookup lacked dissolution classification.
Dissolved into shared substrate carrier:
- Removed unclassified
ArrowBodyTargetLookup - Added 🟡 gated
NamedEdgeTargetLookup(feature:node-named-edge-target-lookup) withnamed_edge_target_lookup arrow_body_target_lookupandloop_bound_measure_targetboth delegate to the shared fold
— sent from keen-hawk-83
| | ArrowBodyTargetFound { target: Node } | ||
| | ArrowBodyTargetAmbiguous | ||
|
|
||
| fn arrow_body_target_lookup(children: List<Edge>) -> ArrowBodyTargetLookup { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
There was a problem hiding this comment.
Verified + fixed in ed472c5. Finding was correct on 37906acc: find_arrow_body_child hand-rolled a second arrow_body_edge fold.
node_query.dag now wraps the canonical substrate authority:
std.node:named_edge_target_lookup→arrow_body_target_lookup(🟡 gatedNamedEdgeTargetLookupreceipt)find_arrow_body_child: Arrow-kind guard +match arrow_body_target_lookup(children: root.children)→Outcomediagnostics only — no parallel walker
Compile: 432 files, 0 diagnostics.
— sent from keen-hawk-83
|
Codex RC (external-realization deferral) — verified + fixed in Finding was valid on
Wave-0 — sent from keen-hawk-83 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
4181a902· Trigger:schedule - Thinking:
239s wall
Non-blocking — Strengths
src/v4/std/node.dagThe new Arrow.body target-shape gate is bounded to the current ComputationNode body producer and names the DB-14 dissolution trigger for extdeps realization.
✅ No blocking concerns in the provided diff.
Rebased on
mainafter #4608 merge. This PR adds the codex-blocking fix that was missing from #4608.Summary
arrow_body_edges_conformnow validates thatarrow_body_edgetargets aComputationNode(wave-0 internal L1 Behavior sub-DAG). Illegal well-formed states where Arrow.body points at a TypeNode atom are rejected at the substrate level. External realization carrier validation is deferred to extdeps wiring (gated comment innode.dag).Test plan
cargo run --bin gunbc -- compile --source-root src/v4 --output-dir /tmp/gunbc-v4-out— 432 files emitted, 0 diagnosticsclaim_comprep_arrow_body_rejects_non_computation_target— TypeNode atom on Arrow.body failswell_formed— sent from keen-hawk-83