[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74907":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":16,"starSnapshotCount":16,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},74907,"mission-control","crshdn\u002Fmission-control","crshdn","The world's first Autonomous Product Engine (APE): AI agents research your market, generate features, and ship code as PRs. Convoy mode, crash recovery, cost tracking, 80+ API endpoints. Self-hosted via OpenClaw Gateway.","https:\u002F\u002Fautensa.com",null,"TypeScript",2072,437,16,8,0,9,59,29.92,"MIT License",false,"main",true,[25,26,27],"aiagent","automation","openclaw","2026-06-12 02:03:29","\u003Ch1 align=\"center\">Autensa\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cem>The World's First Autonomous Product Engine\u003C\u002Fem>\u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fautensa.com\">autensa.com\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Your products improve themselves — 24\u002F7 — while you sleep.\u003C\u002Fstrong>\u003Cbr>\n  Research → Ideation → Swipe → Build → Test → Review → Pull Request — fully automated.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\nI highly recommend getting Hetzner VPS to run this. \u003Ca href=\"https:\u002F\u002Fhetzner.cloud\u002F?ref=WYxriOUHyTil\">You can sign up here.\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fcrshdn\u002Fmission-control?style=flat-square\" alt=\"GitHub Stars\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fcrshdn\u002Fmission-control?style=flat-square\" alt=\"GitHub Issues\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fcrshdn\u002Fmission-control?style=flat-square\" alt=\"License\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen?style=flat-square\" alt=\"PRs Welcome\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-14-black?style=flat-square&logo=next.js\" alt=\"Next.js\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-5-3178C6?style=flat-square&logo=typescript&logoColor=white\" alt=\"TypeScript\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSQLite-3-003B57?style=flat-square&logo=sqlite&logoColor=white\" alt=\"SQLite\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fmissioncontrol.ghray.com\">\u003Cstrong>🎮 Live Demo\u003C\u002Fstrong>\u003C\u002Fa> •\n  \u003Ca href=\"#-quick-start\">Quick Start\u003C\u002Fa> •\n  \u003Ca href=\"#-docker\">Docker\u003C\u002Fa> •\n  \u003Ca href=\"#-whats-new-in-v251\">What's New\u003C\u002Fa> •\n  \u003Ca href=\"#-features\">Features\u003C\u002Fa> •\n  \u003Ca href=\"#-how-it-works\">How It Works\u003C\u002Fa> •\n  \u003Ca href=\"#-configuration\">Configuration\u003C\u002Fa> •\n  \u003Ca href=\"#-contributors\">Contributors\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fghray.com\u002FAutensa_v2.mp4\">\u003Cstrong>▶️ Watch the Autensa v2 Introduction\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## 🚀 What's New in v2.5.1\n\n### Repo Setup & PR Recovery\nAutopilot now has a product-level **Repo Setup** tab that verifies a repository is ready before agents create PR-bound work. It checks authenticated git access, default branch confirmation, GitHub API and PR metadata access, GitHub Actions status, workflow token permissions, PR workflow secrets, and PR workflow variables.\n\nWhen setup is blocked, users can fix supported GitHub configuration from the UI: set workflow token permissions to read\u002Fwrite, add missing Actions secrets, and add missing Actions variables. Secret values are written directly to GitHub and are not stored in Autensa.\n\nBuild Queue tasks with GitHub PRs now include a **PR checks** recovery panel. Failed checks are classified as retryable, repo setup, or external provider failures, with actions to rerun failed GitHub Actions jobs or rerequest external checks where GitHub supports it.\n\n### Private Repo Readiness\nProduct creation and settings now validate private repos with authenticated git access, detect the remote default branch, and require user confirmation before Autopilot starts. Workspace isolation preflights the selected branch and can use the detected default branch, avoiding `main` clone failures on repos that use `master`.\n\n### Previous Releases\n\n\u003Cdetails>\n\u003Csummary>v2.5.0 — Dispatch & Product Settings Fixes\u003C\u002Fsummary>\n\n### Per-Task Agent Sessions ([#99](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F99))\nEach dispatched task now gets its own OpenClaw conversation session. Previously, all tasks assigned to the same agent shared one session, causing context to accumulate across tasks until the model's context window was exhausted and the agent stalled. The `openclaw_sessions` table already had a `task_id` column — dispatch now uses it for session lookup, session ID generation, and insert. Parallel tasks on the same agent work independently.\n\n### Flexible Agent ID Validation ([#100](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F100))\nAgent ID fields now accept both standard UUID format (`8-4-4-4-12`) and 32-character hex identifiers from the OpenClaw gateway. Previously, Zod's strict `.uuid()` validation rejected gateway-format agent IDs, causing \"Invalid UUID\" errors when assigning imported agents to tasks.\n\n### Task Delete Button Fix ([#111](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F111))\nThe task delete button now shows a loading state (\"Deleting...\"), disables during the request, and displays inline error messages when deletion fails. Previously, the button had no feedback — if the API request failed or was slow, users saw no response and assumed the button was broken.\n\n### Product Pause & Archive ([#98](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F98))\nThe Autopilot product settings modal now includes a **Status** dropdown (Active \u002F Paused) and a **Danger Zone** section with an Archive button. Paused products stop automated research and ideation cycles. Archived products are hidden from the dashboard but data is preserved. The main product listing now filters out archived products.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.4.1 — Community Bug Fixes\u003C\u002Fsummary>\n\n- **Autopilot model routing** — Provider models now route through `openclaw\u002Fdefault` with the original model in `x-openclaw-model`, fixing 404 errors on OpenClaw deployments. ([@Ahmedkasmi-dev](https:\u002F\u002Fgithub.com\u002FAhmedkasmi-dev), [#109](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F109))\n- **AUTOPILOT_MODEL env var** — Removed hardcoded model override in description generation so the shared `AUTOPILOT_MODEL` config is respected. ([@aaronmeza](https:\u002F\u002Fgithub.com\u002Faaronmeza), [#116](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F116))\n- **Gateway catalog sync** — Local agent role assignments are now preserved during gateway sync instead of being overwritten every 60 seconds. ([@cgluttrell](https:\u002F\u002Fgithub.com\u002Fcgluttrell), [#119](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F119))\n- **Task chat reliability** — Agent replies are now captured even without an active SSE connection, and the \"waiting\" indicator no longer shows stale state. ([@heliokeplert-ctrl](https:\u002F\u002Fgithub.com\u002Fheliokeplert-ctrl), [#126](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F126))\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.4.0 — Agent Skill Creation Loop\u003C\u002Fsummary>\n\n- Agents learn reusable procedures from completed tasks\n- Bayesian confidence scoring promotes proven skills\n- Matched skills injected at dispatch as primary instructions\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.0–v2.3 — Full changelog in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Freleases\">Releases\u003C\u002Fa>\u003C\u002Fsummary>\n\n- v2.3.x — Idea dedup, operator chat, swipe undo, A\u002FB testing, auto-rollback\n- v2.2.x — Preference learning, token tracking, health check endpoints, backup API\n- v2.1.x — Server-side pipeline, error reporting, idea badges\n- v2.0.x — Session key prefix, dispatch stability, community contributions\n\u003C\u002Fdetails>\n\n### v2.0 Highlights\n\nAutensa v2 is a ground-up expansion from task orchestration dashboard to **the world's first autonomous product improvement engine**. It researches your market, generates feature ideas, lets you decide with a swipe, and builds them — automatically.\n\n### 🔬 Product Autopilot — The Full Pipeline\n\nThe headline feature. Point Autensa at any product (repo + live URL) and it runs a continuous improvement loop:\n\n1. **Autonomous Research** — AI agents analyze your codebase, scan your live site, and research your market: competitors, user intent, conversion patterns, SEO gaps, technical opportunities. Runs on configurable schedules — daily, weekly, or on-demand.\n\n2. **AI-Powered Ideation** — Research feeds into ideation agents that generate concrete, scored feature ideas. Each idea includes an impact score, feasibility score, size estimate, technical approach, and a direct link to the research that inspired it.\n\n3. **Swipe to Decide** — Ideas appear as cards in a Tinder-style interface. Four actions:\n   - **Pass** — Rejected. The preference model learns from it.\n   - **Maybe** — Saved to the Maybe Pool. Resurfaces in 1 week with fresh context.\n   - **Yes** — Task created. Build agent starts coding.\n   - **Now!** — Urgent dispatch. Priority queue, immediate execution.\n\n4. **Automated Build → PR** — Approved ideas flow through the full agent pipeline: Build agent implements the feature → Test agent runs the suite → Review agent inspects the diff → Pull request created on GitHub with full context.\n\n**Your only job is the swipe.** Everything else is automated.\n\n### 📄 Product Program (Karpathy AutoResearch Pattern)\n\nInspired by Andrej Karpathy's [AutoResearch](https:\u002F\u002Fgithub.com\u002Fkarpathy\u002Fautoresearch) architecture. Each product has a **Product Program** — a living document that instructs research and ideation agents on what to look for, what matters, and what to ignore. The program evolves as swipe data accumulates: the system learns your taste, not just patterns.\n\n### 🚛 Convoy Mode — Parallel Multi-Agent Execution\n\nLarge features get decomposed into subtasks with a visual dependency graph (DAG). Multiple agents (3–5) work simultaneously with dependency-aware scheduling:\n\n- **Parallel subtask execution** — Independent pieces run concurrently\n- **Dependency graph visualization** — See what depends on what\n- **Health monitoring** — Detects stalled, stuck, or zombie agents automatically\n- **Auto-nudge** — Reassigns or restarts agents that go dark\n- **Crash recovery** — Checkpoints save agent progress; work resumes from last checkpoint, not from scratch\n\n### 💬 Operator Chat — Talk to Agents Mid-Build\n\nDon't wait for a PR to give feedback. Two communication modes:\n\n- **Queued Notes** — Add context (\"use the existing auth middleware\") that gets delivered at the agent's next checkpoint\n- **Direct Messages** — Delivered immediately to the agent's active session for real-time course correction\n\nFull chat history preserved per task — every message, note, and response.\n\n### 💰 Cost Tracking & Budget Caps\n\nGranular spend visibility across every dimension:\n\n- **Per-task cost tracking** — See exactly what each feature costs to build\n- **Per-product aggregation** — Total spend across all tasks for a product\n- **Daily and monthly caps** — Set budget limits that auto-pause dispatch when exceeded\n- **Cost breakdown API** — Detailed reports by agent, model, and time period\n\n### 🧠 Knowledge Base & Learner Agent\n\nA dedicated Learner agent captures lessons from every build cycle — what worked, what failed, what patterns emerged. Knowledge entries are injected into future dispatches so agents don't repeat mistakes.\n\n### 📋 Enhanced Planning Phase\n\nBefore any build starts, agents run a structured planning phase:\n\n- AI asks clarifying questions about requirements and constraints\n- Generates a detailed spec from your answers\n- Multi-agent planning specs with sub-agent definitions and execution steps\n- Approval gate — you review the plan before any code is written\n\n### 🔄 Checkpoint & Crash Recovery\n\nAgent progress is saved at configurable checkpoints:\n\n- If a session crashes, work resumes from the last checkpoint — not from scratch\n- Checkpoint restore API for manual recovery\n- Checkpoint history visible per task\n\n### 🎯 Preference Learning\n\nEvery swipe trains a per-product preference model:\n\n- Category weights (growth, SEO, UX, etc.) adjust based on approvals\u002Frejections\n- Complexity preferences calibrate over time\n- Tag pattern recognition refines idea generation\n- Ideas get sharper with every iteration\n\n### 🔁 Maybe Pool\n\nIdeas you're not sure about don't disappear:\n\n- Swiped \"Maybe\" ideas enter a holding pool\n- Automatically resurface after a configurable period with new market context\n- Batch re-evaluation mode to review accumulated maybes\n- Can be promoted to Yes at any time\n\n### 📡 Live Activity Feed\n\nReal-time SSE stream of everything happening across all products:\n\n- Research progress, ideation cycles, swipe events\n- Build progress, test results, review outcomes\n- Agent health events, cost updates, PR creation\n- Filterable by product, agent, and event type\n\n### 🛡️ Automation Tiers\n\nChoose your comfort level per product:\n\n| Tier | Behavior | Best For |\n|:-----|:---------|:---------|\n| **Supervised** | PRs created automatically. You review and merge manually. | Production apps |\n| **Semi-Auto** | PRs auto-merge when CI passes and review agent approves. | Staging & trusted repos |\n| **Full Auto** | Everything automated end-to-end. Idea → deployed feature. | Side projects & MVPs |\n\n### 🔀 Workspace Isolation\n\nEach build task gets an isolated workspace:\n\n- **Git Worktrees** for repo-backed projects — isolated branch, no conflicts with other agents\n- **Task Sandboxes** for local\u002Fno-repo projects — dedicated directory under `.workspaces\u002Ftask-{id}\u002F`\n- **Port allocation** (4200–4299 range) for dev servers — no port conflicts between concurrent builds\n- **Serialized merge queue** — completed tasks merge one at a time with conflict detection\n- **Product-scoped locking** — concurrent completions for the same product queue automatically\n\n### 📊 Product Scheduling\n\nConfigure autonomous cycles per product:\n\n- Research frequency (daily, weekly, custom cron)\n- Ideation frequency (after each research cycle, or independent schedule)\n- Auto-dispatch rules (immediate on \"Yes\" swipe, or batch)\n- Schedule management UI with enable\u002Fdisable per schedule\n\n---\n\n## ✨ Features\n\n**Product Autopilot**\n- 🔬 Autonomous market research (competitors, SEO, user intent, technical gaps)\n- 💡 AI-powered ideation with impact\u002Ffeasibility scoring\n- 👆 Swipe interface for instant approve\u002Freject\u002Fmaybe decisions\n- 📄 Product Program (Karpathy AutoResearch pattern)\n- 🎯 Preference learning from swipe history\n- 🔁 Maybe Pool with auto-resurface\n- 📊 Configurable research & ideation schedules\n\n**Agent Orchestration**\n- 🤖 Multi-agent pipeline (Builder → Tester → Reviewer → Learner)\n- 🚛 Convoy Mode for parallel multi-agent execution\n- 💬 Operator Chat (queued notes + direct messages)\n- 💚 Agent health monitoring with auto-nudge\n- 🔄 Checkpoint & crash recovery\n- 🧠 Knowledge base with cross-task learning\n- 🔀 Workspace isolation (git worktrees + task sandboxes)\n\n**Task Management**\n- 🎯 Kanban board with drag-and-drop across 7 status columns\n- 🧠 AI planning phase with clarifying Q&A\n- 📋 Multi-agent planning specs\n- 🖼️ Task image attachments (UI mockups, screenshots)\n- 📡 Live real-time activity feed (SSE)\n- 💰 Per-task, per-product, daily\u002Fmonthly cost tracking & caps\n\n**Infrastructure**\n- 🔌 OpenClaw Gateway integration (WebSocket)\n- 🔗 Gateway agent discovery & import\n- 🐳 Docker ready (production-optimized)\n- 🔒 Bearer token auth, HMAC webhooks, Zod validation\n- 🛡️ Privacy first — no trackers, no centralized data collection\n- 🌐 Multi-machine support (Tailscale compatible)\n- 🛡️ Automation tiers (Supervised \u002F Semi-Auto \u002F Full Auto)\n\n---\n\n## 🛡️ Privacy\n\nAutensa is open-source and self-hosted. The project does **not** include ad trackers, third-party analytics beacons, or a centralized data collector.\n\nYour task data, research results, ideas, swipe history, and product programs stay in your own deployment (SQLite + workspace). If you connect external services (AI providers or remote gateways), only the data you explicitly send to those services leaves your environment.\n\n---\n\n## 🏗 Architecture\n\n```\n┌──────────────────────────────────────────────────────────────────────┐\n│                          YOUR MACHINE                                │\n│                                                                      │\n│  ┌──────────────────┐          ┌──────────────────────────────────┐  │\n│  │ Autensa           │◄────────►│    OpenClaw Gateway              │  │\n│  │  (Next.js)        │   WS     │  (AI Agent Runtime)              │  │\n│  │  Port 4000        │          │  Port 18789                      │  │\n│  └────────┬──────────┘          └───────────┬────────────────────┘  │\n│           │                                  │                       │\n│           ▼                                  ▼                       │\n│  ┌──────────────────┐          ┌──────────────────────────────────┐  │\n│  │    SQLite DB       │          │     AI Providers                │  │\n│  │  (tasks, products, │          │  (Anthropic \u002F OpenAI \u002F etc.)    │  │\n│  │   ideas, costs)    │          └──────────────────────────────────┘  │\n│  └──────────────────┘                                                │\n│           │                                                          │\n│           ▼                                                          │\n│  ┌──────────────────────────────────────────────────────────────┐   │\n│  │              Autopilot Engine                                  │   │\n│  │  Research → Ideation → Swipe → Build → Test → Review → PR     │   │\n│  └──────────────────────────────────────────────────────────────┘   │\n└──────────────────────────────────────────────────────────────────────┘\n```\n\n**Autensa** = The dashboard + autopilot engine (this project)\n**OpenClaw Gateway** = The AI runtime that executes tasks ([separate project](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw))\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- **Node.js** v18+ ([download](https:\u002F\u002Fnodejs.org\u002F))\n- **OpenClaw Gateway** — `npm install -g openclaw`\n- **AI API Key** — Anthropic (recommended), OpenAI, Google, or others via OpenRouter\n\n### Install\n\n```bash\n# Clone\ngit clone https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control.git\ncd mission-control\n\n# Install dependencies\nnpm install\n\n# Setup\ncp .env.example .env.local\n```\n\nEdit `.env.local`:\n\n```env\nOPENCLAW_GATEWAY_URL=ws:\u002F\u002F127.0.0.1:18789\nOPENCLAW_GATEWAY_TOKEN=your-token-here\n```\n\n> **Where to find the token:** Check `~\u002F.openclaw\u002Fopenclaw.json` under `gateway.token`\n\n### Run\n\n```bash\n# Start OpenClaw (separate terminal)\nopenclaw gateway start\n\n# Start Autensa\nnpm run dev\n```\n\nOpen **http:\u002F\u002Flocalhost:4000** — you're in! 🎉\n\n### Production\n\n```bash\nnpm run build\nnpx next start -p 4000\n```\n\n---\n\n## 🐳 Docker\n\nYou can run Autensa in a container using the included `Dockerfile` and `docker-compose.yml`.\n\n### Prerequisites\n\n- Docker Desktop (or Docker Engine + Compose plugin)\n- OpenClaw Gateway running locally or remotely\n\n### 1. Configure environment\n\nCreate a `.env` file for Compose:\n\n```bash\ncp .env.example .env\n```\n\nThen set at least:\n\n```env\nOPENCLAW_GATEWAY_URL=ws:\u002F\u002Fhost.docker.internal:18789\nOPENCLAW_GATEWAY_TOKEN=your-token-here\n```\n\nNotes:\n- Use `host.docker.internal` when OpenClaw runs on your host machine.\n- If OpenClaw is on another machine, set its reachable `ws:\u002F\u002F` or `wss:\u002F\u002F` URL instead.\n\n### 2. Build and start\n\n```bash\ndocker compose up -d --build\n```\n\nOpen **http:\u002F\u002Flocalhost:4000**.\n\n### 3. Useful commands\n\n```bash\n# View logs\ndocker compose logs -f mission-control\n\n# Stop containers\ndocker compose down\n\n# Stop and remove volumes (deletes SQLite\u002Fworkspace data)\ndocker compose down -v\n```\n\n### Data persistence\n\nCompose uses named volumes:\n- `mission-control-data` for SQLite (`\u002Fapp\u002Fdata`)\n- `mission-control-workspace` for workspace files (`\u002Fapp\u002Fworkspace`)\n\n---\n\n## 🎯 How It Works\n\n### The Autopilot Pipeline\n\n```\nRESEARCH → IDEATION → SWIPE → PLAN → BUILD → TEST → REVIEW → PR\n   AI          AI      You      AI     Agent   Agent   Agent   Auto\n```\n\n1. **Research** — AI analyzes your product's market: competitors, SEO, user intent, technical gaps\n2. **Ideation** — Research feeds ideation agents that generate scored feature ideas\n3. **Swipe** — You review ideas as cards. Pass \u002F Maybe \u002F Yes \u002F Now!\n4. **Plan** — AI asks clarifying questions, generates a detailed spec\n5. **Build** — Agent clones repo, creates branch, implements the feature\n6. **Test** — Agent runs the test suite. Failures bounce back for auto-fix\n7. **Review** — Agent inspects the diff for quality, security, best practices\n8. **PR** — Pull request created on GitHub with full context and research backing\n\n### Task Flow (Manual Tasks)\n\n```\nPLANNING → INBOX → ASSIGNED → IN PROGRESS → TESTING → REVIEW → DONE\n```\n\nDrag tasks between columns or let the system auto-advance them.\n\n### Convoy Mode (Large Features)\n\n```\n                    ┌─ Subtask A (Agent 1) ──┐\nPARENT TASK ────────┤                        ├──── MERGE & PR\n                    ├─ Subtask B (Agent 2) ──┤\n                    └─ Subtask C (Agent 3) ──┘\n                         (depends on A)\n```\n\nSubtasks run in parallel with dependency-aware scheduling. Health monitoring detects stalls. Crash recovery via checkpoints.\n\n---\n\n## ⚙️ Configuration\n\n### Environment Variables\n\n| Variable | Required | Default | Description |\n|:---------|:--------:|:--------|:------------|\n| `OPENCLAW_GATEWAY_URL` | ✅ | `ws:\u002F\u002F127.0.0.1:18789` | WebSocket URL to OpenClaw Gateway |\n| `OPENCLAW_GATEWAY_TOKEN` | ✅ | — | Authentication token for OpenClaw |\n| `MC_API_TOKEN` | — | — | API auth token (enables auth middleware) |\n| `WEBHOOK_SECRET` | — | — | HMAC secret for webhook validation |\n| `DATABASE_PATH` | — | `.\u002Fmission-control.db` | SQLite database location |\n| `WORKSPACE_BASE_PATH` | — | `~\u002FDocuments\u002FShared` | Base directory for workspace files |\n| `PROJECTS_PATH` | — | `~\u002FDocuments\u002FShared\u002Fprojects` | Directory for project folders |\n\n### Security (Production)\n\nGenerate secure tokens:\n\n```bash\n# API authentication token\nopenssl rand -hex 32\n\n# Webhook signature secret\nopenssl rand -hex 32\n```\n\nAdd to `.env.local`:\n\n```env\nMC_API_TOKEN=your-64-char-hex-token\nWEBHOOK_SECRET=your-64-char-hex-token\n```\n\nWhen `MC_API_TOKEN` is set:\n- External API calls require `Authorization: Bearer \u003Ctoken>`\n- Browser UI works automatically (same-origin requests are allowed)\n- SSE streams accept token as query param\n\nSee [PRODUCTION_SETUP.md](PRODUCTION_SETUP.md) for the full production guide.\n\n---\n\n## 🌐 Multi-Machine Setup\n\nRun Autensa on one machine and OpenClaw on another:\n\n```env\n# Point to the remote machine\nOPENCLAW_GATEWAY_URL=ws:\u002F\u002FYOUR_SERVER_IP:18789\nOPENCLAW_GATEWAY_TOKEN=your-shared-token\n```\n\n### With Tailscale (Recommended)\n\n```env\nOPENCLAW_GATEWAY_URL=wss:\u002F\u002Fyour-machine.tailnet-name.ts.net\nOPENCLAW_GATEWAY_TOKEN=your-shared-token\n```\n\n---\n\n## 🗄 Database\n\nSQLite database auto-created at `.\u002Fmission-control.db`. Migrations run automatically on startup (21 migrations). As of v2.0.1, a timestamped backup is created before any pending migration runs.\n\n```bash\n# Reset (start fresh)\nrm mission-control.db\n\n# Inspect\nsqlite3 mission-control.db \".tables\"\n```\n\nKey tables added in v2: `products`, `research_cycles`, `ideas`, `swipe_history`, `preference_models`, `maybe_pool`, `product_feedback`, `cost_events`, `cost_caps`, `product_schedules`, `operations_log`, `convoys`, `convoy_subtasks`, `agent_health`, `work_checkpoints`, `agent_mailbox`, `workspace_ports`, `workspace_merges`.\n\n---\n\n## 📁 Project Structure\n\n```\nautensa\u002F\n├── src\u002F\n│   ├── app\u002F                    # Next.js pages & API routes\n│   │   ├── api\u002F\n│   │   │   ├── tasks\u002F          # Task CRUD, planning, dispatch, convoy, chat, workspace\n│   │   │   ├── products\u002F       # Product CRUD, research, ideation, swipe, schedules\n│   │   │   ├── agents\u002F         # Agent management, health, mail, discovery\n│   │   │   ├── costs\u002F          # Cost tracking, caps, breakdowns\n│   │   │   ├── convoy\u002F         # Convoy mail endpoints\n│   │   │   ├── openclaw\u002F       # Gateway proxy endpoints\n│   │   │   └── webhooks\u002F       # Agent completion webhooks\n│   │   ├── settings\u002F           # Settings page\n│   │   └── workspace\u002F[slug]\u002F   # Workspace dashboard\n│   ├── components\u002F\n│   │   ├── MissionQueue.tsx    # Kanban board\n│   │   ├── PlanningTab.tsx     # AI planning interface\n│   │   ├── AgentsSidebar.tsx   # Agent panel\n│   │   ├── LiveFeed.tsx        # Real-time events\n│   │   ├── TaskModal.tsx       # Task create\u002Fedit\n│   │   ├── TaskChatTab.tsx     # Operator chat\n│   │   ├── ConvoyTab.tsx       # Convoy visualization\n│   │   ├── DependencyGraph.tsx # DAG visualization\n│   │   ├── HealthIndicator.tsx # Agent health badges\n│   │   ├── WorkspaceTab.tsx    # Workspace isolation UI\n│   │   ├── autopilot\u002F          # SwipeDeck, IdeaCard, ResearchReport, etc.\n│   │   └── costs\u002F              # Cost dashboard components\n│   └── lib\u002F\n│       ├── autopilot\u002F          # Research, ideation, swipe, maybe-pool, scheduling\n│       ├── costs\u002F              # Cost tracker, caps, reporting\n│       ├── db\u002F                 # SQLite + 21 migrations\n│       ├── openclaw\u002F           # Gateway client + device identity\n│       ├── convoy.ts           # Convoy orchestration\n│       ├── agent-health.ts     # Health monitoring + auto-nudge\n│       ├── checkpoint.ts       # Checkpoint save\u002Frestore\n│       ├── workspace-isolation.ts # Git worktrees + task sandboxes\n│       ├── mailbox.ts          # Inter-agent messaging\n│       ├── chat-listener.ts    # Operator chat relay\n│       ├── learner.ts          # Knowledge base management\n│       └── types.ts            # TypeScript types\n├── presentation\u002F               # v2 pitch deck + narration script\n├── specs\u002F                      # Feature specs\n├── scripts\u002F                    # Bridge & hook scripts\n└── CHANGELOG.md                # Full version history\n```\n\n---\n\n## 🔧 Troubleshooting\n\n### Can't connect to OpenClaw Gateway\n\n1. Check OpenClaw is running: `openclaw gateway status`\n2. Verify URL and token in `.env.local`\n3. Check firewall isn't blocking port 18789\n\n### Planning questions not loading\n\n1. Check OpenClaw logs: `openclaw gateway logs`\n2. Verify your AI API key is valid\n3. Refresh and click the task again\n\n### Port 4000 already in use\n\n```bash\nlsof -i :4000\nkill -9 \u003CPID>\n```\n\n### Agent callbacks failing behind a proxy (502 errors)\n\nIf you're behind an HTTP proxy (corporate VPN, Hiddify, etc.), agent callbacks to `localhost` may fail because the proxy intercepts local requests.\n\n**Fix:** Set `NO_PROXY` so localhost bypasses the proxy:\n\n```bash\n# Linux \u002F macOS\nexport NO_PROXY=localhost,127.0.0.1\n\n# Windows (cmd)\nset NO_PROXY=localhost,127.0.0.1\n\n# Docker\ndocker run -e NO_PROXY=localhost,127.0.0.1 ...\n```\n\nSee [Issue #30](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F30) for details.\n\n---\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature\u002Famazing-feature`\n3. Commit your changes: `git commit -m 'feat: add amazing feature'`\n4. Push: `git push origin feature\u002Famazing-feature`\n5. Open a Pull Request\n\n---\n\n## 👏 Contributors\n\nAutensa is built by a growing community. Thank you to everyone who has contributed!\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsuperlowburn\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fsuperlowburn.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Steve\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Steve\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Device Identity\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frchristman89\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Frchristman89.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Ryan Christman\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Ryan Christman\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Port Configuration\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnicozefrench\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fnicozefrench.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"nicozefrench\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>nicozefrench\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>ARIA Hooks\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmisterdas\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fmisterdas.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"GOPAL\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>GOPAL\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Node v25 Support\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoralemarti\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fjoralemarti.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Jorge Martinez\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Jorge Martinez\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Orchestration\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fniks918\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fniks918.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Nik\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Nik\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Planning & Dispatch\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgmb9000\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fgmb9000.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Michael G\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Michael G\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Usage Dashboard\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FZ8Medina\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FZ8Medina.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Z8Medina\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Z8Medina\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Metabase Integration\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmarkphelps\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fmarkphelps.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Mark Phelps\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Mark Phelps\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Gateway Agent Discovery 💡\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmuneale\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fmuneale.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Alessio\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Alessio\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Docker Support\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJamesTsetsekas\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FJamesTsetsekas.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"James Tsetsekas\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>James Tsetsekas\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Planning Flow Fixes\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnice-and-precise\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fnice-and-precise.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"nice-and-precise\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>nice-and-precise\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Agent Protocol Docs\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJamesCao2048\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FJamesCao2048.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"JamesCao2048\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>JamesCao2048\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Task Creation Fix\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdavetha\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fdavetha.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"davetha\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>davetha\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Force-Dynamic & Model Discovery\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpkgaiassistant-droid\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fpkgaiassistant-droid.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"pkgaiassistant-droid\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>pkgaiassistant-droid\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Activity Dashboard & Mobile UX\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCoder-maxer\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FCoder-maxer.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Coder-maxer\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Coder-maxer\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Static Route Fix\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgrunya-openclaw\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fgrunya-openclaw.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"grunya-openclaw\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>grunya-openclaw\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Dispatch & Proxy Bug Reports\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Filakskill\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Filakskill.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"ilakskill\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>ilakskill\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Dispatch Recovery Design\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fplutusaisystem-cmyk\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fplutusaisystem-cmyk.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"plutusaisystem-cmyk\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>plutusaisystem-cmyk\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Agent Daemon & Fleet View\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnithis4th\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fnithis4th.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"nithis4th\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>nithis4th\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>2nd Brain Knowledge Base\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdavidpellerin\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fdavidpellerin.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"davidpellerin\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>davidpellerin\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Dynamic Agent Config\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftmchow\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Ftmchow.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"tmchow\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>tmchow\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Agent Import Improvements\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxiaomiusa87\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fxiaomiusa87.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"xiaomiusa87\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>xiaomiusa87\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Session Key Bug Report\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flutherbot-ai\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flutherbot-ai.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"lutherbot-ai\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>lutherbot-ai\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Security Audit\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FYitingOU\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FYitingOU.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"YITING OU\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>YITING OU\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Cascade Delete Fix\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrandonros\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fbrandonros.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"Brandon Ros\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>Brandon Ros\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Docker CI Workflow\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnano-lgtm\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fnano-lgtm.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"nano-lgtm\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>nano-lgtm\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Kanban UX Improvements\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcammybot1313-collab\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fcammybot1313-collab.png?size=80\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"cammybot1313-collab\" \u002F>\u003Cbr \u002F>\n        \u003Csub>\u003Cb>cammybot1313-collab\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\u003Cbr \u002F>\n      \u003Csub>Docs Typo Fix\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n## ⭐ Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F#crshdn\u002Fmission-control&Date\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=crshdn\u002Fmission-control&type=Date&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=crshdn\u002Fmission-control&type=Date\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=crshdn\u002Fmission-control&type=Date\" width=\"600\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n---\n\n## 📜 License\n\nMIT License — see [LICENSE](LICENSE) for details.\n\n---\n\n## 🙏 Acknowledgments\n\n- **[Andrej Karpathy](https:\u002F\u002Fgithub.com\u002Fkarpathy\u002Fautoresearch)** — AutoResearch architecture that inspired the Product Program pattern\n- **[Mike De'Shazer](https:\u002F\u002Fgithub.com\u002Fmikedeshazer)** — Operator Chat concept\n\n[![OpenClaw](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpenClaw-Gateway-blue?style=for-the-badge)](https:\u002F\u002Fgithub.com\u002Fopen-claw\u002Fopen-claw-gateway)\n[![Next.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-14-black?style=for-the-badge&logo=next.js)](https:\u002F\u002Fnextjs.org\u002F)\n[![Tailwind CSS](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)](https:\u002F\u002Ftailwindcss.com\u002F)\n[![SQLite](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSQLite-003B57?style=for-the-badge&logo=sqlite&logoColor=white)](https:\u002F\u002Fwww.sqlite.org\u002F)\n[![Anthropic](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAnthropic-Claude-orange?style=for-the-badge)](https:\u002F\u002Fwww.anthropic.com\u002F)\n\n---\n\n## ☕ Support\n\nIf Autensa has been useful to you, consider buying me a coffee!\n\n\u003Ca href=\"https:\u002F\u002Fbuymeacoffee.com\u002Fcrshdn\" target=\"_blank\">\n  \u003Cimg src=\"https:\u002F\u002Fcdn.buymeacoffee.com\u002Fbuttons\u002Fv2\u002Fdefault-yellow.png\" alt=\"Buy Me A Coffee\" height=\"50\" \u002F>\n\u003C\u002Fa>\n\n---\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F3u62kySzM\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJoin_Our_Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white\" alt=\"Join Our Discord\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Stop managing a backlog. Start shipping on autopilot.\u003C\u002Fstrong> 🚀\n\u003C\u002Fp>\n","Autensa 是世界上首个自主产品引擎，能够通过AI代理自动研究市场、生成功能并提交代码为拉取请求。项目采用TypeScript编写，支持80多个API端点，具备车队模式、崩溃恢复和成本跟踪等功能，并可通过OpenClaw Gateway自托管。它适用于需要持续改进产品且希望减少人工干预的企业或个人开发者场景中，特别适合那些追求高效自动化流程的团队。",2,"2026-06-11 03:51:23","high_star"]