Found while landing the first CI workflow (PR #169): the no-default-features CI job was written as cargo test -p kaish-kernel --no-default-features --locked and failed immediately — KernelConfig::repl() is #[cfg(feature = "localfs")] (kernel.rs:442) and ~25 integration-test files call it (plus whatever falls out after that first error; the compile stops early, so the true surface is unknown until the sweep starts).
This was never a working gate: earlier local "verification" only ran cargo check, which doesn't build test targets. The documented invariant ("sandbox-mode compiles") is real and now enforced — PR #169 encodes the leg as cargo check -p kaish-kernel --no-default-features --locked.
Wanted: make cargo test -p kaish-kernel --no-default-features compile and pass, so the CI leg can upgrade from check to test and the no-default-features configuration gets actual test coverage, not just compile coverage.
The existing convention to extend is external_command_tests.rs, which gates the whole file with #![cfg(feature = "subprocess")]. Test files that exercise localfs-only constructors get #![cfg(feature = "localfs")]; files that genuinely can run featureless (lexer/parser/validator suites using KernelConfig::isolated()) should be left ungated so the leg still runs them. Update the ci.yml leg and its comment (it references this issue) in the same PR.
🤖 Generated with Claude Code
Found while landing the first CI workflow (PR #169): the
no-default-featuresCI job was written ascargo test -p kaish-kernel --no-default-features --lockedand failed immediately —KernelConfig::repl()is#[cfg(feature = "localfs")](kernel.rs:442) and ~25 integration-test files call it (plus whatever falls out after that first error; the compile stops early, so the true surface is unknown until the sweep starts).This was never a working gate: earlier local "verification" only ran
cargo check, which doesn't build test targets. The documented invariant ("sandbox-mode compiles") is real and now enforced — PR #169 encodes the leg ascargo check -p kaish-kernel --no-default-features --locked.Wanted: make
cargo test -p kaish-kernel --no-default-featurescompile and pass, so the CI leg can upgrade fromchecktotestand the no-default-features configuration gets actual test coverage, not just compile coverage.The existing convention to extend is
external_command_tests.rs, which gates the whole file with#![cfg(feature = "subprocess")]. Test files that exercise localfs-only constructors get#![cfg(feature = "localfs")]; files that genuinely can run featureless (lexer/parser/validator suites usingKernelConfig::isolated()) should be left ungated so the leg still runs them. Update the ci.yml leg and its comment (it references this issue) in the same PR.🤖 Generated with Claude Code