plan: cycle 0004 firing policies and merge

Three tasks, ordered by compile-gate discipline (each leaves a coherent build
gate satisfiable):
1. aura-core Firing enum + InputSpec.firing, threaded through aura-std Sma/Sub
   in the same task (the field addition breaks both callers) -> full workspace
   gate green.
2. aura-engine production rewrite: SourceSpec, SlotState (fresh_at + last_ts, the
   two read clocks), NodeBox/Harness fields, the k-way merge run loop, and the
   fires() firing predicate. The bootstrap/run signature change breaks the
   in-module tests, so this task ends on a PARTIAL gate (cargo build -p
   aura-engine --lib, which excludes #[cfg(test)]).
3. aura-engine tests: rewrite the 5 cycle-0003 tests onto the multi-source API
   and add the firing rails -- mode A as-of hold, mode B barrier wait, mixed A+B
   OR-combine, each with worked expected vectors -> full workspace gate.

Orchestrator decisions baked in: run length-mismatch is a caller bug -> assert_eq!
(not a typed error, not a silent no-op); historical specs/plans (0002/0003) pin
pre-cycle disk state and are left frozen; the test module gets an explicit
`use aura_core::{InputSpec, NodeSchema}` (harness.rs production never names those
types, so `use super::*` does not bring them, and putting them in the top-level
use would be an unused-import under -D warnings); the harness doc keeps RustAst's
model phrased without the literal Rc/RefCell tokens so the purity grep does not
self-match.

Grounding-check on the parent spec PASS; plan-recon confirmed every spec-named
path exists and the "before" shapes match disk.

refs walking-skeleton

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-03 14:12:58 +02:00
parent 4cbb7795ef
commit 10a40127b6
File diff suppressed because it is too large Load Diff