d2b0cdf64c
Harvest sweep, batch 4 of 6. - present_campaign's cell loop gains the non-walk-forward sibling of the #313 note: a cell whose families are all non-wf and whose every report traded zero times gets 'aura: note: ... metrics are vacuous, not a break-even result' on stderr (emit-independent; wf cells keep their window note, gate-truncated cells stay silent). - exec's single-run bias leg (always RunData::Synthetic — a direct blueprint exec never binds real data) notes on a zero-trade run that the built-in 18-cycle stream is a smoke fixture and points at a campaign document's data section for a meaningful run. - blueprint_serde refuses to serialize a still-pending arg-bearing builder (SerializeError::PendingBuilder naming node type + missing args + the try_args remedy) instead of emitting an args-free v1 document whose fault only surfaces at load as MissingArg — the write-side twin of the load-path fence; only the Rust GraphBuilder path can reach this state. closes #324 refs #341