Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
7aa7783
feat: Add agent instructions, OpenAI-compatible providers, and fix wi…
Codename-11 Apr 5, 2026
42c965f
feat: dashboard enhancements, backup/export, profile cloning, sidebar…
Codename-11 Apr 18, 2026
8e9f965
docs: Mark shipped items in FEATURES.md
Codename-11 Apr 18, 2026
c16c1a2
docs: Add plan for AI chat + full roundtable integration
Codename-11 Apr 18, 2026
6ff876b
feat: launch mode toggle + agent client foundation (Phase 0/0.5/1)
Codename-11 Apr 18, 2026
f84b459
docs: Mark Phase 0, 0.5, 1 complete in plan
Codename-11 Apr 18, 2026
443a78c
feat: bare launch, tool registry, knowledge layer, docs (streams α/β/…
Codename-11 Apr 18, 2026
aaea851
docs: Mark Phase 0.7, 2, 3 complete in plan
Codename-11 Apr 18, 2026
a14bedc
feat: arc chat CLI + roundtable orchestrator (Wave 1: Phases 4 + 5)
Codename-11 Apr 18, 2026
b3c7538
feat: roundtable CLI + dashboard chat + docs + 0.4.0 (Wave 2: Phases …
Codename-11 Apr 18, 2026
e02462c
feat: dashboard roundtable + pipelines views (Wave 3: Phase 8)
Codename-11 Apr 18, 2026
377bd9c
fix: dashboard chat/roundtable/pipelines wiring + visual polish
Codename-11 Apr 18, 2026
bffc9d1
fix(dashboard): add request/upgrade/crash logging + WS-disconnect banner
Codename-11 Apr 18, 2026
49eccdc
fix(dashboard): release :3700 cleanly on tsx --watch restart
Codename-11 Apr 19, 2026
58303f1
feat(v3): daemon skeleton, binary-mux WS protocol, client SDK
Codename-11 Apr 19, 2026
eeda5fb
fix(daemon): retry tmp rmSync on Windows to avoid ENOTEMPTY
Codename-11 Apr 19, 2026
ee85184
fix(daemon): swallow tmp cleanup errors on Windows
Codename-11 Apr 19, 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
Binary file added .bg-shell/manifest.json
Binary file not shown.
40 changes: 39 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,43 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/), and this

## [Unreleased]

## [0.4.0] - 2026-04-18

### Added

- **`arc chat` CLI** — interactive REPL with streaming responses, tool use, and permission modes (`read-only` / `supervised` / `autonomous`). REPL slash commands: `/exit`, `/save`, `/new`, `/mode`, `/clear`, `/sessions`, `/resume`, `/help`. One-shot mode via `--once "<prompt>"`.
- **`ChatSession` per-profile persistence** — sessions stored at `~/.arc/profiles/<name>/chat-sessions/<id>.json` with atomic writes; `--session <id>` / `/resume <id>` to pick up where you left off.
- **Roundtable orchestrator** — `RoundtableOrchestrator` class drives the existing roundtable hook over multiple profiles with adaptive delivery pacing (EMA latency) and a designated synthesizer returning a consensus score. Ported from Agent-Forge.
- **Staged workflow state machine** — `StagedWorkflowManager` implements PLAN → EXEC → VERIFY with per-phase completion patterns and timeouts.
- **Agent stall watchdog** — `AgentWatchdog` nudges agents at 3 min, marks them stalled at 5 min, and runs a decision protocol (ported from Agent-Forge).
- **Agent client abstraction** — `packages/core/src/agent-client/` one-shot CLI invocation for Claude / Codex / Gemini with MCP config injection per `mcpMode` variant and per-tool stream parsers.
- **Tool registry + agent loop** — `packages/core/src/agent/` with three permission modes and ~16 ARC tools (11 read, 4 write, 1 dangerous) wired to existing handlers.
- **Knowledge endowment** — `packages/core/src/knowledge/` with static ARC catalog (architecture + 52-entry command reference + 16-term glossary), 33-entry feature index, and `buildSystemPrompt()` runtime composer under 4K tokens (~1.3K typical).
- **Launch modes** — `launchMode: "native" | "worker"` field on Profile (default `native`). `--native` / `--worker` CLI overrides. TUI `m` key in ProfilesView toggles. Doctor check for deprecated `CLAUDE_CODE_NO_FLICKER` env var.
- **Bare launch** — `arc run <tool>` and `arc launch --bare <tool>` skip the ARC overlay entirely (no env injection, no hook pipeline). Tool-name inference falls through to bare when no matching profile exists.
- **Clearable active profile** — `arc profile switch none` and `arc profile clear-active` set `activeProfile` to `null`. Rendered as `(none)` in CLI and TUI.
- **Agent instructions** — `instructions` / `instructionsFile` fields on Profile, injected as `ARC_AGENT_INSTRUCTIONS` env var at launch. `arc instructions` CLI: `show` / `set` / `edit` / `clear`.
- **OpenAI-compatible providers** — `openai-compat` auth type + `ProviderConfig` (`baseUrl`, `model`, `apiKeyEnvVar`, `displayName`) on Profile; 7 presets (OpenRouter, Ollama, LM Studio, Together, Groq, MiniMax, DeepSeek). `arc provider` CLI: `set` / `show` / `clear` / `presets`.
- **Backup / export / import** — `arc backup create/restore/list` for a gzipped `~/.arc/` archive (credentials excluded by default); `arc profile export` / `arc profile import-file` for single-profile transport with inlined instructions.
- **Profile cloning** — `cloneProfile()` core function + `arc profile clone <src> <dst> [--no-copy-dir]` CLI + `Shift+C` inline clone in ProfilesView.
- **Launch history** — `~/.arc/history.json` records each launch (profile, tool, timestamp, outcome, exitCode); DashView shows recent launches + activity log entries.
- **Toast notifications** — `ToastProvider` + `useToast()` with auto-dismiss (2.5 s); mounted globally in the Dashboard.
- **Interactive sidebar queue** — Enter on a profile row in the Sidebar quick-launches without switching views.

### Documentation

- `user-docs/guide/chat.md` — Chat Guide (quickstart, permission modes, REPL commands, session persistence, known limitations).
- `user-docs/guide/roundtable.md` — Running Roundtables (concepts, programmatic API, adaptive pacing, worker-mode requirement).
- `user-docs/guide/multi-agent-pipelines.md` — PLAN → EXEC → VERIFY state machine with completion patterns and timeouts.
- `user-docs/architecture/index.md` — extended "Agent Client + Chat + Orchestration" section.

### Coming in 0.4.x / 0.5.x

- `arc roundtable` CLI with streaming transcript and per-agent color coding (Phase 6).
- MCP tools: `arc_chat`, `arc_roundtable`, and the 6-tool `team_*` contract (Phase 6).
- Dashboard chat view with per-session WebSocket streaming and tool-call visualization (Phase 7).
- Dashboard roundtable + pipelines views (Phase 8).

## [0.2.0] - 2026-04-03

All 25 phases of the [v2.0 spec](./docs/spec/SPEC.md) are now implemented. ARC has evolved from a profile manager into a unified agent runtime control plane, absorbing the [Axiom-Supervisor](https://github.com/Codename-11/axiom-supervisor) project.
Expand Down Expand Up @@ -186,6 +223,7 @@ All 25 phases of the [v2.0 spec](./docs/spec/SPEC.md) are now implemented. ARC h
- **Light mode contrast** — WCAG AA compliant dimmed/border colors, explicit `colors.text` on import hint
- **React hooks violation** — `useScreenSize()` moved above conditional returns in DashView

[Unreleased]: https://github.com/Codename-11/ARC/compare/v0.2.0...HEAD
[Unreleased]: https://github.com/Codename-11/ARC/compare/v0.4.0...HEAD
[0.4.0]: https://github.com/Codename-11/ARC/compare/v0.2.0...v0.4.0
[0.2.0]: https://github.com/Codename-11/ARC/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/Codename-11/ARC/releases/tag/v0.1.0
13 changes: 11 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,17 @@ ARC (Agent Runtime Control) is a CLI + TUI for managing multiple agent profiles
- **Landing site:** `site/` — React 19 + Vite + Tailwind v4, Nothing-design marketing page
- **Deployment:** Root `Dockerfile` + `nginx.conf` — multi-stage build merging `site/` at `/` and `user-docs/` at `/docs/` into single nginx container
- **Web Dashboard:** 13 view components (Overview, Sessions, Traces, Risk, Tasks, Skills, Memory, Agents, Factory + Profiles, Diagnostics, Sync, Plugins)
- **Orchestration layer:** Hook pipeline (8 hooks in priority order), roundtable multi-agent discussions, task delegation protocol, interagent routing, source classification
- **Adapters:** Claude Code (SDK + plugin + hooks), Codex CLI, Gemini CLI, OpenClaw (native plugin), Hermes Agent (MCP bridge), Generic (fallback for any tool)
- **Orchestration layer:** Hook pipeline (8 hooks in priority order), roundtable multi-agent discussions, task delegation protocol, interagent routing, source classification, `arc chat` REPL, `RoundtableOrchestrator`, `StagedWorkflowManager` (PLAN/EXEC/VERIFY), `AgentWatchdog` (stall detection)
- **Adapters:** Claude Code (SDK + plugin + hooks), Codex CLI, Gemini CLI, OpenClaw (native plugin), Hermes Agent (MCP bridge), OpenAI Compatible (custom providers), Generic (fallback for any tool)
- **Agent instructions:** `instructions` / `instructionsFile` fields on Profile; resolved at launch, injected as `ARC_AGENT_INSTRUCTIONS` env var; `arc instructions` CLI for show/set/edit/clear
- **Custom providers:** `openai-compat` auth type + `ProviderConfig` (baseUrl, model, apiKeyEnvVar) on Profile; 7 presets (OpenRouter, Ollama, LM Studio, Together, Groq, MiniMax, DeepSeek); `arc provider` CLI for set/show/clear/presets
- **Launch modes:** `launchMode: "native" | "worker"` on Profile (default `native`). Native uses full TTY handoff so the tool paints its own TUI; worker uses `spawnManagedProcess` for ARC-supervised orchestration. CLI flags `--native` / `--worker` override. TUI: `m` in ProfilesView toggles. Roundtable forces worker regardless.
- **Bare launch:** `arc run <tool>` and `arc launch --bare <tool>` skip ARC overlay entirely (no env injection, no hook pipeline). Tool-name inference falls through to bare when no matching profile exists. `activeProfile` may be `null` — cleared via `arc profile switch none` or `arc profile clear-active`, rendered as `(none)`.
- **Agent client:** `packages/core/src/agent-client/` — CLI-spawn clients for Claude/Codex/Gemini with MCP config injection per `mcpMode` variant and per-tool stream parsers. Substrate for `arc chat` + `RoundtableOrchestrator`. See `docs/plans/ai-and-roundtable.md`.
- **Agent loop + tool registry:** `packages/core/src/agent/` — tool registry with read-only/supervised/autonomous permission modes, `runAgent` generator for tool-use dispatch, ~16 ARC tools wired to existing handlers (list_profiles, clone_profile, switch_active_profile, query_logs, etc.).
- **Knowledge:** `packages/core/src/knowledge/` — static ARC catalog (architecture + 52-entry command reference + 16-term glossary) + 33-entry feature index + `buildSystemPrompt()` runtime composer under 4K tokens.
- **Chat:** `packages/core/src/chat/` — `ChatSession` primitive + per-profile store at `~/.arc/profiles/<name>/chat-sessions/` (atomic writes, resume support). Consumed by `arc chat` CLI (`packages/cli/src/commands/chat.ts`).
- **Orchestration:** `packages/core/src/orchestration/` — `RoundtableOrchestrator` (driver over the roundtable hook with adaptive pacing + synthesizer), `StagedWorkflowManager` (PLAN → EXEC → VERIFY with completion patterns + per-phase timeouts), `AgentWatchdog` (3-min nudge / 5-min stall), `AgentDeliveryPolicy` + EMA latency tracking (ported from Agent-Forge).

## Key Conventions

Expand Down
36 changes: 25 additions & 11 deletions FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

Tracking file for planned features, enhancements, and ideas. Checked items are shipped. See `docs/expansion-ideas.md` for broader product direction and `docs/spec/SPEC.md` for the full v2.0 spec.

## v3 — Daemon + many clients (planned)

See [docs/plans/arc-v3-daemon.md](./docs/plans/arc-v3-daemon.md) for the full 14-phase plan. Targeting `1.0.0` (breaking). Daemon on :7272 + binary-mux WS protocol + client SDK; TUI/CLI/dashboard/Electron/mobile all become peer clients; E2E-encrypted relay for remote access; SQLite canonical store; provider `extends`; `arc loop`; chat rooms; enhanced roundtable + handoff; Docker server mode.

## Priority 1 — Core UX Gaps

- [x] **Profile creation in TUI** — stepped overlay form (name -> tool -> auth type -> done) so users don't have to exit the TUI to create profiles
Expand All @@ -15,6 +19,8 @@ Tracking file for planned features, enhancements, and ideas. Checked items are s
- [x] **Workspace-aware profile auto-selection** — `arc.json` in repo root specifies preferred profile/tool; workspace overrides applied on launch (Phase 9)
- [x] **Workspace shell syntax highlighting** — tokenized input with color-coded `/commands` (green), `@profiles` (blue), `#tags` (dimmed); invalid tokens show in red
- [x] **Workspace shell auto-complete** — suggestion overlay for `/` commands and `@profile` mentions; Tab/Enter accepts, arrows navigate, Escape dismisses
- [x] **Launch modes (native / worker)** — `launchMode` field on Profile, `arc launch --native` / `--worker` CLI flags, `m` key toggle in ProfilesView, doctor check for deprecated `CLAUDE_CODE_NO_FLICKER`
- [x] **Bare launch / clearable active profile** — `arc run <tool>`, `arc launch --bare <tool>`, tool-name inference when no matching profile exists, `arc profile switch none` / `arc profile clear-active`, `activeProfile: null` renders as `(none)`
- [ ] **Quick profile switch overlay** — global `Ctrl+S` or palette action that shows a focused profile picker from any view
- [x] **Doctor repair actions** — inline install hints, re-auth instructions, and PATH/shell fix hints on actionable diagnostics
- [ ] **Profile search/filter** — `/` search in Profiles view and queue for scaling to 10+ profiles
Expand All @@ -27,19 +33,31 @@ Tracking file for planned features, enhancements, and ideas. Checked items are s
- [x] **Tool-adapter architecture** — `RuntimeAdapter` interface with lifecycle methods; Claude, Codex, Gemini, OpenClaw, and Generic adapters (Phase 2, 5-6)
- [x] **Profile inheritance** — `inherits` field + `resolveProfile()` engine for base + override resolution (Phase 9)
- [x] **Project-local config** (`arc.json`) — preferred tool, profile, workspace overrides per repo (Phase 9)
- [x] **Agent instructions** — `instructions` / `instructionsFile` fields on Profile, resolved at launch, injected as `ARC_AGENT_INSTRUCTIONS` env var; `arc instructions` CLI (show/set/edit/clear)
- [x] **OpenAI-compatible providers** — `openai-compat` auth type + `ProviderConfig` on Profile (baseUrl, model, apiKeyEnvVar); 7 presets (OpenRouter, Ollama, LM Studio, Together, Groq, MiniMax, DeepSeek); `arc provider` CLI (set/show/clear/presets)
- [ ] **Team/shared config** — repo-checked config with local secret overlays
- [ ] **Backup/export/import** — move profiles and settings between machines
- [x] **Backup/export/import** — `arc backup create/restore/list` (gzipped archive of `~/.arc/`, credentials excluded by default) + `arc profile export` / `arc profile import-file` (single-profile JSON transport with inlined instructions)
- [x] **Managed updates** — self-update system with npm registry check and TUI update banner
- [x] **Agent client foundation** — internal CLI-spawn agent client at `packages/core/src/agent-client/` (Claude/Codex/Gemini), MCP config injection per `mcpMode`, stream parsers. Plan Phase 1
- [x] **Tool registry + agent loop** — `packages/core/src/agent/` with ~16 ARC tools spanning read / write / dangerous tiers; three permission modes (read-only / supervised / autonomous); `runAgent` generator. Plan Phase 2
- [x] **Knowledge endowment** — `packages/core/src/knowledge/` system prompt composition (ARC architecture + 52-entry command catalog + 33-entry feature index + 16-term glossary + runtime state). Plan Phase 3
- [x] **`arc chat` CLI** — terminal REPL using active profile's agent client with streaming output, permission-gated tool calls, per-profile session persistence at `~/.arc/profiles/<name>/chat-sessions/`, REPL slash commands. Plan Phase 4 (0.4.0)
- [x] **Roundtable orchestrator** — `RoundtableOrchestrator` driving the existing roundtable hook with adaptive pacing (EMA latency) and synthesizer-driven consensus score. Plan Phase 5 (0.4.0)
- [x] **Staged workflow state machine** — `StagedWorkflowManager` PLAN → EXEC → VERIFY with completion patterns and per-phase timeouts (ported from Agent-Forge)
- [x] **Agent stall watchdog** — nudge at 3 min, mark stalled at 5 min, decision protocol (ported from Agent-Forge)
- [x] **`arc roundtable` CLI + team MCP tools** — `arc roundtable <topic> --agents a,b,c` with streaming transcript; `arc_chat` / `arc_roundtable` / 6 `team_*` MCP tools. Plan Phase 6 (0.4.0)
- [x] **Dashboard chat view** — per-session WS streaming, tool-call visualization, permission-mode toggle, confirmation modal. Plan Phase 7 (0.4.0)
- [x] **Dashboard roundtable + pipelines view** — configure + run multi-agent flows from the browser with live transcript; per-run history persisted to `~/.arc/roundtables/<id>.json` and `~/.arc/pipelines/<id>.json`. Plan Phase 8 (0.4.0)

## Priority 4 — Observability & Polish

- [ ] **Launch history on Dash** — recent launches list (`{ profile, tool, timestamp }`) in `~/.arc/history.json`, displayed on Dash after first session
- [x] **Launch history on Dash** — `~/.arc/history.json` records each launch (profile, tool, timestamp, outcome, exitCode); DashView RightColumn shows recent launches + recent activity log entries (polled)
- [x] **Shared layer visibility** — SettingsView shows per-profile sync details; ProfileList shows shared indicator column
- [ ] **Toast notifications** — brief auto-dismiss messages for confirmations/errors that work across all views
- [ ] **Interactive sidebar queue** — Enter on sidebar profile list to quick-launch without switching views
- [x] **Toast notifications** — `ToastProvider` + `useToast()` hook with auto-dismiss (2.5s); `ToastContainer` mounted in Dashboard
- [x] **Interactive sidebar queue** — combined nav+profile selection in Sidebar; `↑/↓` cycles through nav items then profiles; Enter on a profile row quick-launches without switching views
- [x] **MCP server management** — MCP host manager with connect/disconnect/list/getTools + callTool with risk classification (Phase 8)
- [x] **Policy layer** — three-tier permission model (coordinator/interactive/worker) with deny > ask > allow precedence (Phase 20)
- [ ] **Profile cloning/duplication** — create a new profile from an existing one as template
- [x] **Profile cloning/duplication** — `cloneProfile()` core fn + `arc profile clone <src> <dst> [--no-copy-dir]` CLI + `Shift+C` inline clone in ProfilesView
- [x] **Usage/audit log** — structured JSONL log with `arc logs` CLI, level/component/profile filtering (Phase 3)

## v2.0 Spec Features (All 25 Phases Complete)
Expand All @@ -53,7 +71,8 @@ Tracking file for planned features, enhancements, and ideas. Checked items are s
- [x] OpenClaw adapter (plugin manifest, RuntimeAdapter, 3 lifecycle hooks)
- [x] Hermes Agent adapter (MCP bridge, lifecycle, process management)
- [x] Generic adapter factory (fallback for any unknown tool, health monitoring)
- [x] 48 adapter registry + generic adapter tests
- [x] OpenAI Compatible adapter (custom provider endpoints, 7 presets)
- [x] 50+ adapter registry + generic adapter tests

### Logging & Lifecycle (Phases 3-4)
- [x] Structured JSONL log at `~/.arc/logs/structured.jsonl`
Expand Down Expand Up @@ -210,8 +229,3 @@ These items from the original v0.1 backlog are still open:
- [ ] Profile search/filter in Profiles view
- [ ] Environment preview before launch
- [ ] Team/shared config (repo-checked config with local secret overlays)
- [ ] Backup/export/import (move profiles between machines)
- [ ] Launch history on Dash
- [ ] Toast notifications
- [ ] Interactive sidebar queue
- [ ] Profile cloning/duplication
Loading
Loading