Files
Aura/Cargo.toml
T
Brummel 3a4f1c4597 feat(campaign): aura-campaign crate — types, member_metric, preflight (0107 tasks 4-5)
New leaf library crate: the campaign-execution semantics home (#198
home decision — reusable beyond the CLI; NOT C21's project-side
World). CellSpec + the MemberRunner seam (the only thing a consumer
implements), MemberFault/ExecFault (Display-free, prose at the binary
seam), member_metric over the 14 per-member scalars (third roster
site, refs #190 — drift fails safe as a preflight refusal), and
preflight: v1 pipeline shape std::sweep [std::gate]* [std::walk_forward],
rankable-metric and gate-metric rosters, plateau-in-wf and
deflate+plateau refusals, i64-fit guard on wf lengths — all before any
member runs.

Post-loop: the held quality finding (untested i64-fit arm) verified
real and closed by hand — preflight_refuses_wf_length_exceeding_i64.

Gates: aura-campaign 14/0, clippy -D warnings clean.

refs #198
2026-07-03 19:59:21 +02:00

39 lines
1.4 KiB
TOML

# aura — a "game engine for traders": a Rust framework + playground to author
# trading nodes, backtest them deterministically and in parallel, compose them
# fractally, and freeze a validated strategy into a standalone bot.
#
# Workspace split is driven by the cdylib hot-reload boundary: `aura-core` is the
# shared contract that BOTH the engine and every hot-reloadable signal/node
# cdylib link against. Add crates only when a boundary proves real.
[workspace]
resolver = "3"
members = [
"crates/aura-core",
"crates/aura-std",
"crates/aura-engine",
"crates/aura-analysis",
"crates/aura-composites",
"crates/aura-cli",
"crates/aura-ingest",
"crates/aura-registry",
"crates/aura-research",
"crates/aura-campaign",
]
[workspace.package]
edition = "2024"
version = "0.1.0"
license = "proprietary"
publish = false
[workspace.dependencies]
serde = { version = "1", features = ["derive"] }
# float_roundtrip is load-bearing for bit-identical reproduction (`aura reproduce`,
# #158): an f64 blueprint param (e.g. a Bias `scale`) is round-tripped through the
# content-addressed store as JSON, and the DEFAULT serde_json parser can be 1 ULP off,
# which would re-derive a member as DIVERGED. This feature guarantees the exact f64 is
# parsed back. Exercised (with a 1-ULP canary value) by aura-cli's
# `f64_blueprint_param_survives_store_round_trip_bit_identically`.
serde_json = { version = "1", features = ["float_roundtrip"] }