Deliver per-member trace-writing on sweep/walkforward (--trace writes traces) #224
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Carved out of #168 (the
--traceno-op bug). #168's minimal honest fix rejects--traceonsweep/walkforwardwith a forward-pointer (the flag is currently asilent no-op — the clap help promised "also persists each member's taps" but
run_blueprint_sweepdoeslet _ = persistand the--realsugar setspersist_taps: vec![]). This issue tracks DELIVERING the advertised capability sothe refusal can be lifted.
Direction (not prescriptive)
Translate
--trace <fam>into apersist_tapscampaign-presentation block so eachswept member's tap series is written to
traces/<cell_key>/via the existingpersist_campaign_tracesmechanism (campaign_run.rs:638). Cover both sweep paths:the plain blueprint sweep (
run_blueprint_sweep, main.rs — currentlylet _ = persist) and the dissolved--realpath (theverb_sugar.rstranslators, currently
persist_taps: vec![]). On landing, lift the #168 refusaland restore the (now-honest) help lines + the chart
NotFoundhint thatrecommends
sweep --traceas the way to record traces.persist_taps/persist_campaign_tracesmachineryalready exists)
path" pattern); surface-honesty arc.
Scope note (from the #168 audit-close): the RunCmd/McCmd --trace help and the design-ledger amendment now point CLI --trace restoration here, so this issue is the umbrella for restoring CLI-side --trace trace-writing across verbs — single-run (
run --trace, ledger amendment3b56efb) and per-member (sweep|mc|walkforward --trace, #104) — since both share the TraceStore/persist mechanism. The single live writer today is the campaign presentation.persist_taps (persist_campaign_traces); see the 'CLI --trace retired' amendment in docs/design/INDEX.md for the full picture.Landed as
fe4ea0a(RED: refusal lifts + non-empty tap files under runs/traces/ — deliberately layout-agnostic) +00e15b9(GREEN). Decisions taken:<trace_name>/<cell_key>/<member_key>/, where<member_key>is the member's manifest params label in reproduce's exact rendering (filesystem-sanitized; member ordinal as fallback for an empty params join). Nominee-bearing cells keep the flat<cell_key>/layout. Nominee-only writing was rejected — the title and the promised help text say "each member's taps".run --traceandmc --tracestay refused BY DESIGN —runhas no campaign context andmc --realhas no family-name concept, and their help text already described that reality (not a #168-style placeholder). If a single-run trace path is wanted later it is a separate design, not a mechanical ride-along.slow.length), tripping the pre-existing bind_axes every-param-covered invariant with exit 1 — unrelated to the #224 contract; the missing--axis sma_signal.slow.length=8line was added, assertions untouched (the pre-fix refusal fired argv-independently, so the RED property was preserved).Verified end-to-end on the GER40 archive for both sweep and walkforward; full workspace suite green. Closes via commit on merge.