11dfff860c
Per-cycle fieldtest of node-instance naming (#56), driven as a downstream consumer from the public interface only (ledger + spec + rustdoc + CLI; no crates/*/src read), three fixtures built and run from HEAD. Verdict: the core 0031 promise holds first-try. A consumer authors Sma::builder().named("fast"), inspects param_space() (sma_cross.fast.length), binds by name and runs; the default-name case (sma.length / exposure.scale, verbatim lowercase) and paramless-interchangeable-stays-legal both hold. 0 bugs, 3 working, 2 friction, 1 spec_gap. The one real gap (verified by the orchestrator against the fixture output): the spec's headline forcing function IndistinguishableFanIn does NOT reach an author on the canonical .with(...).bootstrap() flow. An un-named 2-SMA cross emits a literal DUPLICATE knob (sma_cross.sma.length x2); the binder resolves names before the compile fan-in check, so the author hits UnknownKnob / AmbiguousKnob("sma_cross.sma.length") — which point at the knob, not at the cure "name your nodes". IndistinguishableFanIn only surfaces via the positional compile_with_params path. Rejection still happens (no invalid blueprint runs), so it is an ergonomic/signposting gap, not a correctness bug. Routed to the backlog (relates to #58); 0031 stays audit-closed. Minor: FlatGraph/Harness lack Debug, so a bootstrap Result can't be {:?}-printed.
16 lines
649 B
Plaintext
16 lines
649 B
Plaintext
[0] un-named cross param_space():
|
|
sma_cross.sma.length : I64
|
|
sma_cross.sma.length : I64
|
|
exposure.scale : F64
|
|
[1] un-named cross bootstrap is_err: true
|
|
-> diagnostic the author sees: UnknownKnob("sma_cross.length")
|
|
[1a] bind the real emitted (duplicate) name -> Some(AmbiguousKnob("sma_cross.sma.length"))
|
|
|
|
[1b] un-named cross compile_with_params err: Some(IndistinguishableFanIn { node: 2 })
|
|
-> IndistinguishableFanIn at interior node index 2 (the Sub that fans in both un-named SMAs)
|
|
|
|
[2] named cross bootstrap ok: true
|
|
[2] named run recorded 12 rows
|
|
|
|
OK: un-named fan-in rejected, naming the legs is the single recovering act.
|