Summary
Two related gaps keep the rust-feature-gate-smoke lane from fully covering the gates-off (--no-default-features --features tokenjuice-treesitter) build:
- The full test suite can't run in CI (below).
--all-targets doesn't compile in gates-off — the tests/ integration crates name gated symbols without #[cfg].
1. Full gates-off test suite (blocked on stack overflow)
The lane runs a scoped cargo test (#5022 added it: core::all:: core::cli:: core::jsonrpc:: core::legacy_aliases:: agent_registry::agents::loader::). It cannot run the full --lib suite because a bare full run aborts on openhuman::agent::harness::session::tests::turn_dispatches_spawn_subagent_through_full_path with fatal runtime error: stack overflow. This reproduces identically in the gates-ON build, so it is pre-existing and unrelated to feature gates — a deep-async-stack task_local::scope issue. RUST_MIN_STACK mitigates but an unscoped run also OOMs.
The scoped lane routes around it by scope, not by skip — no test is quarantined.
2. --all-targets gates-off compile breaks
cargo check --no-default-features --features tokenjuice-treesitter --all-targets currently fails with ~9 errors: the tests/ integration crates reference gated symbols without gating them:
tests/x402_twit_sh_live.rs → x402::tools::X402RequestTool (web3-gated)
tests/json_rpc_e2e.rs → mcp_registry::store::set_cached (mcp-gated), voice::reply_speech::{test_seam, TEST_SEAM_ENV} (voice-gated)
These are latent — nobody ran --all-targets gates-off before #5022. The smoke lane deliberately stays lib-scoped until these are #[cfg]-gated (or the referenced symbols are carved out), at which point --all-targets can be added back to catch gates-off compile drift in tests/.
Done when
- The stack-overflow / OOM root cause is fixed (Box::pin at the task-local boundary), and the lane runs the full gates-off
cargo test.
- The
tests/ integration crates compile with gates off, and --all-targets is restored to the lane's check step.
Related
Summary
Two related gaps keep the
rust-feature-gate-smokelane from fully covering the gates-off (--no-default-features --features tokenjuice-treesitter) build:--all-targetsdoesn't compile in gates-off — thetests/integration crates name gated symbols without#[cfg].1. Full gates-off test suite (blocked on stack overflow)
The lane runs a scoped
cargo test(#5022 added it:core::all:: core::cli:: core::jsonrpc:: core::legacy_aliases:: agent_registry::agents::loader::). It cannot run the full--libsuite because a bare full run aborts onopenhuman::agent::harness::session::tests::turn_dispatches_spawn_subagent_through_full_pathwithfatal runtime error: stack overflow. This reproduces identically in the gates-ON build, so it is pre-existing and unrelated to feature gates — a deep-async-stacktask_local::scopeissue.RUST_MIN_STACKmitigates but an unscoped run also OOMs.The scoped lane routes around it by scope, not by skip — no test is quarantined.
2.
--all-targetsgates-off compile breakscargo check --no-default-features --features tokenjuice-treesitter --all-targetscurrently fails with ~9 errors: thetests/integration crates reference gated symbols without gating them:tests/x402_twit_sh_live.rs→x402::tools::X402RequestTool(web3-gated)tests/json_rpc_e2e.rs→mcp_registry::store::set_cached(mcp-gated),voice::reply_speech::{test_seam, TEST_SEAM_ENV}(voice-gated)These are latent — nobody ran
--all-targetsgates-off before #5022. The smoke lane deliberately stays lib-scoped until these are#[cfg]-gated (or the referenced symbols are carved out), at which point--all-targetscan be added back to catch gates-off compile drift intests/.Done when
cargo test.tests/integration crates compile with gates off, and--all-targetsis restored to the lane's check step.Related