Skip to content

CI: run the full gates-off test suite (blocked on task_local stack overflow) #5021

Description

@oxoxDev

Summary

Two related gaps keep the rust-feature-gate-smoke lane from fully covering the gates-off (--no-default-features --features tokenjuice-treesitter) build:

  1. The full test suite can't run in CI (below).
  2. --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.rsx402::tools::X402RequestTool (web3-gated)
  • tests/json_rpc_e2e.rsmcp_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

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions