Session validator CLI passes out-of-domain effect parameters (4 stages stop before effect preparation)
Current approved scope — 2026-09-10
2. #211 — make CLI validation check native effect preparation
Product outcome: a session with an invalid compressor ratio cannot receive CLI PASS and subsequently fail for that same reason during engine preparation.
Current evidence: tools/session-validator/src/lib.rs:51 lists four stages; validate_session_document finishes after prepare_session_builtins. It never calls prepare_native_session_effects.
Smallest scope: add prepare-effects using the existing effect compiler and appropriate preparation caps; translate its existing typed diagnostics into the CLI report; update stage tables, focused mutations and authoring documentation. Preserve refusal ordering, skipped later stages and canonical JSON behavior. Cover unknown effect IDs, unavailable third-party resolution, ports and quality through existing preparation semantics rather than duplicating validators.
Acceptance: the next f32 above compressor ratio 20 is rejected at the effect stage; 20 and representative valid registered effects pass. Earlier syntax/model/builtin refusals remain correctly classified. Prove parity with existing engine effect preparation for these cases; CLI exit status and dotted diagnostics are tested. Required PR/main CI and synchronized closure.
Scope trap: canonical.json contains an intentionally unregistered schema-example effect ID. Existing tests that treat every schema-valid fixture as fully preparable must distinguish schema-only fixtures from launch-registry fixtures. Do not rewrite sealed canonical fixtures to make the new stage pass. CLI PASS still does not certify graph/PDC, source availability or all host resource constraints.
Risk/size: small-to-medium, control-plane tooling; no DSP algorithm change or independent artifact repin expected. Refresh its old TOML/crate/model-assignment wording in the matching stateless spec before implementation.
Independent Astra XHIGH scoping PASS; user authorized implementation. Astra LOW implements, Astra XHIGH verifies. Five attempts maximum. Root checkpoints exact paths and pushes promptly. At most two active issues: #387 and #211; #376 queued. #211 is independent tooling, #387 owns session/parser and boundary regression source. Root owns artifact qualification/pinning. No overlapping production edits.
Implementation stops after focused green checks for root commit; independent review follows. Record actual commands, environments, source identity, exits and logs externally. No compiler-IR captures or timing campaigns. Preserve original PR history and failed evidence. Required exact-head PR qualification and corrected-main qualification precede synchronized closure and clean worktree removal.
Before implementation only: current source base14079d2c, no new code or PASS evidence. Historical instructions below are provenance; this current scope and user model/five-attempt routing supersede them.
Historical issue body
Found during SDK #207 Phase 1 E5 (credit: the SDK implementation agent). The #179 validator CLI's four stages (toml-grammar → typed-model → compile-session → prepare-builtins) never run native effect preparation, so an out-of-domain effect parameter — e.g. compressor ratio = 20.000002, the next f32 above the declared max 20.0 — passes all four stages, while the real engine pipeline refuses it at prepare (prepare_native_session_effects, crates/miso-engine-effect-compiler/src/prepare.rs:819, surfaced through host-core prepare.rs:528 as PrepareRejection::Effect typed diagnostics).
Impact: the author-session skill and any CLI-validated workflow can produce documents that validate PASS but are refused by the engine — exactly the false-confidence class the validator exists to prevent. Builtins/schema/model domains are unaffected.
Fix direction: add a fifth stage (prepare-effects) running prepare_native_session_effects with the standard caps and mapping its EffectDiagnosticSet into the CLI's dotted-diagnostic report — or fold it into stage 4 as prepare-session. Ceremony: STAGE_NAMES, the validator's mutation tables gain out-of-domain effect rows (the 20.000002 probe becomes the red test), author-session skill docs, and #207's E5 note ('CLI PASS necessary but not sufficient') retires once fixed.
Standard protocol: Opus implements, Fable adversarially verifies pre-PR.
Implementation attempt 1 checkpoint
Astra LOW added the existing launch effect preparer as stage five, mapped typed
preparation diagnostics and covered valid/invalid compressor ratio, unknown
identity/parameter, earlier-stage skips, CLI exit and no canonical output on
failure. Schema-only canonical fixture expectations were classified without
changing sealed input bytes. Authoring guidance reflects the bounded guarantee.
Focused formatting and all 10 validator tests passed. Actual command,
environment, exit and output receipts: /tmp/issue211-attempt1.
Root owns this exact-path checkpoint; independent Astra XHIGH verdict pending.
Attempt 1 review failure and attempt 2 correction
Astra XHIGH stopped at strict Clippy's single_element_loop in the canonical
fixture test; ordinary tests remained green. Receipt:
/tmp/issue211-verification-attempt1/clippy.json. Root authorized only flattening
that singleton loop. Astra LOW applied the correction; locked validator tests,
strict all-target/all-feature Clippy and formatting all passed. Evidence:
/tmp/issue211-attempt2. Incidental unrelated lock ordering was restored; only
the test correction and this record change. Independent attempt2 verdict pending.
Independent Astra XHIGH attempt 2 PASS
Source7463c0d3c7c883f1e949975eaeb06cd03710c4c1 approved. Reviewer accepted
formatting, locked strict Clippy and 10 validator tests, and independently
passed nine CLI controls covering ports, quality, link modes, third-party
refusal, diagnostic ordering, exit status and canonical suppression. Shared
registry/preparer, caps, earlier-stage skips and sealed fixture bytes verified.
Evidence: /tmp/issue211-verification-attempt2/verdict.md and control receipts.
Required PR/main qualification and upstream synchronized closure remain.
Joint delivery scope
Root integrates the independently accepted #387 parser and #211 validator
changes for one delivery PR. Product paths are disjoint; #211 changes only the
validator's dependency edge, tests and authoring guidance, not shipped artifact
source. Preserve both histories and evidence; no new product change is authorized.
Verify validator behavior against the corrected parser on this combined tree,
then independent exact-head review and required PR/full-workspace/main CI.
Both issues remain open until qualification and upstream synchronization finish.
Combined integration Astra XHIGH PASS
Reviewed headfce9c6276dd5caf277035a250966aa86599a637f preserves both accepted
implementations and histories. Combined validator suite passed all10 tests.
An empty-object CLI probe failed at grammar stage with json.syntax at
$.render_profile, stages2–5 skipped and no canonical stdout. Only the validator
adds the existing effect-compiler dependency; artifact package closures exclude
it. All six retained artifact hashes and eight qualification receipts remain
applicable. Evidence: /tmp/issue211-387-combined-verification/integration.json.
Only this review record follows; required PR/main qualification remains.
Delivered — 2026-09-11
PR #726 merged reviewed a80165e as f8d52f1.
Required PR qualification34546606665 and exact-main qualification34547168487
PASSED; PR fuzz34546606609 also PASSED. Independent Astra XHIGH source and
integration reviews, the 901-second parser fuzz and artifact qualification
remain recorded above. The issue's scoped outcome is delivered; closure follows
this upstream evidence synchronization. Old PR #390 is superseded, with history
preserved. No claim that all nightly failures or host readiness are resolved.
Session validator CLI passes out-of-domain effect parameters (4 stages stop before effect preparation)
Current approved scope — 2026-09-10
2. #211 — make CLI validation check native effect preparation
Product outcome: a session with an invalid compressor ratio cannot receive CLI PASS and subsequently fail for that same reason during engine preparation.
Current evidence:
tools/session-validator/src/lib.rs:51lists four stages;validate_session_documentfinishes afterprepare_session_builtins. It never callsprepare_native_session_effects.Smallest scope: add
prepare-effectsusing the existing effect compiler and appropriate preparation caps; translate its existing typed diagnostics into the CLI report; update stage tables, focused mutations and authoring documentation. Preserve refusal ordering, skipped later stages and canonical JSON behavior. Cover unknown effect IDs, unavailable third-party resolution, ports and quality through existing preparation semantics rather than duplicating validators.Acceptance: the next f32 above compressor ratio 20 is rejected at the effect stage; 20 and representative valid registered effects pass. Earlier syntax/model/builtin refusals remain correctly classified. Prove parity with existing engine effect preparation for these cases; CLI exit status and dotted diagnostics are tested. Required PR/main CI and synchronized closure.
Scope trap: canonical.json contains an intentionally unregistered schema-example effect ID. Existing tests that treat every schema-valid fixture as fully preparable must distinguish schema-only fixtures from launch-registry fixtures. Do not rewrite sealed canonical fixtures to make the new stage pass. CLI PASS still does not certify graph/PDC, source availability or all host resource constraints.
Risk/size: small-to-medium, control-plane tooling; no DSP algorithm change or independent artifact repin expected. Refresh its old TOML/crate/model-assignment wording in the matching stateless spec before implementation.
Independent Astra XHIGH scoping PASS; user authorized implementation. Astra LOW implements, Astra XHIGH verifies. Five attempts maximum. Root checkpoints exact paths and pushes promptly. At most two active issues: #387 and #211; #376 queued. #211 is independent tooling, #387 owns session/parser and boundary regression source. Root owns artifact qualification/pinning. No overlapping production edits.
Implementation stops after focused green checks for root commit; independent review follows. Record actual commands, environments, source identity, exits and logs externally. No compiler-IR captures or timing campaigns. Preserve original PR history and failed evidence. Required exact-head PR qualification and corrected-main qualification precede synchronized closure and clean worktree removal.
Before implementation only: current source base14079d2c, no new code or PASS evidence. Historical instructions below are provenance; this current scope and user model/five-attempt routing supersede them.
Historical issue body
Found during SDK #207 Phase 1 E5 (credit: the SDK implementation agent). The #179 validator CLI's four stages (toml-grammar → typed-model → compile-session → prepare-builtins) never run native effect preparation, so an out-of-domain effect parameter — e.g. compressor
ratio = 20.000002, the next f32 above the declared max 20.0 — passes all four stages, while the real engine pipeline refuses it at prepare (prepare_native_session_effects, crates/miso-engine-effect-compiler/src/prepare.rs:819, surfaced through host-core prepare.rs:528 asPrepareRejection::Effecttyped diagnostics).Impact: the author-session skill and any CLI-validated workflow can produce documents that validate PASS but are refused by the engine — exactly the false-confidence class the validator exists to prevent. Builtins/schema/model domains are unaffected.
Fix direction: add a fifth stage (
prepare-effects) runningprepare_native_session_effectswith the standard caps and mapping itsEffectDiagnosticSetinto the CLI's dotted-diagnostic report — or fold it into stage 4 asprepare-session. Ceremony: STAGE_NAMES, the validator's mutation tables gain out-of-domain effect rows (the 20.000002 probe becomes the red test), author-session skill docs, and #207's E5 note ('CLI PASS necessary but not sufficient') retires once fixed.Standard protocol: Opus implements, Fable adversarially verifies pre-PR.
Implementation attempt 1 checkpoint
Astra LOW added the existing launch effect preparer as stage five, mapped typed
preparation diagnostics and covered valid/invalid compressor ratio, unknown
identity/parameter, earlier-stage skips, CLI exit and no canonical output on
failure. Schema-only canonical fixture expectations were classified without
changing sealed input bytes. Authoring guidance reflects the bounded guarantee.
Focused formatting and all 10 validator tests passed. Actual command,
environment, exit and output receipts:
/tmp/issue211-attempt1.Root owns this exact-path checkpoint; independent Astra XHIGH verdict pending.
Attempt 1 review failure and attempt 2 correction
Astra XHIGH stopped at strict Clippy's single_element_loop in the canonical
fixture test; ordinary tests remained green. Receipt:
/tmp/issue211-verification-attempt1/clippy.json. Root authorized only flatteningthat singleton loop. Astra LOW applied the correction; locked validator tests,
strict all-target/all-feature Clippy and formatting all passed. Evidence:
/tmp/issue211-attempt2. Incidental unrelated lock ordering was restored; onlythe test correction and this record change. Independent attempt2 verdict pending.
Independent Astra XHIGH attempt 2 PASS
Source7463c0d3c7c883f1e949975eaeb06cd03710c4c1 approved. Reviewer accepted
formatting, locked strict Clippy and 10 validator tests, and independently
passed nine CLI controls covering ports, quality, link modes, third-party
refusal, diagnostic ordering, exit status and canonical suppression. Shared
registry/preparer, caps, earlier-stage skips and sealed fixture bytes verified.
Evidence:
/tmp/issue211-verification-attempt2/verdict.mdand control receipts.Required PR/main qualification and upstream synchronized closure remain.
Joint delivery scope
Root integrates the independently accepted #387 parser and #211 validator
changes for one delivery PR. Product paths are disjoint; #211 changes only the
validator's dependency edge, tests and authoring guidance, not shipped artifact
source. Preserve both histories and evidence; no new product change is authorized.
Verify validator behavior against the corrected parser on this combined tree,
then independent exact-head review and required PR/full-workspace/main CI.
Both issues remain open until qualification and upstream synchronization finish.
Combined integration Astra XHIGH PASS
Reviewed headfce9c6276dd5caf277035a250966aa86599a637f preserves both accepted
implementations and histories. Combined validator suite passed all10 tests.
An empty-object CLI probe failed at grammar stage with json.syntax at
$.render_profile, stages2–5 skipped and no canonical stdout. Only the validator
adds the existing effect-compiler dependency; artifact package closures exclude
it. All six retained artifact hashes and eight qualification receipts remain
applicable. Evidence:
/tmp/issue211-387-combined-verification/integration.json.Only this review record follows; required PR/main qualification remains.
Delivered — 2026-09-11
PR #726 merged reviewed a80165e as f8d52f1.
Required PR qualification34546606665 and exact-main qualification34547168487
PASSED; PR fuzz34546606609 also PASSED. Independent Astra XHIGH source and
integration reviews, the 901-second parser fuzz and artifact qualification
remain recorded above. The issue's scoped outcome is delivered; closure follows
this upstream evidence synchronization. Old PR #390 is superseded, with history
preserved. No claim that all nightly failures or host readiness are resolved.