feat(cli): aura nodes new — node-crate scaffold + attach (#241 T5-T6)
- New clap family `aura nodes new <name> [--engine-path] [--namespace]`: scaffolds a node crate as a SIBLING of the project root (Cargo.toml with the aura-core path-dep, the parameterized Scale starter node, roster macro, crate-scoped .gitignore + CLAUDE.md, own git repo) and appends the `[nodes] crates = ["../<name>"]` pointer to the project's Aura.toml. Refuses outside a project, on any existing [nodes] section (incl. an empty crates array), and on an existing destination; joins the load-phase bypass beside `aura new` (a scaffolder must work in an unbuilt tree). - The old single-tier scaffold() is gone; the crate templates live on in scaffold_node_crate; dead-code bridges removed with their callers. - tests/project_nodes.rs: attach + refusals + namespace override + the full role-2 loop (scaffold, cargo build, vocabulary resolves <ns>::Scale end to end). - tests/project_sweep_campaign.rs fixture reworked to the two-tier shape (aura new + aura nodes new --namespace knob_lab); the two campaign acceptance tests are byte-unchanged and green. refs #241
This commit is contained in:
@@ -216,11 +216,6 @@ fn parse_aura_toml(root: &Path) -> Result<AuraToml, ProjectError> {
|
||||
|
||||
/// Read a project's `Aura.toml` (for scaffold-side tooling that must not
|
||||
/// trigger a crate load, e.g. `aura nodes new`).
|
||||
///
|
||||
/// `dead_code` is allowed here only until that consumer lands — remove the
|
||||
/// allow with the first caller, at which point genuine unuse must surface
|
||||
/// again.
|
||||
#[allow(dead_code)]
|
||||
pub fn read_aura_toml(root: &Path) -> Result<AuraToml, ProjectError> {
|
||||
parse_aura_toml(root)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user