Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
dd212eb
fix(core): give the JSON-RPC runtime a 16 MiB worker stack to survive…
sanil-23 Jun 1, 2026
d5d5a64
test: green the Rust Core Coverage suite (stale assertions + env-race…
sanil-23 Jun 1, 2026
b389418
Merge branch 'fix/subagent-stack-overflow' into fix/coverage-stale-tests
sanil-23 Jun 1, 2026
4f6f891
Merge remote-tracking branch 'upstream/main' into fix/coverage-stale-…
sanil-23 Jun 1, 2026
543b847
test(coverage): serialize env-racing raw-coverage tests with env_lock…
sanil-23 Jun 1, 2026
99276a3
Revert "test(coverage): serialize env-racing raw-coverage tests with …
sanil-23 Jun 1, 2026
c2af5bc
test: update stale composio-enabled count assertion (#3113 sync redes…
sanil-23 Jun 1, 2026
695bacc
test: make round21 github-reader hermetic + drop stale comments asser…
sanil-23 Jun 1, 2026
a1b5484
test: make github-reader tests hermetic in memory_sync_sources + near90
sanil-23 Jun 1, 2026
be29029
test: responses-API input content is structured parts, not a bare string
sanil-23 Jun 1, 2026
89c4325
test: fix time-bomb in cron-add coverage test (hardcoded past 'at' date)
sanil-23 Jun 1, 2026
13d9cbf
test: give ApprovalGate test session_ids the required `session-` prefix
sanil-23 Jun 1, 2026
494579f
Merge remote-tracking branch 'upstream/main' into fix/coverage-stale-…
sanil-23 Jun 1, 2026
0e46854
ci(coverage): serialize core llvm-cov tests (--test-threads=1)
sanil-23 Jun 1, 2026
657781a
test(coverage): hold env_lock in orchestrator_tool_synthesis (fast ra…
sanil-23 Jun 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions src/core/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -278,8 +278,17 @@ fn run_server_command(args: &[String]) -> Result<()> {
crate::core::logging::init_for_cli_run(verbose, log_scope);

// Initialize the Tokio multi-threaded runtime.
//
// A single agent turn is a very large async state machine (system prompt +
// hundreds of tool specs + the nested provider/tool loop), and delegating
// to a sub-agent runs another full turn one level down. Even with the inner
// sub-agent future boxed (`subagent_runner::ops`), that nesting overflows
// tokio's default 2 MiB worker-thread stack and aborts the whole process
// (SIGABRT: "thread 'tokio-rt-worker' has overflowed its stack"), taking
// the JSON-RPC server down mid-request. Give workers a roomier stack.
let rt = tokio::runtime::Builder::new_multi_thread()
.enable_all()
.thread_stack_size(16 * 1024 * 1024)
.build()?;
rt.block_on(async {
crate::core::jsonrpc::run_server(host.as_deref(), port, socketio_enabled).await
Expand Down
11 changes: 11 additions & 0 deletions tests/near90_closure_raw_coverage_e2e.rs
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,17 @@ async fn round20_memory_sources_readers_and_sync_cover_error_edges_without_netwo
std::fs::create_dir_all(&bin).expect("bin dir");
let script = bin.join("gh");
write_fake_gh_round20(&script);
let git_stub = bin.join("git");
std::fs::write(&git_stub, "#!/usr/bin/env bash\nexit 1\n").expect("write fake git");
#[cfg(unix)]
{
use std::os::unix::fs::PermissionsExt;
let mut perms = std::fs::metadata(&git_stub)
.expect("metadata")
.permissions();
perms.set_mode(0o755);
std::fs::set_permissions(&git_stub, perms).expect("chmod fake git");
}
let old_path = std::env::var("PATH").unwrap_or_default();
let _path = EnvGuard::set("PATH", format!("{}:{old_path}", bin.display()));

Expand Down
8 changes: 8 additions & 0 deletions tests/tools_approval_channels_raw_coverage_e2e.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1606,6 +1606,14 @@ fn tools_and_tool_registry_public_surfaces_cover_schema_and_assembly_paths() {

#[tokio::test]
async fn orchestrator_tool_synthesis_covers_agent_and_integration_delegation_edges() {
// This test reads the process-global connection/toolkit registry (the
// integrations tool's available-toolkit list). Sibling tests mutate
// OPENHUMAN_WORKSPACE under env_lock; without holding it here, a concurrent
// workspace swap trampled our view and dropped gmail_pro/slack_bot from the
// unknown-toolkit suggestion (flaky only under llvm-cov's slower parallel
// run). Hold the same lock so this test is hermetic without serializing the
// whole suite.
let _lock = env_lock();
let mut registry = AgentDefinitionRegistry::default();
registry.insert(coverage_agent_definition(
"researcher",
Expand Down
Loading