498582deb1
The right-hand side of the LayoutGeometry completeness diff was a second hand-written list. Both this branch's own review and ChatGPT Codex found it, and the previous commit corrected the PROSE; Codex asked for the FIX. This is it. the_enumeration_names_every_variant_the_derive_declares diffs every_model_command() against variants::declared::<ModelCommand>() -- serde's derive-generated variant list, improvise-5ubs's mechanism. The chain is now derive -> every_model_command() -> model_effects -> case list, every link checked, which is what the ticket asked for. Injection is Codex's own, run end to end: a ModelCommand::ProbeGeometry whose effect declares LayoutGeometry, with the model_effects and variant_name arms the compiler forces, omitted from BOTH lists. Before: the whole workspace green. After: staged, each stage naming the probe -- every_model_command() never constructs ["ProbeGeometry"] then, with the enumeration repaired and only the case list short, the_layout_geometry_cases_are_every_wire_effect_of_that_kind right: [... "ProbeGeometry" ...] The staging is the point: the two tests answer different questions. SCOPE OVERRUN, declared. `variants` was `#[cfg(test)] pub(crate)`, not merely `pub(crate)`, and `declared()` needs serde_json, which improvise-protocol carries only as a dev-dependency -- so the authorised one-token change could not work. What it took instead, all plumbing, no behaviour change: improvise-protocol/Cargo.toml serde_json optional + a `test-support` feature improvise-protocol/src/lib.rs #[cfg(any(test, feature = "test-support"))] pub improvise-command/Cargo.toml dev-dep enables that feature The feature is OFF in every shipped build: `cargo tree --edges normal --target wasm32-unknown-unknown` shows no serde_json, and all eight wasm-gated crates still check clean. Drop this commit if the crossing is unwanted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FC2jVn8Au7E9JPkw6bwXXH
26 lines
873 B
TOML
26 lines
873 B
TOML
[package]
|
|
name = "improvise-command"
|
|
version = "0.1.0-rc2"
|
|
edition = "2024"
|
|
description = "Command/effect layer and semantic app state for improvise"
|
|
license = "Apache-2.0"
|
|
repository = "https://github.com/fiddlerwoaroof/improvise"
|
|
|
|
[dependencies]
|
|
improvise-core = { path = "../improvise-core" }
|
|
improvise-protocol = { path = "../improvise-protocol" }
|
|
improvise-formula = { path = "../improvise-formula" }
|
|
improvise-io = { path = "../improvise-io" }
|
|
improvise-gp = { path = "../improvise-gp" }
|
|
anyhow = "1"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
unicode-width = "^0.2"
|
|
# Instant::now() panics on wasm32-unknown-unknown; web_time re-exports
|
|
# std::time off-wasm and uses performance.now() on it (improvise-ywd).
|
|
web-time = "1"
|
|
|
|
[dev-dependencies]
|
|
improvise-protocol = { path = "../improvise-protocol", features = ["test-support"] }
|
|
tempfile = "3"
|