Run real-data members at the sidecar pip — the graph broker uses the synthetic pip while the manifest stamps the real one #232
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?
wrap_rbuilds the broker asSimBroker::builder(SYNTHETIC_PIP_SIZE)(0.0001) unconditionally (crates/aura-cli/src/main.rs:1269); SimBroker's pip is closure-captured and the node declares no params (crates/aura-std/src/sim_broker.rs:61), so it cannot be rebound after construction. On the real-data paths the resolved geometry-sidecar pip reaches only the manifest:manifest.broker = r_sma_broker_label(pip)(main.rs:1386 and 1430), and campaign members passgeo.pip_sizetorun_blueprint_memberwhere it never touches the graph (crates/aura-cli/src/campaign_run.rs:296).Effect on every real-data run:
total_pipsandmax_drawdownare computed with divisor 0.0001 regardless of instrument — on GER40 (sidecar pipSize=1) inflated by 10^4 — while the recorded broker label claims the sidecar pip. The label misstates what ran. R metrics are pip-free (the RiskExecutor branch) and unaffected; within a family the distortion is uniform, so intra-family ranking survives; cross-instrument pip comparisons do not.The doc comment at main.rs:73-80 ("The real path threads the sidecar's looked-up pip_size instead") is true only for the label. Fix home is the same scaffolding #231 retires — the pip belongs to the source binding.
Fix direction decided (2026-07-10): thread the resolved pip into the harness scaffolding rather than dropping pip-denominated metrics from real-data reports — the manifest already stamps the resolved pip, so running the graph at it restores label truthfulness without shrinking the report.
Landed as
eb5fc21(RED: metamorphic pip-invariance test —total_pips * pipmust agree across two distinct pips on identical input) +ed1e8a0(GREEN):wrap_rgained apip_sizeparameter passed toSimBroker::builder. Real-pip call sites pass the resolved sidecar pip (run_signal_r,run_blueprint_member, and the campaign trace re-run inpersist_campaign_traces— the latter required so the determinism drift alarm compares re-run and nominee at the same pip); param-space/axis probes keep the synthetic pip explicitly (metrics discarded). The two goldenstitched_total_pipspins rescaled by exactly the 10^4 bug factor whilen_trades/expectancy_rstayed byte-identical — confirming R metrics were never pip-contaminated, as the issue predicted.Both acceptance boxes are met on the branch: the graph broker runs at the resolved instrument pip on real data, and the manifest broker label matches what ran. Closes via commit on merge.