diff --git a/crates/aura-bench/baselines/campaign_heavy.json b/crates/aura-bench/baselines/campaign_heavy.json index 5e08d18..ca276d0 100644 --- a/crates/aura-bench/baselines/campaign_heavy.json +++ b/crates/aura-bench/baselines/campaign_heavy.json @@ -1,9 +1,9 @@ { "surface": "campaign_heavy", "metrics": { - "cpu_percent": 2116.0, - "peak_rss_mb": 98.25, - "wall_s": 5.604210818 + "cpu_percent": 2152.0, + "peak_rss_mb": 101.3828125, + "wall_s": 5.572580056 }, "fingerprint": "cells=8 c0s0w17 c0s1v[0.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24] c0s3b2883 c1s0w17 c1s1v[0.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24] c1s3b2883 c2s0w17 c2s1v[0.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24] c2s3b2883 c3s0w17 c3s1v[0.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24] c3s3b2883 c4s0w17 c4s1v[0.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24] c4s3b2883 c5s0w17 c5s1v[0.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24] c5s3b2883 c6s0w17 c6s1v[0.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24] c6s3b2883 c7s0w17 c7s1v[0.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24] c7s3b2883", "reps": 3, @@ -12,6 +12,6 @@ "nproc": 24 }, "profile": "release", - "commit": "d62dede", - "date": "2026-07-17" + "commit": "9c7f60b", + "date": "2026-07-23" } diff --git a/crates/aura-bench/baselines/campaign_sweep.json b/crates/aura-bench/baselines/campaign_sweep.json index 751a5ab..1954192 100644 --- a/crates/aura-bench/baselines/campaign_sweep.json +++ b/crates/aura-bench/baselines/campaign_sweep.json @@ -1,9 +1,9 @@ { "surface": "campaign_sweep", "metrics": { - "cpu_percent": 2170.0, - "peak_rss_mb": 98.21875, - "wall_s": 1.418092216 + "cpu_percent": 2190.0, + "peak_rss_mb": 92.203125, + "wall_s": 1.394470036 }, "fingerprint": "cells=8 c0s0w17 c1s0w17 c2s0w17 c3s0w17 c4s0w17 c5s0w17 c6s0w17 c7s0w17", "reps": 3, @@ -12,6 +12,6 @@ "nproc": 24 }, "profile": "release", - "commit": "d62dede", - "date": "2026-07-17" + "commit": "9c7f60b", + "date": "2026-07-23" } diff --git a/crates/aura-bench/baselines/cli_fixed_cost.json b/crates/aura-bench/baselines/cli_fixed_cost.json index f6e45b0..e95f0b7 100644 --- a/crates/aura-bench/baselines/cli_fixed_cost.json +++ b/crates/aura-bench/baselines/cli_fixed_cost.json @@ -1,16 +1,16 @@ { "surface": "cli_fixed_cost", "metrics": { - "help_ms": 1.5094509999999999, - "run_ms": 3.679743 + "help_ms": 1.5046899999999999, + "run_ms": 3.63305 }, - "fingerprint": "run_line_fnv=792dc4434f8e3dee", + "fingerprint": "run_line_fnv=6bb0d796f760d140", "reps": 3, "host": { "hostname": "Raki", "nproc": 24 }, "profile": "release", - "commit": "13d8500", - "date": "2026-07-17" + "commit": "9c7f60b", + "date": "2026-07-23" } diff --git a/crates/aura-bench/baselines/engine_throughput.json b/crates/aura-bench/baselines/engine_throughput.json index b3f2cfe..218512d 100644 --- a/crates/aura-bench/baselines/engine_throughput.json +++ b/crates/aura-bench/baselines/engine_throughput.json @@ -1,8 +1,8 @@ { "surface": "engine_throughput", "metrics": { - "bars_per_s": 13591474.080269944, - "wall_s": 0.735755367 + "bars_per_s": 14005588.039151624, + "wall_s": 0.714000724 }, "fingerprint": "last=0.417351 max_dd=8.274577 flips=265308 n=10000000", "reps": 3, @@ -11,6 +11,6 @@ "nproc": 24 }, "profile": "release", - "commit": "d62dede", - "date": "2026-07-17" + "commit": "9c7f60b", + "date": "2026-07-23" } diff --git a/crates/aura-bench/baselines/ingest_throughput.json b/crates/aura-bench/baselines/ingest_throughput.json index ddb27f8..b915b7f 100644 --- a/crates/aura-bench/baselines/ingest_throughput.json +++ b/crates/aura-bench/baselines/ingest_throughput.json @@ -1,8 +1,8 @@ { "surface": "ingest_throughput", "metrics": { - "bars_per_s": 12912289.748572402, - "wall_s": 0.388838858 + "bars_per_s": 13000457.745164338, + "wall_s": 0.386201786 }, "fingerprint": "n=251040 xor=0019885debd3bd5e", "reps": 3, @@ -11,6 +11,6 @@ "nproc": 24 }, "profile": "release", - "commit": "d62dede", - "date": "2026-07-17" + "commit": "9c7f60b", + "date": "2026-07-23" } diff --git a/crates/aura-bench/src/surfaces/campaign.rs b/crates/aura-bench/src/surfaces/campaign.rs index 2f1fbe9..7f733f6 100644 --- a/crates/aura-bench/src/surfaces/campaign.rs +++ b/crates/aura-bench/src/surfaces/campaign.rs @@ -67,8 +67,8 @@ pub const HEAVY_PROCESS_DOC_QUICK: &str = r#"{ /// `crates/aura-cli/examples/r_sma.json` except the second variant's bound /// lengths (3/6 instead of 2/4), which gives it a distinct content id — two /// strategies, same axes surface. -pub const BP_SMA_A: &str = r#"{"format_version":1,"blueprint":{"name":"sma_signal","nodes":[{"primitive":{"type":"SMA","name":"fast","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":2}}]}},{"primitive":{"type":"SMA","name":"slow","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":4}}]}},{"primitive":{"type":"Sub"}},{"primitive":{"type":"Bias","name":"bias","bound":[{"pos":0,"name":"scale","kind":"F64","value":{"F64":0.5}}]}}],"edges":[{"from":0,"to":2,"slot":0,"from_field":0},{"from":1,"to":2,"slot":1,"from_field":0},{"from":2,"to":3,"slot":0,"from_field":0}],"input_roles":[{"name":"price","targets":[{"node":0,"slot":0},{"node":1,"slot":0}],"source":"F64"}],"output":[{"node":3,"field":0,"name":"bias"}]}}"#; -pub const BP_SMA_B: &str = r#"{"format_version":1,"blueprint":{"name":"sma_signal","nodes":[{"primitive":{"type":"SMA","name":"fast","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":3}}]}},{"primitive":{"type":"SMA","name":"slow","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":6}}]}},{"primitive":{"type":"Sub"}},{"primitive":{"type":"Bias","name":"bias","bound":[{"pos":0,"name":"scale","kind":"F64","value":{"F64":0.5}}]}}],"edges":[{"from":0,"to":2,"slot":0,"from_field":0},{"from":1,"to":2,"slot":1,"from_field":0},{"from":2,"to":3,"slot":0,"from_field":0}],"input_roles":[{"name":"price","targets":[{"node":0,"slot":0},{"node":1,"slot":0}],"source":"F64"}],"output":[{"node":3,"field":0,"name":"bias"}]}}"#; +pub const BP_SMA_A: &str = r#"{"format_version":1,"blueprint":{"name":"sma_signal","doc":"fast/slow SMA difference clamped into a directional bias","nodes":[{"primitive":{"type":"SMA","name":"fast","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":2}}]}},{"primitive":{"type":"SMA","name":"slow","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":4}}]}},{"primitive":{"type":"Sub"}},{"primitive":{"type":"Bias","name":"bias","bound":[{"pos":0,"name":"scale","kind":"F64","value":{"F64":0.5}}]}}],"edges":[{"from":0,"to":2,"slot":0,"from_field":0},{"from":1,"to":2,"slot":1,"from_field":0},{"from":2,"to":3,"slot":0,"from_field":0}],"input_roles":[{"name":"price","targets":[{"node":0,"slot":0},{"node":1,"slot":0}],"source":"F64"}],"output":[{"node":3,"field":0,"name":"bias"}]}}"#; +pub const BP_SMA_B: &str = r#"{"format_version":1,"blueprint":{"name":"sma_signal","doc":"fast/slow SMA difference clamped into a directional bias","nodes":[{"primitive":{"type":"SMA","name":"fast","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":3}}]}},{"primitive":{"type":"SMA","name":"slow","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":6}}]}},{"primitive":{"type":"Sub"}},{"primitive":{"type":"Bias","name":"bias","bound":[{"pos":0,"name":"scale","kind":"F64","value":{"F64":0.5}}]}}],"edges":[{"from":0,"to":2,"slot":0,"from_field":0},{"from":1,"to":2,"slot":1,"from_field":0},{"from":2,"to":3,"slot":0,"from_field":0}],"input_roles":[{"name":"price","targets":[{"node":0,"slot":0},{"node":1,"slot":0}],"source":"F64"}],"output":[{"node":3,"field":0,"name":"bias"}]}}"#; fn run_in(bin: &Path, dir: &Path, args: &[&str]) -> Result<(String, Option), String> { let out = std::process::Command::new(bin) diff --git a/crates/aura-std/src/delay.rs b/crates/aura-std/src/delay.rs index 180ebc8..b62300a 100644 --- a/crates/aura-std/src/delay.rs +++ b/crates/aura-std/src/delay.rs @@ -65,7 +65,7 @@ impl Delay { inputs: vec![PortSpec { kind: ScalarKind::F64, firing: Firing::Any, name: "series".into() }], output: vec![FieldSpec { name: "value".into(), kind: ScalarKind::F64 }], params: vec![ParamSpec { name: "lag".into(), kind: ScalarKind::I64 }], - doc: "emits the input from `lag` cycles ago — the explicit delay register (C5)", + doc: "emits the input from `lag` cycles ago — the explicit delay register (C9)", }, |p| Box::new(Delay::new(p[0].i64() as usize)), ) diff --git a/docs/design/contracts/c29-self-description.md b/docs/design/contracts/c29-self-description.md index c841eef..19d765f 100644 --- a/docs/design/contracts/c29-self-description.md +++ b/docs/design/contracts/c29-self-description.md @@ -33,6 +33,15 @@ and on a doc that normalizes to the entry's own name Process/campaign documents take an additive-optional top-level `description`, gated only when present (`DocFault::BadDescription`). +**Scope at this record's writing (#321).** The gate walks five +vocabularies — process/campaign blocks, metrics, tap slots, tap folds, and +the closed node roster — plus the document `description` and the three +seams above. Recorded residue, tracked as #321 and not silently claimed: +`emit_vocabulary()` and `binding_column_vocabulary()` remain bare name +arrays, and builder schemas outside the closed node roster (e.g. the +internal tap recording sink) carry compile-required but shape-unwalked +docs. Closing #321 widens the walk and removes this paragraph. + **Id treatment.** Description fields that serialize participate in the content id and are blanked for the identity id, exactly as `Composite.doc` (`strip_debug_symbols`); `NodeSchema` is not serialized