0bf15cb069
First fieldtest of the project. A standalone downstream-consumer crate
(fieldtests/cycle-0006-substrate/) path-depends on the engine crates and
exercises the post-0006 substrate from the public interface only (rustdoc +
specs + ledger, never crates/ source):
1 custom recording node via the Node contract + Ctx::now()
2 fan-out/fan-in DAG, 3-arg bootstrap, run() -> ()
3 two interior streams recorded from one run (the cycle headline)
4 byte-identical recorded output across two runs (C1 determinism)
5 mis-wired recording edge rejected (KindMismatch) at bootstrap
Findings: 3 working (carry-on), 2 friction, 1 spec_gap.
- friction: a nested standalone consumer crate fights the workspace
resolver (needs an empty [workspace] table — Cargo's own hint).
- friction: recorder boilerplate is hand-rewritten per author (C9
deliberately ships no library sink).
- spec_gap: the public surface never states output: vec![] is THE sink
declaration, nor defines a Some return paired with empty output.
Spec at docs/specs/fieldtest-0006-substrate.md feeds the 0007 plan.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
44 lines
1.3 KiB
TOML
44 lines
1.3 KiB
TOML
# Standalone downstream-consumer crate for the cycle-0006 fieldtest.
|
|
#
|
|
# It is NOT a member of the aura workspace — it path-depends on the engine crates
|
|
# exactly as a real research project (C16) would, and is built via
|
|
# `cargo run --manifest-path fieldtests/cycle-0006-substrate/Cargo.toml --bin <name>`
|
|
# so HEAD source is always what runs.
|
|
# Empty [workspace] table: marks this fixture crate as its OWN workspace root, so
|
|
# it stays out of the engine workspace without editing the engine's root manifest.
|
|
# (Cargo's own error message lists this as the keep-it-out-of-the-workspace fix.)
|
|
# Recorded as a fieldtest finding: a standalone path-dep consumer crate nested
|
|
# under a workspace repo needs this one line.
|
|
[workspace]
|
|
|
|
[package]
|
|
name = "c0006-fieldtest"
|
|
version = "0.0.0"
|
|
edition = "2024"
|
|
publish = false
|
|
|
|
[dependencies]
|
|
aura-core = { path = "../../crates/aura-core" }
|
|
aura-engine = { path = "../../crates/aura-engine" }
|
|
aura-std = { path = "../../crates/aura-std" }
|
|
|
|
[[bin]]
|
|
name = "c0006_1_custom_node_now"
|
|
path = "c0006_1_custom_node_now.rs"
|
|
|
|
[[bin]]
|
|
name = "c0006_2_fanout_dag"
|
|
path = "c0006_2_fanout_dag.rs"
|
|
|
|
[[bin]]
|
|
name = "c0006_3_multi_sink_record"
|
|
path = "c0006_3_multi_sink_record.rs"
|
|
|
|
[[bin]]
|
|
name = "c0006_4_determinism"
|
|
path = "c0006_4_determinism.rs"
|
|
|
|
[[bin]]
|
|
name = "c0006_5_reject_mismatch"
|
|
path = "c0006_5_reject_mismatch.rs"
|