Skip to content

Latest commit

 

History

History
325 lines (270 loc) · 20.3 KB

File metadata and controls

325 lines (270 loc) · 20.3 KB

Changelog

All notable changes to Mission Control are documented in this file.

[Unreleased]


[2.3.0] - 2026-07-25

This release patches 13 known dependency vulnerabilities (8 high severity), refreshes the test toolchain to current majors, and closes a locale-integrity gap. Self-hosted operators should upgrade promptly for the dependency fixes.

Security

  • Patched 13 OSV advisories across the dependency tree (#904):
    • next 16.2.10 → 16.2.11 — 9 advisories including SSRF in Server Actions (GHSA-89xv-2m56-2m9x, GHSA-p9j2-gv94-2wf4), middleware/proxy bypass (GHSA-6gpp-xcg3-4w24), response cache confusion, and denial of service.
    • sharp 0.34.5 → 0.35.3 via bounded workspace override (GHSA-f88m-g3jw-g9cj, inherited libvips CVEs) — next still pins the vulnerable range.
    • brace-expansion DoS on all three resolved major lines (GHSA-3jxr-9vmj-r5cp, GHSA-mh99-v99m-4gvg), each dependent kept on its expected API line via per-major bounded overrides.
    • Transitive postcss forced to ≥8.5.18 (GHSA-r28c-9q8g-f849). Release-age exclusions for the fresh fixes are documented in pnpm-workspace.yaml and age out naturally.
  • Removed operational screenshots from the public tree, retained only privacy-reviewed documentation artwork, and documented a synthetic-data-only screenshot process (#892).

Added

  • MC_DISABLE_RUNTIME_SCAN environment flag to skip local CLI probing during runtime detection — for hosts where probing is slow, noisy, or undesirable (#895).

Fixed

  • Locale integrity: restored 4 taskBoard keys missing from all 9 non-English locales and added a parity guard test, so locale drift now fails the quality gate instead of shipping (#907); added the missing calMode_day translation (#894).
  • README imagery restored with sanitized demo screenshots; removed the single-tenant blueprint embed (#893, #896).

Changed

  • Test toolchain migrated to vite 8 / vitest 4 / @vitejs/plugin-react 6 (#908). Test infrastructure only — production builds remain webpack. Includes the vitest 4 mock-constructor migration for the affected test files.
  • Routine grouped dependency updates (#897, #899, #905, #906).
  • Documented project attribution (Builderz Labs / nyk) and runtime independence; added maintainer sponsorship links.

[2.2.0] - 2026-07-17

This release strengthens Mission Control's self-hosted security boundary, adds native workspace isolation foundations, and modernizes the frontend and release toolchain.

Added

  • Opt-in sandbox flags for host CLI dispatch (#766, closes #720): allowedTools (validated against an allowlist), --max-budget-usd (clamped), and a workspace-scoped cwd (escape-protected via MC_WORKSPACE_ROOT). Sourced from agents.config with per-task tasks.metadata override; absent config leaves dispatch byte-identical to before.
  • Native brand and isolation fields on workspaces (#767, refs #677): migration 052, isolation enum shared | strict enforced in validation, editable from the super-admin panel. (The workspace approval-rules engine from #677 remains deferred.)
  • Strict workspace enforcement across routes, background dispatch, schedulers, events, audit records, agent identity, gateway registries, filesystem access, and host administration (#804 through #823).
  • Standalone artifact-boundary verification and immutable GitHub Actions pin checks in the protected quality gate (#783, #788).

Changed

  • Migrated to Tailwind CSS v4 (#768): config converted to CSS @theme, @tailwindcss/postcss, @custom-variant dark. Visual QA verified across login, dashboard, task board, onboarding, and all 11 themes including the light Paper theme.
  • Hardened privileged runtime setup, identity, gateway, release-update, OS-user, PTY, skill, backup, and maintenance mutations with strict schemas, critical throttling, bounded output, trusted attribution, and safer audit records (#784, #790 through #799, #828 through #835).
  • Hardened OSS contribution intake with structured issue forms, clearer contributor provenance expectations, and focused PR risk/evidence requirements (#803, #814, #816, #824).
  • Hardened CLI, TUI, MCP, installer, gateway, and operator boundaries against unsafe destinations, path escapes, unbounded remote input, malformed configuration, and executable environment-file semantics (#866 through #884, #886 through #889).

Fixed

  • Model catalog: costPer1k renamed to costPerMTok (the field held per-million values), classifyDirectModel now derives from the catalog instead of a parallel hard-coded list, and all prices re-verified against provider docs (#769, supersedes #751). Fixed two real billing-estimate undercounts: Kimi K2.5 and MiniMax M2.1 output rates.
  • Preserved gateway configuration integrity and unified privileged setup/control client error handling (#825 through #831).
  • Removed plaintext device-key fallback and tightened execution approval, webhook delivery, CI publishing, backup automation, and standalone release behavior (#782, #789, #791 through #793).
  • Restored websocket reconnection after transient disconnects (#832).
  • Aligned authentication diagnostics and security reports with encoded-password deployments (#887).
  • Restored the Docker release build context for the non-executable environment loader (#889).

Security

  • Workspace isolation now fails closed for ambiguous or unowned resources instead of silently falling back to deployment-wide access.
  • Sensitive host mutations use scoped critical rate limits, strict allowlists, bounded/redacted responses, and audit-safe identifiers.
  • Workflow actions are pinned to reviewed commit SHAs; standalone builds are checked for runtime-data and secret-boundary violations.
  • Added descriptor-based filesystem operations, atomic configuration/workspace writes, randomized build scratch paths, stronger path confinement, and resource bounds across trust boundaries (#868 through #871, #874, #881).
  • Added HTML sanitization, cryptographic event identifiers, adapter-key isolation, workspace-scoped MCP receipts, and nested configuration assignment guards (#872, #875, #876, #879, #883).
  • Added property-based fuzzing with thousands of adversarial path and configuration cases per run (#873, #885).
  • Replaced deployment shell sourcing with a strict environment-file data parser and regression-tested the security audit command itself (#886, #888).
  • Dependency audit reports no known high-severity vulnerabilities at release preparation time.

Upgrade notes

  • Run database migrations before enabling strict workspace isolation in an existing multi-workspace deployment.
  • Review MC_WORKSPACE_ROOT, trusted proxy settings, gateway credentials, and host-runtime permissions after upgrading.
  • Tailwind CSS v4 replaces the previous JavaScript configuration; downstream custom themes should migrate extensions to CSS theme tokens.
  • No approval policy engine is included in this release; workspace classification and isolation metadata do not grant execution authority.

[2.1.0] - 2026-07-04

Three months of merged work promoted to a release, plus a security-audit sprint.

Security

  • Global API key hashed at rest (#757) — the dashboard-rotated admin key was stored plaintext in SQLite; now only a sha256 hash is stored and the plaintext is shown exactly once at rotation. A DB read or backup dump no longer yields a live admin credential. Migration 051 converts existing deployments automatically.
  • Dependency tree refreshed: 52 production vulnerabilities → 0 (#756) — including the Next.js middleware/proxy-bypass advisories (critical for this app: all auth is middleware-enforced), ws DoS, and critical shell-quote.
  • Gateway bearer token no longer exposed to viewer-role callers (#747, thanks @LHMisme420) and can no longer be overwritten via config update (gateway.auth.token write-guard, #755).
  • Prompt-injection guard detects homoglyph, zero-width, ROT13/URL/base64 bypasses; device key moved to non-extractable IndexedDB (#657).
  • Internal business documents removed from the public tree (#752).

Added

  • Direct multi-provider dispatch: Anthropic API, OpenAI, and local OpenAI-compatible endpoints (Ollama/LM Studio/LiteLLM) without an OpenClaw gateway (#648).
  • Host CLI dispatch: run tasks through your own claude login — no API key — with Claude CLI detection outside Docker, and new Codex CLI dispatch (#738, thanks @snifram).
  • Chat session continuity with the host Claude CLI + CSP nonce hydration fixes (#647).
  • Docker: NEXT_PUBLIC_* exposed as build args (#643).
  • Self-hosted star-history charts (light/dark) refreshed weekly, replacing the third-party embed.

Fixed

  • API proxy rejected dashboard-rotated mc_ API keys at the edge before route auth could validate them (#753, closes #733).
  • Task-board @mention menu: arrow-key highlight no longer snaps back to the top on every keypress (#754, closes #661).
  • Legacy agent fallback config was written back to OpenClaw with an incompatible fallbacks field (#750, thanks @Obrais-cloud).
  • Recurring tasks: sub-daily crons include HH:MM in child titles (#659); openclaw-doctor single-flight + 30s TTL cache stops CPU/RAM spikes (#658).
  • Open issue/PR backlog: security audits, fixes, and apiFetch migration (#723).

Changed

  • Dependabot policy: js-deps group restricted to minor+patch (majors arrive individually), GitHub Actions bumps grouped, docker base image tracks the Node LTS line (#755).
  • Screenshot-drift workflow no longer fails on fork PRs (#755).
  • Model pricing updates: Groq (#736, thanks @oskarkocol) and Anthropic (#644).

[2.0.1] - 2026-03-18

Mission Control 2.0.1 is the first patch release after the v2 launch. It rolls up the full set of fixes and follow-on features that landed after v2.0.0, including HTTP/Tailscale login hardening, zero-config onboarding, internationalization, gateway/runtime stability fixes, deeper task-routing automation, and the latest OpenClaw compatibility updates.

Added

  • First-time setup wizard and zero-config startup flow for fresh installs
  • Full i18n coverage across the application with 10 language packs and panel-level translations
  • Trusted reverse proxy and header-auth support for more flexible self-hosted deployments
  • Gateway health history logging and timeline visibility
  • Port-based Tailscale Serve proxy detection and stronger public websocket URL handling
  • Task implementation-target persistence, session targeting, and complexity-based model-tier routing
  • GNAP sync for git-native task persistence
  • Hybrid dashboard mode for simultaneous gateway and local session visibility
  • Workspace skill root discovery, filtering, and per-agent skill-root display
  • Windows PowerShell installer support
  • awaiting_owner task status detection

Changed

  • Node runtime policy now accepts all versions >=22 instead of a narrow allowlist
  • CSP and browser-security helpers were factored into dedicated modules for clearer hardening boundaries
  • Docker/image release automation now supports the official Docker Hub image when repository secrets are configured
  • Release metadata and docs now point to the Builderz Labs repository as the canonical source

Fixed

  • HTTP and Tailscale login regressions caused by unconditional HTTPS redirects and CSP nonce propagation gaps
  • Fresh HTTP Docker installs failing login because secure-cookie behavior did not follow the actual request protocol
  • Gateway auth and credential detection for mixed token/password setups
  • Task dispatch using display names instead of gateway agent IDs
  • Docker and gateway-optional regressions across Compose startup, health probes, public assets, OPENCLAW_HOME, and read-only config handling
  • SQLite SQLITE_BUSY contention by adding busy_timeout and guarding build-phase eager initialization
  • Doctor banner dismissal persistence, cron panel crash handling, and null-safe model config editing
  • Gateway connectivity and onboarding probe issues, including POST-based wizard health checks and explicit public websocket URL preference
  • Notification refresh timing, agent empty-state UX, duplicate task-title/delete handling, and several panel/runtime regressions
  • Memory diagnostics scoping, gateway notification delivery, session labels, and multiple i18n namespace gaps
  • Password generation now uses a CSPRNG in the Windows installer
  • Reagraph CSP rendering regression caused by nonce handling in style-src
  • /api/spawn now supports OpenClaw agents that rely on configured default models instead of requiring a runtime model
  • Gateway dashboard registration now has explicit regression coverage preserving device-auth posture

Security

  • Removed unsafe-inline in favor of nonce-based CSP handling
  • Strengthened skill-registry SSRF and path-traversal detection rules
  • Stopped forcing dangerouslyDisableDeviceAuth during Mission Control gateway registration

Tests

  • Coverage for pure utility modules to keep the Vitest threshold passing in CI
  • Gateway health history E2E and supporting utility tests
  • Docker-mode integration coverage for gateway connectivity regressions
  • Regression coverage for spawn-schema compatibility and gateway dashboard registration behavior

Contributors

  • @0xNyk
  • @Brixyy
  • @clintbaxley
  • @dk-blackfuel
  • @firefloc-nox
  • @HonzysClawdbot
  • @hectorse.88
  • @jonathan-squaredlemons
  • @jonboirama
  • @joshua-mo-143
  • @jrrcdev
  • @lucascr
  • @RazorFin
  • @topshelfmedia

Fixed

  • HTTP and Tailscale login broken by unconditional HTTPS redirect — replaced with opt-in NEXT_PUBLIC_FORCE_HTTPS=1 (#309)
  • CSP nonce mismatch blocking inline scripts after login — nonce now propagated into SSR request headers (#308, #311)
  • Layout inline theme script missing nonce attribute, causing CSP violations on chunk loading (#308, #311)
  • Task dispatch sending agent display name instead of gateway ID — now resolves openclawId from config (#310)
  • Session cookie Secure flag forced in production even over HTTP — now derived from actual request protocol (#304)
  • Node version check changed from allowlist (22, 24) to floor (>=22) for future compatibility

Changed

  • CSP generation and browser-security helpers extracted to src/lib/csp.ts and src/lib/browser-security.ts

Contributors

  • @0xNyk
  • @polaris-dxz
  • @jaserNo1

[2.0.0] - 2026-03-11

Added

  • Dual-mode operations for both OpenClaw gateway deployments and local workstation installs
  • Hermes observability, including session, task, cron, memory, and transcript visibility
  • Obsidian-style memory knowledge system with graph visualization, health signals, and filesystem browser
  • Rebuilt onboarding flow with session-scoped walkthroughs, security scan, and OpenClaw gateway setup guidance
  • OpenClaw doctor status and in-app doctor fix workflow for runtime drift detection and remediation
  • Expanded OpenClaw dashboard coverage for channels, chat, sessions, cron, usage, devices, approvals, logs, and schema-backed config
  • Global exec approval overlay, unified cost tracker, and richer agent communication/session routing views
  • Embedded chat workspace, Claude Code task bridge, framework adapters, self-update flow, and stronger local agent/skill discovery
  • Automated task dispatch, automated Aegis review, natural-language recurring tasks, and richer gateway backup/update actions

Fixed

  • Agent and workspace deletion now removes OpenClaw config state correctly and refreshes the UI consistently
  • Security scan autofix no longer breaks host access or E2E runtime env state after applying fixes
  • Mission Control builds now isolate build-time SQLite state from runtime SQLite state, eliminating SQLITE_BUSY build contention
  • Standalone deploy/runtime handling now preserves data directories, static assets, and restart detection more reliably
  • OpenClaw config compatibility issues around malformed model.primary payloads, stale keys, and doctor warning classification
  • Local Hermes transcript loading, gateway chat/channel RPC fallbacks, and memory panel regressions from the refactor cycle
  • E2E harness isolation so tests use fresh temp OpenClaw state, temp skill roots, and deterministic scheduler behavior
  • Login/autofill/CSP regressions, websocket/device-identity edge cases, memory graph fit/overflow issues, and several panel parity gaps found during the refactor

Changed

  • Project version advanced to 2.0.0
  • Node runtime policy standardized on 22.x across local development, CI, Docker, and standalone deployment
  • README, landing-page handoff, and release documentation refreshed to match the current Mission Control interface and feature set
  • This release captures 189 commits on top of main and marks the major refactor branch as the new baseline for Mission Control
  • Navigation, loading, branding, and onboarding flows were redesigned to match the broader v2 operator experience

Contributors

  • @0xNyk

[1.3.0] - 2026-03-02

Added

  • Local Claude Code session tracking — auto-discovers sessions from ~/.claude/projects/, extracts token usage, model info, cost estimates, and active status from JSONL transcripts
  • GET/POST /api/claude/sessions endpoint with filtering, pagination, and aggregate stats
  • Webhook retry system with exponential backoff and circuit breaker
  • POST /api/webhooks/retry endpoint for manual retry of failed deliveries
  • GET /api/webhooks/verify-docs endpoint for signature verification documentation
  • Webhook signature verification unit tests (HMAC-SHA256 + backoff logic)
  • Docker HEALTHCHECK directive
  • Vitest coverage configuration (v8 provider, 60% threshold)
  • Cron job deduplication on read and duplicate prevention on add
  • MC_CLAUDE_HOME env var for configuring Claude Code home directory
  • MC_TRUSTED_PROXIES env var for rate limiter IP extraction

Fixed

  • Timing-safe comparison bug in webhook signature verification (was comparing buffer with itself)
  • Timing-safe comparison bug in auth token validation (same issue)
  • Rate limiter IP spoofing — now uses rightmost untrusted IP from X-Forwarded-For chain
  • Model display bug: getModelInfo() always returned first model (haiku) for unrecognized names
  • Feed item ID collisions between logs and activities in the live feed
  • WebSocket reconnect thundering-herd — added jitter to exponential backoff

Changed

  • All 31 API routes now use structured pino logger instead of console.error/console.warn
  • Cron file I/O converted from sync to async (fs/promises)
  • Password minimum length increased to 12 characters
  • Zod validation added to PUT /api/tasks bulk status updates
  • README updated with 64 API routes, new features, and env vars
  • Migration count: 20 (added claude_sessions table)
  • 69 unit tests, 165 E2E tests — all passing

Contributors

  • @TGLTommy — model display bug fix
  • @doanbactam — feed ID fix, jittered reconnect, cron deduplication

[1.2.0] - 2026-03-01

Added

  • Zod input validation schemas for all mutation API routes
  • Security headers (X-Content-Type-Options, X-Frame-Options, Referrer-Policy)
  • Rate limiting on resource-intensive endpoints (search, backup, cleanup, memory, logs)
  • Unit tests for auth, validation, rate-limit, and db-helpers modules

Fixed

  • Task status enum mismatch (blockedquality_review) in validation schema
  • Type safety improvements in auth.ts and db.ts (replaced as any casts)

Changed

  • Standardized alert route to use validateBody() helper
  • Bumped package version from 1.0.0 to 1.2.0

[1.1.0] - 2026-02-27

Added

  • Multi-user authentication with session management
  • Google SSO with admin approval workflow
  • Role-based access control (admin, operator, viewer)
  • Audit logging for security events
  • 1Password integration for secrets management
  • Workflow templates and pipeline orchestration
  • Quality review system with approval gates
  • Data export (CSV/JSON) for audit logs, tasks, activities
  • Global search across all entities
  • Settings management UI
  • Gateway configuration editor
  • Notification system with @mentions
  • Agent communication (direct messages)
  • Standup report generation
  • Scheduled auto-backup and auto-cleanup
  • Network access control (host allowlist)
  • CSRF origin validation

[1.0.0] - 2026-02-15

Added

  • Agent orchestration dashboard with real-time status
  • Task management with Kanban board
  • Activity stream with live updates (SSE)
  • Agent spawn and session management
  • Webhook integration with HMAC signatures
  • Alert rules engine with condition evaluation
  • Token usage tracking and cost estimation
  • Dark/light theme support
  • Docker deployment support