Commit Graph
38 Commits
Author SHA1 Message Date
haelyra 077d74764f test(ecc2): assert isolated config roots 2026-10-01 12:09:57 -04:00
haelyra 5ea629876e fix: reconcile stewardship batch on current main
Preserve the Bengali and MyBatis catalog additions, keep Laravel storage examples disk-consistent, isolate ECC 2 test configuration with private permissions, and verify every command-referenced runtime script is published.
2026-09-30 13:29:20 -04:00
Toni AlataloandClaude Sonnet 5.5 708d621372 fix(ecc2): also sandbox the legacy ~/.claude/ecc2.toml path under cfg(test)
Addresses review feedback on #3277: the previous commit sandboxed the
primary config path, but Config::global_config_paths() also reads the
legacy $HOME/.claude/ecc2.toml. A test that called Config::load() would
pick up (or fail on a malformed) developer-local legacy config.

Under cfg(test), legacy_global_config_path() now resolves inside the same
per-test-thread scratch root as config_path().

Proof of red (new test, before the fix):

$ cargo test legacy_config_path_under_test
    running 1 test
    test config::tests::legacy_config_path_under_test_is_sandboxed_away_from_user_home ... FAILED
    failures:
    ---- config::tests::legacy_config_path_under_test_is_sandboxed_away_from_user_home stdout ----
    tests must never read the real legacy user config, got /Users/<me>/.claude/ecc2.toml
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    failures:
        config::tests::legacy_config_path_under_test_is_sandboxed_away_from_user_home
    test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 491 filtered out; finished in 0.00s
    error: test failed, to rerun pass `--bin ecc-tui`

After the fix:

$ cargo test legacy_config_path_under_test
    test config::tests::legacy_config_path_under_test_is_sandboxed_away_from_user_home ... ok
    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 491 filtered out

$ cargo test   # full suite
    test result: ok. 491 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out

Refs #3276

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Y54kLgLGzLGqAxwLMFEc9
2026-09-30 23:08:55 +09:30
Toni AlataloandClaude Sonnet 5.5 6f141fe5a2 fix(ecc2): sandbox Config::config_path() under cfg(test)
Dashboard tests that spawn sessions reach Config::save() through
auto_split_layout_after_spawn, which wrote to the developer's real
~/Library/Application Support/ecc2/config.toml. The fixture's db_path
pointed at a deleted temp dir, so the next `cargo run` failed with
"unable to open database file".

Under cfg(test), config_root() now returns a per-test-thread scratch
directory that is removed when the thread exits, so no test can reach
the real user config.

Fixes #3276

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Y54kLgLGzLGqAxwLMFEc9
2026-09-30 22:50:52 +09:30
Affaan Mustafa 30913b2cc4 feat: add ecc2 computer use remote dispatch 2026-04-10 09:40:01 -07:00
Affaan Mustafa bbed46d3eb feat: detect custom ecc2 harness markers 2026-04-10 09:08:06 -07:00
Affaan Mustafa bcd869d520 feat: add ecc2 configurable harness runners 2026-04-10 08:45:47 -07:00
Affaan Mustafa 406722b5ef feat: add ecc2 markdown directory memory connector 2026-04-10 06:38:33 -07:00
Affaan Mustafa 966af37f89 feat: add ecc2 dotenv memory connectors 2026-04-10 06:30:32 -07:00
Affaan Mustafa 22a5a8de6d feat: add ecc2 markdown memory connectors 2026-04-10 06:26:42 -07:00
Affaan Mustafa d3b680b6db feat: add ecc2 directory memory connectors 2026-04-10 06:20:15 -07:00
Affaan Mustafa d49ceacb7d feat: add ecc2 memory connectors 2026-04-10 06:14:13 -07:00
Affaan Mustafa 194bf605c2 feat: add ecc2 orchestration templates 2026-04-10 03:38:11 -07:00
Affaan Mustafa 1e4d6a4161 feat: add ecc2 agent profiles 2026-04-09 22:43:16 -07:00
Affaan Mustafa e48468a9e7 feat: add ecc2 conflict resolution protocol 2026-04-09 22:20:35 -07:00
Affaan Mustafa ea0fb3c0fc feat: add layered ecc2 toml config loading 2026-04-09 22:01:57 -07:00
Affaan Mustafa 5fb2e62216 feat: add ecc2 webhook notifications 2026-04-09 21:14:09 -07:00
Affaan Mustafa b45a6ca810 feat: add ecc2 completion summary notifications 2026-04-09 20:59:24 -07:00
Affaan Mustafa a4d0a4fc14 feat: add ecc2 desktop notifications 2026-04-09 20:43:33 -07:00
Affaan Mustafa 13f99cbf1c feat: add worktree retention cleanup policy 2026-04-09 08:29:21 -07:00
Affaan Mustafa 491f213fbd feat: enforce queued parallel worktree limits 2026-04-09 08:23:01 -07:00
Affaan Mustafa 941d4e6172 feat(ecc2): enforce configurable worktree branch prefixes 2026-04-09 08:08:42 -07:00
Affaan Mustafa 24a3ffa234 feat(ecc2): add session heartbeat stale detection 2026-04-09 07:20:40 -07:00
Affaan Mustafa 48fd68115e feat(ecc2): sync hook activity into session metrics 2026-04-09 07:02:24 -07:00
Affaan Mustafa 6f08e78456 feat: auto-pause ecc2 sessions when budgets are exceeded 2026-04-09 06:47:28 -07:00
Affaan Mustafa 67d06687a0 feat: add ecc2 configurable budget thresholds 2026-04-09 06:36:22 -07:00
Affaan Mustafa 08f61f667d feat: sync ecc2 cost tracker metrics 2026-04-09 06:22:20 -07:00
Affaan Mustafa a54799127c feat: make ecc2 pane navigation shortcuts configurable 2026-04-09 06:05:27 -07:00
Affaan Mustafa c7bf143450 feat: persist ecc2 pane sizes by layout 2026-04-09 03:50:29 -07:00
Affaan Mustafa 63299b15b3 feat: add ecc2 runtime theme toggle 2026-04-09 03:43:28 -07:00
Affaan Mustafa b3f781a648 feat: default ecc2 worktrees through policy 2026-04-08 15:58:31 -07:00
Affaan Mustafa 27d7964bb1 feat: add ecc2 worktree auto-merge policy 2026-04-08 15:11:22 -07:00
Affaan Mustafa a7309481f4 feat: persist ecc2 auto-dispatch policy 2026-04-07 13:18:10 -07:00
Affaan Mustafa 2d5d0e5c1d feat: add ecc2 auto-dispatch backlog sweep 2026-04-07 12:57:12 -07:00
Affaan Mustafa 8303970258 feat(ecc2): add tool risk scoring and actions 2026-03-25 06:00:34 -04:00
Affaan Mustafa 8981dd6067 feat(ecc2): add split-pane dashboard resizing 2026-03-25 05:45:43 -04:00
Affaan Mustafa d7bcc92007 feat(ecc2): add token/cost meter widget (#775)
- TokenMeter widget using ratatui Gauge with color gradient (green->yellow->red)
- Budget fields (cost_budget_usd, token_budget) in Config
- Aggregate cost display in status bar
- Warning state at 80%+ budget consumption
- Tests for gradient, config fallback, and meter rendering
2026-03-24 22:52:52 -04:00
Affaan Mustafa 00dce30d3b feat: scaffold ECC 2.0 Rust TUI — agentic IDE control plane
Initial scaffold for ECC 2.0, a terminal-native agentic IDE built with
Ratatui. Compiles to a 3.4MB single binary.

Core modules:
- Session manager with SQLite-backed state store
- TUI dashboard with split-pane layout (sessions, output, metrics)
- Worktree orchestration (auto-create per agent session)
- Observability with tool call risk scoring
- Inter-agent communication via SQLite mailbox
- Background daemon with heartbeat monitoring
- CLI with start/stop/sessions/status/daemon subcommands

Tech stack: Rust + Ratatui + Crossterm + Tokio + rusqlite + git2 + clap
2026-03-24 03:43:05 -07:00