Skip to content

Latest commit

 

History

History
217 lines (177 loc) · 11.9 KB

File metadata and controls

217 lines (177 loc) · 11.9 KB

FEATURES.md — ARC Feature Backlog

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.

Priority 1 — Core UX Gaps

  • 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) to config.json so it survives restarts
  • Actionable Dash view — Enter on active profile to launch; show ImportHint when 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

Priority 2 — Workflow Improvements

  • Workspace-aware profile auto-selection — arc.json in 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 @profile mentions; Tab/Enter accepts, arrows navigate, Escape dismisses
  • Quick profile switch overlay — global Ctrl+S or 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

Priority 3 — Architecture & Platform

  • Per-tool shared layer namespaces — generic adapterArtifacts replaces tool-specific fields; adapters declare capabilities (Phase 5-6)
  • Tool-adapter architecture — RuntimeAdapter interface with lifecycle methods; Claude, Codex, Gemini, OpenClaw, and Generic adapters (Phase 2, 5-6)
  • Profile inheritance — inherits field + 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

Priority 4 — Observability & Polish

  • 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 logs CLI, level/component/profile filtering (Phase 3)

v2.0 Spec Features (All 25 Phases Complete)

Monorepo & Adapters (Phases 1-2, 5-6)

  • Monorepo conversion: packages/core, cli, mcp, adapter-claude, adapter-openclaw, dashboard
  • RuntimeAdapter interface 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

Logging & Lifecycle (Phases 3-4)

  • Structured JSONL log at ~/.arc/logs/structured.jsonl
  • arc logs CLI command with --limit, --level, --component, --profile, --json
  • Graceful shutdown: signal forwarding, cleanup, exit code normalization
  • Health check types + buildHealthReport()

Hook Pipeline (Phase 7)

  • 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)

MCP Dual-Role (Phase 8)

  • @axiom-labs/arc-mcp package with 5 supervision tools
  • arc mcp serve CLI 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/disconnect CLI commands

Profile Inheritance & Workspace (Phase 9)

  • inherits field on Profile type
  • resolveProfile() engine for base + override resolution
  • loadWorkspaceConfig() + applyWorkspaceOverrides() for arc.json
  • arc which command showing resolved profile source

Secret Management (Phase 10)

  • Encrypted secret store: Argon2id KDF, AES-256-GCM per-entry encryption
  • arc secret command group: set/get/list/delete

Cloud Sync (Phase 11)

  • SyncProvider interface + filesystem sync provider
  • SyncManager with cursor tracking and status
  • Atomic writes, mtime change detection

Web Dashboard (Phase 12)

  • packages/dashboard/ with raw node:http server
  • 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

OpenTelemetry (Phase 13)

  • TelemetryProvider with span lifecycle, trace IDs, sample rate
  • Console, JSONL, and OTLP exporters
  • All spans use arc.* attribute namespace

Circuit Breaker (Phase 14)

  • Consecutive failure tracking, auto-trip at threshold
  • getEffectiveEnforcement() degrades to log when tripped
  • Auto-reset after configurable cooldown

Memory System (Phase 15)

  • 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 System (Phase 16)

  • Skill/SkillStep/ContractSkill types + SkillRegistry
  • Directory-based JSON skill file loader
  • mcpToSkill() — MCP tool to skill adapter

Task Management (Phase 17)

  • 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

Session Continuity (Phase 18)

  • SessionStore with create/suspend/resume/complete lifecycle
  • isResumeIntent() heuristic detection

Context Management (Phase 19)

  • Turn tracking, token budget, compaction trigger
  • compact(summarizer) for old turn summarization

Three-Tier Permissions (Phase 20)

  • Coordinator/interactive/worker defaults
  • Deny > ask > allow precedence with audit logging
  • Worker tier blocks destructive ops

Semantic Phase Indicators (Phase 21)

  • detectPhase(toolName) — deterministic tool -> phase mapping
  • StreamEventBus — typed event emitter for 10 stream event types

Skillify + Stuck Detector (Phase 22)

  • Repeated pattern detection (sliding window)
  • Auto-generate skill definitions from patterns
  • StuckDetector with Jaccard similarity, cycling recovery strategies

Plugin Registry (Phase 23)

  • JSON-backed plugin registry with install/uninstall/enable/disable
  • Semver compatibility checks, capability declarations

Remote Agent Support (Phase 24)

  • Remote agent registry with HTTP health checks
  • HTTP/SSH/MCP transport support

Dark Factory Mode (Phase 25)

  • State machine (idle -> planning -> executing -> verifying -> gating -> completed)
  • FactorySpec with waves, tasks, consensus gate config
  • Wave progression with result tracking

Deferred to v2

  • 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

Completed (v0.1.0)

  • 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)

Infra / Chores

  • 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, and pnpm test on PRs (ubuntu + windows matrix)
  • Add .github/dependabot.yml for automated dependency updates

Remaining UX Backlog

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