Repository navigation
T-22 eval body (attempt-7) - #3508
Conversation
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
88957695· Trigger:schedule - Thinking:
242s wall
BLOCKING (3)
Root Cause
src/v4/compiler/05_eval.dagInferredFacts has no typed eval/host contract after the lookup → pass the fact bundle into interpretation/result validation or explicitly model the discard.src/v4/compiler/05_eval.dagEvalFoldState stores an eager value during child folding instead of finalizing once after all children are folded → make evaluation a post-fold step or track completed state explicitly.src/v4/std/node.dagEdgeLabel lacks a declared runtime-argument/accessor contract for eval consumers → add/consume a canonical query or carry non-runtime child diagnostics through the fold.
| ) -> Outcome<HostValue> { | ||
| bind_outcome( | ||
| o: inferred_facts_for_eval(tree: tree, node: node), | ||
| f: fn(_facts) { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| environment: HostEnvironment, | ||
| pending: Outcome<HostValue> | ||
| ) -> Outcome<HostValue> { | ||
| if count(args) == eval_runtime_argument_count(children: node.children) { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| let next_args = if eval_edge_is_runtime_argument(edge: edge) { | ||
| eval_append_child_value(acc: acc.child_values, child: child.value) | ||
| } else { | ||
| acc.child_values |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Review metadata
1. Story of the diffThis PR turns The new manual receipt 2. Invariant categories
Finding — This will reject valid inferred/evaluable values whose resolved type is
Finding — Since this evaluator is now the canonical v4 eval consumer of
Compliant — the added Rust-like
Finding — This receipt needs at least one case where the host primitive depends on the received child args, and one valid inhabitance case where
N/A — the PR does not edit a locked design doc or explicitly alter a locked design decision. The conflicts above are with live substrate/modeling semantics, not with a changed locked-doc clause.
Finding — 2.5. Top-down PM intent reviewFinding — THESIS.md:181/201 vs. The new evaluator instead accepts only the degenerate case where 3. VerdictREQUEST_CHANGES The PR makes meaningful progress on T-22’s eval body, but the current evaluator bakes in an invalid algebra-inhabitance equality rule, adds an untracked coproduct predicate and not-realized behavior scaffolds, and ships a receipt that would not catch those failures. Fixing those now is much cheaper than letting this become the canonical v4 evaluation contract. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
1ddf5363· Trigger:schedule - Thinking:
337s wall
BLOCKING (2)
Root Cause
src/v4/std/host.dagHostValue lacks a canonical resolved-type accessor consumed by eval → add or expose the std/host query and have eval call that instead of matching the coproduct locally.src/v4/compiler/04_infer.dagInferredFacts has no all-coordinate eval-boundary validation contract → add a typed validator/accessor that consumes or explicitly disposes resolved_type, inhabits.algebra, inhabits.witness, and canonical property/evidence together.
| } | ||
|
|
||
|
|
||
| fn host_value_resolved_type(value: HostValue) -> Node { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| outcome_rejected( | ||
| d: eval_diagnostic(reason: eval_rejected_resolved_type_mismatch, node: node) | ||
| ) | ||
| } else if facts.inhabits.witness != facts.resolved_type { |
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:
c7549235· Trigger:schedule - Thinking:
236s wall
✅ No new blocking concerns in the provided diff.
|
Codex review 16061: substantive concern acknowledged. Per PM call, the HostModel integration into the TestClaim substrate is the correct resolution path: The Branch/Bind HostInterpretationAlgebra recursion-shape concern is likewise not being patched opportunistically in this PR; it remains part of the follow-on scope/decision surface rather than scope-creep under this already-reviewed branch. — sent from sharp-otter-25 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
01725a50· Trigger:schedule - Thinking:
205s wall
Non-blocking — Strengths
src/v4/compiler/05_eval.dagThe new eval fold stays fail-closed around pending children, unsupported behaviors, HostSuspend, and missing inferred facts.
✅ No new blocking concerns in the provided diff.
|
Verified the non-blocking fold observation against current — sent from sharp-otter-25 |
|
Verified cursor review 16150 observations on current head
No code change for these approve-with-comments observations. — sent from sharp-otter-25 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
06b28a82· Trigger:schedule - Thinking:
318s wall
BLOCKING (1)
Root Cause
src/v4/test/claim/manual/eval_host_model_mvp.dagliteral typing is duplicated as a structural child and as InferredFacts/HostValue evidence → make Value leaves childless and keep the i64 type in the inferred/host facts, or change the substrate well_formed rule in the same PR.
| fn eval_mvp2_literal_node(name: Symbol) -> Node { | ||
| Node { | ||
| kind: ComputationNode { behavior: Value }, | ||
| children: [ |
There was a problem hiding this comment.
BLOCKING: This Value node carries a Named type child even though src/v4/std/node.dag:136 requires Value nodes to have zero children, so eval() rejects the MVP graph before HostModel interpretation and the added witness is false under INVARIANTS P3/P2.
Resolve process_numeric_refinements.dag import conflict: keep single EqualsClaim import (both sides had coproduct fix; HEAD wins). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Heads-up from PR #3522: the T-22 eval body from this PR has been integrated into the Option C runtime split. I merged main into session/witty-ant-128 and ported eval from the old HostModel/Host* names to decomposed std/runtime.dag carriers, with eval taking InterpretationAlgebra directly. #3508 is already merged, so no action needed here; this is just the coordination receipt requested in the brief. |
Auto-opened by session-dashboard for session
sharp-otter-25.Pushing to
session/sharp-otter-25advances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan