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.
- Profile creation in TUI — stepped overlay form (name -> tool -> auth type -> done) so users don't have to exit the TUI to create profiles
- Theme persistence — save theme choice (
light/dark) toconfig.jsonso it survives restarts - Actionable Dash view — Enter on active profile to launch; show
ImportHintwhen unimported tools detected - Persist activity to Log view — write launch/switch/error events to a shared log so the Log view shows real history instead of a placeholder
- Surface profile metadata — show description, launchArgs, envOverrides, and credential expiry in Profiles detail pane
- Workspace-aware profile auto-selection —
arc.jsonin repo root specifies preferred profile/tool; workspace overrides applied on launch (Phase 9) - Workspace shell syntax highlighting — tokenized input with color-coded
/commands(green),@profiles(blue),#tags(dimmed); invalid tokens show in red - Workspace shell auto-complete — suggestion overlay for
/commands and@profilementions; Tab/Enter accepts, arrows navigate, Escape dismisses - Quick profile switch overlay — global
Ctrl+Sor palette action that shows a focused profile picker from any view - 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 - Import/migration wizard in TUI — auto-detect step in CreateProfileOverlay and OnboardingScreen imports detected tools interactively
- Environment preview before launch — show env vars, config dir, binary path before spawning a profile
- Per-tool shared layer namespaces — generic
adapterArtifactsreplaces tool-specific fields; adapters declare capabilities (Phase 5-6) - Tool-adapter architecture —
RuntimeAdapterinterface with lifecycle methods; Claude, Codex, Gemini, OpenClaw, and Generic adapters (Phase 2, 5-6) - Profile inheritance —
inheritsfield +resolveProfile()engine for base + override resolution (Phase 9) - Project-local config (
arc.json) — preferred tool, profile, workspace overrides per repo (Phase 9) - Team/shared config — repo-checked config with local secret overlays
- Backup/export/import — move profiles and settings between machines
- Managed updates — self-update system with npm registry check and TUI update banner
- Launch history on Dash — recent launches list (
{ profile, tool, timestamp }) in~/.arc/history.json, displayed on Dash after first session - 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
- MCP server management — MCP host manager with connect/disconnect/list/getTools + callTool with risk classification (Phase 8)
- 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
- Usage/audit log — structured JSONL log with
arc logsCLI, level/component/profile filtering (Phase 3)
- Monorepo conversion:
packages/core,cli,mcp,adapter-claude,adapter-openclaw,dashboard -
RuntimeAdapterinterface with launch/terminate/isRunning lifecycle - Claude Code adapter (SDK bridge, auth, detect, import, shared)
- Codex CLI adapter (cross-platform process management, real spawn/terminate)
- Gemini CLI adapter (real lifecycle wired)
- OpenClaw adapter (plugin manifest, RuntimeAdapter, 3 lifecycle hooks)
- Hermes Agent adapter (MCP bridge, lifecycle, process management)
- Generic adapter factory (fallback for any unknown tool, health monitoring)
- 48 adapter registry + generic adapter tests
- Structured JSONL log at
~/.arc/logs/structured.jsonl -
arc logsCLI command with--limit,--level,--component,--profile,--json - Graceful shutdown: signal forwarding, cleanup, exit code normalization
- Health check types +
buildHealthReport()
- Hook type system + HookBus pipeline runner with 4-mode enforcement (log/warn/enforce/off)
- Source-classify hook (priority 1) + risk-classifier pure function
- Interagent-routing hook factory (priority 2) — bot→bot loop suppression with @mention override, roundtable-aware
- Attempt-tracker factory (session + turn scoped retry counting)
- Roundtable hook factory (priority 50) — multi-agent discussion orchestration with turn management, mode assignment, synthesis lifecycle
-
auditCompletion()pure function (status x confidence -> recommendation) -
runWithRetry()enforce-mode retry loop +createDefaultPipeline - Supervision-gate hook factory (ALLOW/BLOCK parsing)
- Post-verify hook factory (pluggable health polling, exponential backoff)
-
@axiom-labs/arc-mcppackage with 5 supervision tools -
arc mcp serveCLI with stdio transport (31 integration tests) - HTTP server transport with per-session auth
- McpHostManager: connect/disconnect/list/getTools + callTool with risk classification
-
arc mcp connect/list/disconnectCLI commands
-
inheritsfield on Profile type -
resolveProfile()engine for base + override resolution -
loadWorkspaceConfig()+applyWorkspaceOverrides()forarc.json -
arc whichcommand showing resolved profile source
- Encrypted secret store: Argon2id KDF, AES-256-GCM per-entry encryption
-
arc secretcommand group: set/get/list/delete
-
SyncProviderinterface + filesystem sync provider -
SyncManagerwith cursor tracking and status - Atomic writes, mtime change detection
-
packages/dashboard/with rawnode:httpserver - 10 REST API endpoints (overview, sessions, traces, risk, tasks, skills, memory, agents, factory, health)
- WebSocket server (RFC 6455) for real-time event push
- SPA frontend: 9 modular view components, dark/light toggle
- Nothing-inspired design: Doto/Space Grotesk/Space Mono typography
-
TelemetryProviderwith span lifecycle, trace IDs, sample rate - Console, JSONL, and OTLP exporters
- All spans use
arc.*attribute namespace
- Consecutive failure tracking, auto-trip at threshold
-
getEffectiveEnforcement()degrades to log when tripped - Auto-reset after configurable cooldown
- Session + persistent memory backends
- Exponential decay scoring with half-life + access boost
- Keyword/scope/type/recency search ranking
- Heuristic memory extraction (corrections, preferences, patterns, decisions)
- Skill/SkillStep/ContractSkill types + SkillRegistry
- Directory-based JSON skill file loader
-
mcpToSkill()— MCP tool to skill adapter
- TaskStore (JSON file-backed CRUD)
- MessageBus (in-memory agent-to-agent routing)
- TaskDelegator — agent-to-agent delegation (delegate/accept/complete/fail/requestInput/provideInput), self-delegation guard, listener TTL cleanup
- Status transition validation (created → assigned → working → completed/failed, input-required ↔ working)
- CronStore with 5-field cron expression parser
- SessionStore with create/suspend/resume/complete lifecycle
-
isResumeIntent()heuristic detection
- Turn tracking, token budget, compaction trigger
-
compact(summarizer)for old turn summarization
- Coordinator/interactive/worker defaults
- Deny > ask > allow precedence with audit logging
- Worker tier blocks destructive ops
-
detectPhase(toolName)— deterministic tool -> phase mapping -
StreamEventBus— typed event emitter for 10 stream event types
- Repeated pattern detection (sliding window)
- Auto-generate skill definitions from patterns
- StuckDetector with Jaccard similarity, cycling recovery strategies
- JSON-backed plugin registry with install/uninstall/enable/disable
- Semver compatibility checks, capability declarations
- Remote agent registry with HTTP health checks
- HTTP/SSH/MCP transport support
- State machine (idle -> planning -> executing -> verifying -> gating -> completed)
- FactorySpec with waves, tasks, consensus gate config
- Wave progression with result tracking
- A2A protocol implementation (agent cards, task lifecycle over HTTP)
- Roundtable via A2A (replace hook state machine with A2A task lifecycle)
- Prompt routing (score-based intent dispatch)
- Agent personas / buddy system
- S3 sync provider
- TUI dashboard with Ink (sidebar, views, command palette, overlays)
- Multi-tool support (Claude, Gemini, Codex) with auth adapters
- Shared layer sync (MCP servers, commands, CLAUDE.md, memory, projects)
- Shell integration (bash, zsh, fish, PowerShell)
- Doctor diagnostics (config, PATH, shell, binaries, credentials)
- Credential checking with expiry tracking
- Photon/Carbon Night theme system with toggle
- Dash view with ASCII logo and status overview
- Ctrl-modified hotkeys to avoid typing conflicts
- Mouse scroll capture in fullscreen TUI
- Log view placeholder
- Command palette and help overlay
- Fullscreen TUI onboarding wizard (OnboardingScreen) with auto-detect + stepped creation
- Doctor repair actions (install hints, re-auth instructions, PATH/shell fix hints)
- Auto-detect import in CreateProfileOverlay and OnboardingScreen
- Shared layer sync status in SettingsView and ProfileList
- GitHub repo link on DashView and HelpOverlay
- Help overlay overhaul (global, sidebar, workspace, profiles sections)
- E2E + integration testing (vitest, ink-testing-library) — CLI spawn tests, TUI smoke + interactive flow tests, profile CRUD, shared layer sync
- CI: run
pnpm typecheck,pnpm build, andpnpm teston PRs (ubuntu + windows matrix) - Add
.github/dependabot.ymlfor automated dependency updates
These items from the original v0.1 backlog are still open:
- Actionable Dash view (launch on Enter, ImportHint)
- Persist activity to Log view
- Surface profile metadata in detail pane
- Quick profile switch overlay (Ctrl+S)
- 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