Skip to content

cargo test -p kaish-kernel --no-default-features has never compiled — feature-gate the integration-test crates #170

Description

@tobert

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions