[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-crshdn--mission-control":3,"tool-crshdn--mission-control":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,43,44,45,15,46,26,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70626,"2026-04-05T22:51:36",[26,15,13,45],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":80,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":113,"forks":114,"last_commit_at":115,"license":116,"difficulty_score":117,"env_os":118,"env_gpu":119,"env_ram":120,"env_deps":121,"category_tags":128,"github_topics":129,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":133,"updated_at":134,"faqs":135,"releases":156},2342,"crshdn\u002Fmission-control","mission-control","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.","Mission-control 是全球首款“自主产品引擎”，旨在让软件产品在无人值守的情况下实现自我进化。它通过 AI 智能体自动完成从市场调研、功能构思、代码构建到测试审查的全流程，并直接以拉取请求（PR）的形式交付成果，真正实现了\"24\u002F7 全天候自动迭代”。\n\n这款工具主要解决了产品开发中重复性高、反馈周期长以及夜间或假期无法持续进度的痛点。它特别适合希望提升研发效率的全栈开发者、独立黑客以及小型创业团队，让用户能将精力集中在核心战略上，而将常规的功能优化交给系统处理。\n\nMission-control 的技术亮点在于其独特的“技能创造循环”：智能体在执行任务后会自动提取可复用的操作步骤并存为“技能剧本”，随着使用次数增加，系统利用贝叶斯置信评分不断优化这些技能，无需人工干预即可越用越聪明。此外，它还支持想法去重、A\u002FB 测试、一键回滚以及完整的成本追踪功能。用户既可以通过 OpenClaw 网关自行部署以保障数据隐私，也能利用其丰富的 API 接口灵活集成到现有工作流中，是打造自动化产品研发闭环的强大助手。","\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-v240\">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.4.0\n\n### Agent Skill Creation Loop\n- **Agents learn reusable procedures** — When a task completes, the system extracts structured skills (build steps, deploy scripts, config patterns) from what the agent did. Skills are stored as executable playbooks with commands, prerequisites, and verification.\n- **Skills improve with use** — Agents report whether a skill worked. Bayesian confidence scoring promotes proven skills and deprecates unreliable ones. No manual curation needed.\n- **Injected at dispatch** — Matched skills are the first thing an agent sees, not a footnote. Agent #1 figures out the build process, Agent #2 gets it as primary instructions.\n\n### Previous Releases\n\n\u003Cdetails>\n\u003Csummary>v2.3.x — Idea Dedup, Chat, Undo, A\u002FB Testing, Rollback\u003C\u002Fsummary>\n\n- Idea similarity detection & auto-deduplication\n- Floating operator chat widget with @mentions\n- 10-second swipe undo + batch review mode\n- Product program A\u002FB testing\n- Automated rollback pipeline via GitHub webhooks\n\u003C\u002Fdetails>\n\n### Idea Similarity Detection\n- **Auto-deduplication** — New ideas are compared against existing ones. Ideas >90% similar to rejected ideas are auto-suppressed. Similar ideas get a warning badge. Full audit trail.\n\n### Operator Chat Widget\n- **Chat from anywhere** — Floating chat widget with threaded conversations per task. `@agent` mentions, command palette (`\u002Fstatus`, `\u002Fnudge`, `\u002Fcheckpoint`), and unread badges.\n\n### Swipe Undo & Batch Review\n- **10-second undo** — Full rollback of any swipe including task deletion. Batch review mode for table-view multi-select actions.\n\n### Product Program A\u002FB Testing\n- **Test your product program** — Run concurrent or alternating A\u002FB tests on product program variants. Research and ideation run against each variant. Statistical comparison of approval rates.\n\n### Automated Rollback Pipeline\n- **Auto-revert failed deploys** — GitHub webhook monitors merged PRs. Post-merge health checks. Auto-creates revert PRs when failures detected.\n\n### Activity Dashboard Picker\n- **Workspace selector** — `\u002Factivity` lists all workspaces instead of hardcoding to one.\n\n### Previous Releases\n\n\u003Cdetails>\n\u003Csummary>v2.2.1 — Health Check & Backup API\u003C\u002Fsummary>\n\n- `\u002Fapi\u002Fhealth` and `\u002Fapi\u002Fhealth\u002Fmetrics` for monitoring integration\n- Database backup API with optional S3 upload\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.2.0 — Preference Learning & Token Tracking\u003C\u002Fsummary>\n\n- Swipe-driven preference learning (Karpathy AutoResearch pattern)\n- Token counts now recorded in activity log and cost tracker\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.1.x — Server-Side Pipeline, Error Reporting & Badges\u003C\u002Fsummary>\n\n- Server-side research → ideation pipeline (fire-and-forget)\n- LLM retry with exponential backoff\n- Toast notifications with one-click error reporting\n- Pending ideas badges on product cards\n- One-click error reporting via mailto (pre-filled with system logs)\n- Pending ideas badge on product cards (iPhone-style notification count)\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.0.2 — Session Key Prefix Support\u003C\u002Fsummary>\n\n- Session Key Prefix UI for custom OpenClaw session routing. ([@balaji-g42](https:\u002F\u002Fgithub.com\u002Fbalaji-g42))\n- Session key sanitization — empty prefixes fall back to defaults.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.0.1 — Dispatch Stability & Community Contributions\u003C\u002Fsummary>\n\n- **Product Settings Modal** — Edit product config inline via the gear icon.\n- **Import README \u002F Auto-Generate Description** — One-click README import and AI-generated descriptions in the New Product Wizard.\n- **Dispatch hang fix** — 30s timeout on all dispatch calls; stale WebSocket force-reconnect.\n- **Pre-migration database backups** — Automatic timestamped backups before migrations. ([@cgluttrell](https:\u002F\u002Fgithub.com\u002Fcgluttrell))\n- **Migration 013 data guard** — Destructive migration skips databases with existing data. ([@cgluttrell](https:\u002F\u002Fgithub.com\u002Fcgluttrell))\n- **Static device identity path** — Removes dynamic filesystem path parameter. ([@org4lap](https:\u002F\u002Fgithub.com\u002Forg4lap))\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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_a718fd9ab2a2.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_36a94c9e6c63.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_08fcff853be5.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_7814965bd68c.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_92b1b83d347b.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_46797028eb07.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_8cd5caaabe03.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_827ff0c55191.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_67647fb75af4.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_f03289051be6.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_723699cd7ec6.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_2eef9f08c7f3.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_cfeec3a752a6.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_eb0096dc8fcc.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_6717b1e608af.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_de2efe10cd17.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_ee1a72514912.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_2f549e7f4b85.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_527ed07de179.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_f0631763760e.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_3425c067ea3e.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_a05fa73bd314.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_477bbc260bb4.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_6e0e84b35269.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_d77998688fe4.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_45a759adeae3.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_5fc8760eab86.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_6955069b0368.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_19823d5a3c4c.png&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_19823d5a3c4c.png\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_19823d5a3c4c.png\" 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","\u003Ch1 align=\"center\">Autensa\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cem>全球首款自主产品引擎\u003C\u002Fem>\u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fautensa.com\">autensa.com\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>您的产品会在您熟睡时全天候自我优化。\u003C\u002Fstrong>\u003Cbr>\n  研究 → 构思 → 滑动选择 → 构建 → 测试 → 审核 → 拉取请求 — 全程自动化。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n我强烈推荐使用 Hetzner VPS 来运行这个项目。\u003Ca href=\"https:\u002F\u002Fhetzner.cloud\u002F?ref=WYxriOUHyTil\">您可以在这里注册。\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 星标\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fcrshdn\u002Fmission-control?style=flat-square\" alt=\"GitHub 问题\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fcrshdn\u002Fmission-control?style=flat-square\" alt=\"许可证\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen?style=flat-square\" alt=\"欢迎提交 PR\" \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>🎮 实时演示\u003C\u002Fstrong>\u003C\u002Fa> •\n  \u003Ca href=\"#-quick-start\">快速开始\u003C\u002Fa> •\n  \u003Ca href=\"#-docker\">Docker\u003C\u002Fa> •\n  \u003Ca href=\"#-whats-new-in-v240\">新功能\u003C\u002Fa> •\n  \u003Ca href=\"#-features\">特性\u003C\u002Fa> •\n  \u003Ca href=\"#-how-it-works\">工作原理\u003C\u002Fa> •\n  \u003Ca href=\"#-configuration\">配置\u003C\u002Fa> •\n  \u003Ca href=\"#-contributors\">贡献者\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fghray.com\u002FAutensa_v2.mp4\">\u003Cstrong>▶️ 观看 Autensa v2 介绍视频\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## 🚀 v2.4.0 新增功能\n\n### 代理技能创建循环\n- **代理学习可重用流程** — 当任务完成时，系统会从代理的操作中提取结构化技能（构建步骤、部署脚本、配置模式）。这些技能以可执行剧本的形式存储，包含命令、先决条件和验证步骤。\n- **技能随使用不断优化** — 代理会报告某项技能是否有效。基于贝叶斯置信度评分机制，成熟的技能将被优先使用，而不可靠的技能则会被逐步淘汰。无需人工干预。\n- **调度时直接注入** — 匹配到的技能会作为首要指令呈现给代理，而非附加说明。例如，代理 #1 首次完成构建流程后，代理 #2 就可以直接按照该流程进行操作。\n\n### 历史版本回顾\n\n\u003Cdetails>\n\u003Csummary>v2.3.x — 创意去重、聊天、撤销、A\u002FB 测试、回滚\u003C\u002Fsummary>\n\n- 创意相似度检测与自动去重\n- 可悬浮的操作员聊天小部件，支持 @提及功能\n- 10 秒内可撤销滑动操作，并提供批量审核模式\n- 产品方案 A\u002FB 测试\n- 通过 GitHub Webhook 实现的自动化回滚流水线\n\u003C\u002Fdetails>\n\n### 创意相似度检测\n- **自动去重** — 新创意会与现有创意进行比对。与已拒绝创意相似度超过 90% 的新创意将被自动屏蔽，相似创意则会显示警告标识。所有操作均有完整审计记录。\n\n### 操作员聊天小部件\n- **随时随地聊天** — 可悬浮的聊天小部件，按任务分线程对话。支持 `@agent` 提及、命令面板（`\u002Fstatus`、`\u002Fnudge`、`\u002Fcheckpoint`）以及未读消息提醒。\n\n### 滑动撤销与批量审核\n- **10 秒内撤销** — 可完全撤销任何滑动操作，包括删除任务。同时提供批量审核模式，方便表格视图中的多选操作。\n\n### 产品方案 A\u002FB 测试\n- **测试您的产品方案** — 可针对不同版本的产品方案同时或交替运行 A\u002FB 测试。研究与构思阶段分别针对各版本展开，最终比较审批通过率的统计差异。\n\n### 自动化回滚流水线\n- **失败部署自动回滚** — GitHub Webhook 监控合并后的 PR。合并后会进行健康检查，一旦检测到失败，便会自动创建回滚 PR。\n\n### 活动仪表板选择器\n- **工作空间选择器** — `\u002Factivity` 会列出所有工作空间，而非硬编码为单一空间。\n\n### 历史版本回顾\n\n\u003Cdetails>\n\u003Csummary>v2.2.1 — 健康检查与备份 API\u003C\u002Fsummary>\n\n- `\u002Fapi\u002Fhealth` 和 `\u002Fapi\u002Fhealth\u002Fmetrics` 用于监控集成\n- 数据库备份 API，可选择上传至 S3\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.2.0 — 偏好学习与令牌追踪\u003C\u002Fsummary>\n\n- 基于滑动操作的偏好学习（Karpathy AutoResearch 模式）\n- 令牌数量现已记录在活动日志和成本跟踪器中\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.1.x — 服务器端流水线、错误报告与徽章\u003C\u002Fsummary>\n\n- 服务器端研究 → 构思流水线（即发即忘）\n- LLM 错误重试机制，采用指数退避策略\n- 含有一键错误报告功能的 Toast 通知\n- 产品卡片上显示待处理创意的徽章\n- 一键邮件报告错误（预填系统日志）\n- 产品卡片上的待处理创意徽章（类似 iPhone 的通知计数）\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.0.2 — 会话密钥前缀支持\u003C\u002Fsummary>\n\n- 会话密钥前缀 UI，用于自定义 OpenClaw 会话路由。（[@balaji-g42](https:\u002F\u002Fgithub.com\u002Fbalaji-g42) 贡献）\n- 会话密钥清理机制：空前缀将回退到默认设置。\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>v2.0.1 — 调度稳定性与社区贡献\u003C\u002Fsummary>\n\n- **产品设置模态框** — 通过齿轮图标即可在线编辑产品配置。\n- **导入 README \u002F 自动生成描述** — 在新建产品向导中，可一键导入 README 并由 AI 生成产品描述。\n- **调度挂起修复** — 所有调度调用均设置 30 秒超时；过期 WebSocket 会强制重新连接。\n- **迁移前数据库备份** — 在迁移之前自动创建带时间戳的备份。（[@cgluttrell](https:\u002F\u002Fgithub.com\u002Fcgluttrell) 贡献）\n- **迁移 013 数据保护** — 破坏性迁移会跳过已有数据的数据库。（[@cgluttrell](https:\u002F\u002Fgithub.com\u002Fcgluttrell) 贡献）\n- **静态设备身份路径** — 移除了动态文件系统路径参数。（[@org4lap](https:\u002F\u002Fgithub.com\u002Forg4lap) 贡献）\n\u003C\u002Fdetails>\n\n### v2.0 亮点\nAutensa v2 是一次彻底的升级，从单纯的任务编排仪表板扩展为**全球首个自主产品改进引擎**。它能够为您调研市场、生成功能创意，让您通过滑动操作轻松决策，并自动完成构建。\n\n### 🔬 产品自动驾驶——完整流水线\n\n核心功能。只需将 Autensa 对准任意产品（代码库 + 线上 URL），它便会启动一个持续改进循环：\n\n1. **自主研究** — AI 代理会分析你的代码库、扫描线上站点，并调研市场：竞争对手、用户意图、转化模式、SEO 差距以及技术机会。可根据配置的计划运行——每日、每周或按需触发。\n\n2. **AI 驱动的创意生成** — 研究结果会输入到创意生成代理中，产出具体且带评分的功能建议。每个建议包含影响评分、可行性评分、规模估算、技术方案，以及指向其灵感来源的研究报告的直接链接。\n\n3. **滑动决策** — 建议以卡片形式展示在类似 Tinder 的界面中。提供四种操作：\n   - **跳过** — 被拒绝。偏好模型会从中学习。\n   - **待定** — 保存至“待定池”。一周后会以新上下文重新出现。\n   - **确定** — 创建任务。构建代理开始编码。\n   - **立即执行** — 紧急调度。进入优先队列，立即执行。\n\n4. **自动化构建 → PR** — 获得批准的建议会通过完整的代理流水线：构建代理实现功能 → 测试代理运行测试套件 → 审查代理检查代码差异 → 在 GitHub 上创建带有完整上下文的拉取请求。\n\n**你唯一要做的就是滑动选择。** 其余一切均由系统自动完成。\n\n### 📄 产品规划文档（Karpathy 自动研究模式）\n\n灵感源自 Andrej Karpathy 的 [AutoResearch](https:\u002F\u002Fgithub.com\u002Fkarpathy\u002Fautoresearch) 架构。每个产品都有一份 **产品规划文档** —— 一份动态文档，用于指导研究和创意生成代理关注什么、哪些是重点、哪些可以忽略。随着滑动数据的积累，这份文档会不断进化：系统不仅学习模式，还会理解你的偏好。\n\n### 🚛 队列模式——多代理并行执行\n\n大型功能会被分解为子任务，并以可视化依赖图（DAG）呈现。3–5 个代理会同时工作，采用依赖感知的调度机制：\n\n- **并行子任务执行** — 各独立部分可同时进行\n- **依赖图可视化** — 显示各部分之间的依赖关系\n- **健康监控** — 自动检测停滞、卡住或失效的代理\n- **自动干预** — 重新分配或重启失效的代理\n- **崩溃恢复** — 检查点会保存代理进度；工作从最近的检查点继续，而非从头开始\n\n### 💬 运维聊天——构建过程中与代理沟通\n\n无需等到 PR 才能提供反馈。支持两种沟通模式：\n\n- **排队备注** — 添加上下文信息（“使用现有的认证中间件”），这些信息会在代理下次到达检查点时送达\n- **即时消息** — 直接发送到代理的当前会话，以便实时调整方向\n\n每个任务都会保留完整的聊天记录——每一条消息、每一条备注和每一次回复。\n\n### 💰 成本跟踪与预算上限\n\n对各项支出提供细粒度的可见性：\n\n- **按任务成本跟踪** — 准确了解每个功能的开发成本\n- **按产品汇总** — 该产品所有任务的总支出\n- **每日和每月上限** — 设置预算限制，超出时自动暂停调度\n- **成本明细 API** — 按代理、模型和时间段生成详细报告\n\n### 🧠 知识库与学习型代理\n\n专门的学习型代理会记录每次构建周期中的经验教训——哪些有效、哪些失败、出现了哪些模式。这些知识条目会被注入到未来的调度中，从而避免代理重复犯错。\n\n### 📋 增强的规划阶段\n\n在任何构建开始之前，代理都会执行结构化的规划阶段：\n\n- AI 会针对需求和约束提出澄清问题\n- 根据你的回答生成详细的规格说明\n- 多代理协作的规划方案，包含子代理定义和执行步骤\n- 审批环节——在任何代码编写之前，你需要先审核计划\n\n### 🔄 检查点与崩溃恢复\n\n代理的进度会按可配置的检查点保存：\n\n- 如果会话崩溃，工作会从最后一个检查点恢复——而不是从头开始\n- 提供检查点恢复 API，用于手动恢复\n- 可查看每个任务的检查点历史记录\n\n### 🎯 偏好学习\n\n每次滑动操作都会训练一个产品专属的偏好模型：\n\n- 根据批准或拒绝情况调整各类权重（增长、SEO、用户体验等）\n- 复杂度偏好会随时间不断校准\n- 标签模式识别能力会提升创意生成的质量\n- 每次迭代后，建议都会更加精准\n\n### 🔁 待定池\n\n那些你拿不准的建议不会消失：\n\n- “待定”的建议会进入暂存池\n- 在可配置的时间间隔后，会结合新的市场背景自动重新出现\n- 支持批量重新评估模式，方便回顾所有待定建议\n- 随时可将其升级为“确定”\n\n### 📡 实时活动流\n\n跨所有产品的实时 SSE 流，展示所有动态：\n\n- 研究进度、创意循环、滑动事件\n- 构建进度、测试结果、评审结果\n- 代理健康状态、成本更新、PR 创建\n- 可按产品、代理和事件类型进行筛选\n\n### 🛡️ 自动化层级\n\n为每个产品选择适合的自动化程度：\n\n| 层级 | 行为 | 适用场景 |\n|:-----|:---------|:---------|\n| **监督模式** | PR 自动创建，但需人工审核并合并。 | 生产环境应用 |\n| **半自动模式** | 当 CI 通过且审查代理批准时，PR 自动合并。 | 预发布环境及可信代码库 |\n| **全自动化模式** | 从创意到上线功能，全程自动化。 | 副项目及 MVP |\n  \n### 🔀 工作空间隔离\n\n每个构建任务都会获得一个隔离的工作空间：\n\n- **Git Worktrees** — 适用于基于代码库的项目，隔离分支，避免与其他代理冲突\n- **任务沙盒** — 适用于本地或无代码库项目，专用目录位于 `.workspaces\u002Ftask-{id}\u002F`\n- **端口分配**（4200–4299 范围）— 用于开发服务器，确保并发构建之间不会发生端口冲突\n- **串行合并队列** — 完成的任务会逐一合并，并检测冲突\n- **产品范围锁定** — 同一产品的并发完成任务会自动排队等待合并\n\n### 📊 产品调度\n\n为每个产品配置自主循环：\n\n- 研究频率（每日、每周或自定义 Cron）\n- 创意生成频率（每次研究结束后或独立安排）\n- 自动调度规则（“确定”滑动后立即调度，或批量调度）\n- 提供调度管理 UI，可为每个计划启用或禁用\n\n---\n\n## ✨ 功能\n\n**产品自动驾驶仪**\n- 🔬 自主市场调研（竞争对手、SEO、用户意图、技术差距）\n- 💡 基于AI的创意构思，附带影响与可行性评分\n- 👆 滑动界面，可快速做出批准\u002F拒绝\u002F待定决策\n- 📄 产品项目计划（Karpathy AutoResearch模式）\n- 🎯 根据滑动历史学习用户偏好\n- 🔁 待定池，支持自动重新浮现\n- 📊 可配置的研究与创意计划时间表\n\n**智能体编排**\n- 🤖 多智能体流水线（构建者 → 测试者 → 审核者 → 学习者）\n- 🚛 队列模式，支持多智能体并行执行\n- 💬 操作员聊天（队列备注 + 直接消息）\n- 💚 智能体健康监控，具备自动提醒功能\n- 🔄 检查点与崩溃恢复\n- 🧠 知识库，支持跨任务学习\n- 🔀 工作空间隔离（git工作树 + 任务沙盒）\n\n**任务管理**\n- 🎯 看板式任务管理，支持在7个状态列之间拖拽\n- 🧠 AI规划阶段，附带澄清性问答\n- 📋 多智能体规划规格\n- 🖼️ 任务图片附件（UI原型、截图）\n- 📡 实时活动动态流（SSE）\n- 💰 支持按任务、按产品进行每日\u002F每月成本跟踪与上限设置\n\n**基础设施**\n- 🔌 OpenClaw网关集成（WebSocket）\n- 🔗 网关智能体发现与导入\n- 🐳 Docker就绪（生产优化版）\n- 🔒 Bearer令牌认证、HMAC Webhook、Zod验证\n- 🛡️ 隐私优先 — 无追踪器、无集中式数据收集\n- 🌐 多机支持（兼容Tailscale）\n- 🛡️ 自动化层级（监督式 \u002F 半自动 \u002F 全自动）\n\n---\n\n## 🛡️ 隐私政策\n\nAutensa是开源且可自行部署的。该项目 **不** 包含广告追踪器、第三方分析信标或集中式数据收集系统。\n\n您的任务数据、研究结果、创意、滑动记录以及产品项目均保留在您自己的部署环境中（SQLite + 工作空间）。如果您连接外部服务（如AI提供商或远程网关），则只有您明确发送给这些服务的数据才会离开您的环境。\n\n---\n\n## 🏗 架构\n\n```\n┌──────────────────────────────────────────────────────────────────────┐\n│                          您的机器                                │\n│                                                                      │\n│  ┌──────────────────┐          ┌──────────────────────────────────┐  │\n│  │ Autensa           │◄────────►│    OpenClaw网关              │  │\n│  │  (Next.js)        │   WS     │  (AI智能体运行时)              │  │\n│  │  端口4000        │          │  端口18789                      │  │\n│  └────────┬──────────┘          └───────────┬────────────────────┘  │\n│           │                                  │                       │\n│           ▼                                  ▼                       │\n│  ┌──────────────────┐          ┌──────────────────────────────────┐  │\n│  │    SQLite数据库       │          │     AI提供商                │  │\n│  │  (任务、产品、 │          │  (Anthropic \u002F OpenAI \u002F 等)    │  │\n│  │   创意、成本)    │          └──────────────────────────────────┘  │\n│  └──────────────────┘                                                │\n│           │                                                          │\n│           ▼                                                          │\n│  ┌──────────────────────────────────────────────────────────────┐   │\n│  │              自动驾驶引擎                                  │   │\n│  │  研究 → 创意 → 滑动 → 构建 → 测试 → 审核 → PR     │   │\n│  └──────────────────────────────────────────────────────────────┘   │\n└──────────────────────────────────────────────────────────────────────┘\n```\n\n**Autensa** = 仪表盘 + 自动驾驶引擎（本项目）\n**OpenClaw网关** = 执行任务的AI运行时（[独立项目](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw)）\n\n---\n\n## 🚀 快速入门\n\n### 前置条件\n\n- **Node.js** v18+（[下载](https:\u002F\u002Fnodejs.org\u002F)）\n- **OpenClaw网关** — `npm install -g openclaw`\n- **AI API密钥** — 推荐使用Anthropic，也可通过OpenRouter使用OpenAI、Google等其他提供商\n\n### 安装步骤\n\n```bash\n# 克隆\ngit clone https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control.git\ncd mission-control\n\n# 安装依赖\nnpm install\n\n# 设置\ncp .env.example .env.local\n```\n\n编辑`.env.local`：\n\n```env\nOPENCLAW_GATEWAY_URL=ws:\u002F\u002F127.0.0.1:18789\nOPENCLAW_GATEWAY_TOKEN=your-token-here\n```\n\n> **Token获取位置：** 查看`~\u002F.openclaw\u002Fopenclaw.json`中的`gateway.token`\n\n### 运行\n\n```bash\n# 启动OpenClaw（另开终端）\nopenclaw gateway start\n\n# 启动Autensa\nnpm run dev\n```\n\n打开 **http:\u002F\u002Flocalhost:4000** — 您已成功进入！🎉\n\n### 生产环境\n\n```bash\nnpm run build\nnpx next start -p 4000\n```\n\n---\n\n## 🐳 Docker容器\n\n您可以使用随附的`Dockerfile`和`docker-compose.yml`文件，在容器中运行Autensa。\n\n### 前置条件\n\n- Docker Desktop（或Docker Engine + Compose插件）\n- OpenClaw网关需在本地或远程运行\n\n### 1. 配置环境\n\n创建一个用于Compose的`.env`文件：\n\n```bash\ncp .env.example .env\n```\n\n然后至少设置以下内容：\n\n```env\nOPENCLAW_GATEWAY_URL=ws:\u002F\u002Fhost.docker.internal:18789\nOPENCLAW_GATEWAY_TOKEN=your-token-here\n```\n\n注意事项：\n- 当OpenClaw运行在您的主机上时，请使用`host.docker.internal`。\n- 如果OpenClaw运行在另一台机器上，则应设置其可访问的`ws:\u002F\u002F`或`wss:\u002F\u002F`URL。\n\n### 2. 构建并启动\n\n```bash\ndocker compose up -d --build\n```\n\n打开 **http:\u002F\u002Flocalhost:4000**。\n\n### 3. 常用命令\n\n```bash\n# 查看日志\ndocker compose logs -f mission-control\n\n# 停止容器\ndocker compose down\n\n# 停止并移除卷（会删除SQLite\u002F工作空间数据）\ndocker compose down -v\n```\n\n### 数据持久化\n\nCompose使用命名卷：\n- `mission-control-data`用于存储SQLite数据（`\u002Fapp\u002Fdata`）\n- `mission-control-workspace`用于存储工作空间文件（`\u002Fapp\u002Fworkspace`）\n\n---\n\n## 🎯 工作原理\n\n### 自动驾驶流程\n\n```\n研究 → 创意 → 滑动 → 计划 → 构建 → 测试 → 审核 → PR\n   AI          AI      您      AI     智能体   智能体   智能体   自动\n```\n\n1. **研究** — AI分析您的产品所处的市场：竞争对手、SEO、用户意图、技术差距\n2. **创意** — 研究结果输入到创意智能体，生成带有评分的功能创意\n3. **滑动** — 您以卡片形式查看创意，选择“跳过”、“待定”、“采纳”或“立即实施”\n4. **计划** — AI提出澄清性问题，并生成详细的任务规格\n5. **构建** — 智能体克隆代码库，创建分支并实现该功能\n6. **测试** — 智能体运行测试套件，若失败则自动修复\n7. **审核** — 智能体检查代码变更，确保质量、安全性及最佳实践\n8. **PR** — 在GitHub上创建包含完整背景信息和研究依据的拉取请求\n\n### 任务流程（手动任务）\n\n```\n规划 → 收件箱 → 分配 → 进行中 → 测试 → 审核 → 完成\n```\n\n您可以在不同列之间拖拽任务，也可以让系统自动推进任务进度。\n\n### 编队模式（大型功能）\n\n```\n                    ┌─ 子任务 A（代理 1） ──┐\n父任务 ────────┤                        ├──── 合并与 PR\n                    ├─ 子任务 B（代理 2） ──┤\n                    └─ 子任务 C（代理 3） ──┘\n                         （依赖于 A）\n```\n\n子任务在具备依赖感知的调度机制下并行运行。健康监测可检测停滞情况。通过检查点实现崩溃恢复。\n\n---\n\n## ⚙️ 配置\n\n### 环境变量\n\n| 变量 | 必需 | 默认值 | 描述 |\n|:---------|:--------:|:--------|:------------|\n| `OPENCLAW_GATEWAY_URL` | ✅ | `ws:\u002F\u002F127.0.0.1:18789` | OpenClaw 网关的 WebSocket URL |\n| `OPENCLAW_GATEWAY_TOKEN` | ✅ | — | OpenClaw 的认证令牌 |\n| `MC_API_TOKEN` | — | — | API 认证令牌（启用认证中间件） |\n| `WEBHOOK_SECRET` | — | — | 用于 Webhook 验证的 HMAC 密钥 |\n| `DATABASE_PATH` | — | `.\u002Fmission-control.db` | SQLite 数据库位置 |\n| `WORKSPACE_BASE_PATH` | — | `~\u002FDocuments\u002FShared` | 工作区文件的基础目录 |\n| `PROJECTS_PATH` | — | `~\u002FDocuments\u002FShared\u002Fprojects` | 项目文件夹的目录 |\n\n### 安全性（生产环境）\n\n生成安全令牌：\n\n```bash\n# API 认证令牌\nopenssl rand -hex 32\n\n# Webhook 签名密钥\nopenssl rand -hex 32\n```\n\n添加到 `.env.local`：\n\n```env\nMC_API_TOKEN=your-64-char-hex-token\nWEBHOOK_SECRET=your-64-char-hex-token\n```\n\n当设置 `MC_API_TOKEN` 时：\n- 外部 API 调用需要 `Authorization: Bearer \u003Ctoken>`\n- 浏览器 UI 自动工作（允许同源请求）\n- SSE 流接受令牌作为查询参数\n\n完整生产指南请参阅 [PRODUCTION_SETUP.md](PRODUCTION_SETUP.md)。\n\n---\n\n## 🌐 多机器部署\n\n在一台机器上运行 Autensa，在另一台机器上运行 OpenClaw：\n\n```env\n# 指向远程机器\nOPENCLAW_GATEWAY_URL=ws:\u002F\u002FYOUR_SERVER_IP:18789\nOPENCLAW_GATEWAY_TOKEN=your-shared-token\n```\n\n### 使用 Tailscale（推荐）\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## 🗄 数据库\n\nSQLite 数据库会自动创建在 `.\u002Fmission-control.db`。启动时会自动运行迁移（共 21 次）。自 v2.0.1 起，在任何待处理的迁移运行之前，都会创建一个带时间戳的备份。\n\n```bash\n# 重置（从头开始）\nrm mission-control.db\n\n# 检查\nsqlite3 mission-control.db \".tables\"\n```\n\nv2 中新增的关键表：`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## 📁 项目结构\n\n```\nautensa\u002F\n├── src\u002F\n│   ├── app\u002F                    # Next.js 页面和 API 路由\n│   │   ├── api\u002F\n│   │   │   ├── tasks\u002F          # 任务 CRUD、计划、调度、编队、聊天、工作区\n│   │   │   ├── products\u002F       # 产品 CRUD、研究、创意构思、滑动筛选、排程\n│   │   │   ├── agents\u002F         # 代理管理、健康状况、邮件、发现\n│   │   │   ├── costs\u002F          # 成本跟踪、上限、分解\n│   │   │   ├── convoy\u002F         # 编队邮件端点\n│   │   │   ├── openclaw\u002F       # 网关代理端点\n│   │   │   └── webhooks\u002F       # 代理完成通知 Webhook\n│   │   ├── settings\u002F           # 设置页面\n│   │   └── workspace\u002F[slug]\u002F   # 工作区仪表盘\n│   ├── components\u002F\n│   │   ├── MissionQueue.tsx    # 看板式任务列表\n│   │   ├── PlanningTab.tsx     # AI 计划界面\n│   │   ├── AgentsSidebar.tsx   # 代理面板\n│   │   ├── LiveFeed.tsx        # 实时事件\n│   │   ├── TaskModal.tsx       # 创建\u002F编辑任务\n│   │   ├── TaskChatTab.tsx     # 运维人员聊天\n│   │   ├── ConvoyTab.tsx       # 编队可视化\n│   │   ├── DependencyGraph.tsx # DAG 可视化\n│   │   ├── HealthIndicator.tsx # 代理健康状态徽章\n│   │   ├── WorkspaceTab.tsx    # 工作区隔离 UI\n│   │   ├── autopilot\u002F          # SwipeDeck、IdeaCard、ResearchReport 等\n│   │   └── costs\u002F              # 成本仪表盘组件\n│   └── lib\u002F\n│       ├── autopilot\u002F          # 研究、创意构思、滑动筛选、备选池、排程\n│       ├── costs\u002F              # 成本追踪、上限、报告\n│       ├── db\u002F                 # SQLite + 21 次迁移\n│       ├── openclaw\u002F           # 网关客户端 + 设备身份\n│       ├── convoy.ts           # 编队编排\n│       ├── agent-health.ts     # 健康监测 + 自动提醒\n│       ├── checkpoint.ts       # 检查点保存与恢复\n│       ├── workspace-isolation.ts # Git 工作树 + 任务沙盒\n│       ├── mailbox.ts          # 代理间消息传递\n│       ├── chat-listener.ts    # 运维人员聊天中继\n│       ├── learner.ts          # 知识库管理\n│       └── types.ts            # TypeScript 类型定义\n├── presentation\u002F               # v2 演示文稿 + 解说脚本\n├── specs\u002F                      # 功能规格说明\n├── scripts\u002F                    # 桥接与钩子脚本\n└── CHANGELOG.md                # 完整版本历史\n```\n\n---\n\n## 🔧 故障排除\n\n### 无法连接到 OpenClaw 网关\n\n1. 检查 OpenClaw 是否正在运行：`openclaw gateway status`\n2. 验证 `.env.local` 中的 URL 和令牌\n3. 检查防火墙是否阻止了 18789 端口\n\n### 计划问题未加载\n\n1. 检查 OpenClaw 日志：`openclaw gateway logs`\n2. 确认您的 AI API 密钥有效\n3. 刷新页面并再次点击任务\n\n### 端口 4000 已被占用\n\n```bash\nlsof -i :4000\nkill -9 \u003CPID>\n```\n\n### 代理回调在代理后失败（502 错误）\n\n如果您位于 HTTP 代理之后（公司 VPN、Hiddify 等），代理回调到 `localhost` 可能会失败，因为代理会拦截本地请求。\n\n**解决方法：** 设置 `NO_PROXY` 使 localhost 绕过代理：\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\n详情请参阅 [Issue #30](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F30)。\n\n---\n\n## 🤝 贡献\n\n1. 分支仓库\n2. 创建特性分支：`git checkout -b feature\u002Famazing-feature`\n3. 提交更改：`git commit -m 'feat: add amazing feature'`\n4. 推送：`git push origin feature\u002Famazing-feature`\n5. 打开拉取请求\n\n---\n\n## 👏 贡献者\n\nAutensa 由不断壮大的社区共同构建。感谢每一位贡献者！\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsuperlowburn\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_a718fd9ab2a2.png\" 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>设备身份\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frchristman89\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_36a94c9e6c63.png\" 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>端口配置\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnicozefrench\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_08fcff853be5.png\" 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钩子\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmisterdas\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_7814965bd68c.png\" 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支持\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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_92b1b83d347b.png\" 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>编排\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fniks918\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_46797028eb07.png\" 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>计划与调度\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgmb9000\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_8cd5caaabe03.png\" 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>使用情况仪表盘\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FZ8Medina\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_827ff0c55191.png\" 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集成\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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_67647fb75af4.png\" 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>网关代理发现 💡\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmuneale\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_f03289051be6.png\" 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支持\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJamesTsetsekas\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_723699cd7ec6.png\" 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>计划流程修复\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnice-and-precise\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_2eef9f08c7f3.png\" 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>代理协议文档\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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_cfeec3a752a6.png\" 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>任务创建修复\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdavetha\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_eb0096dc8fcc.png\" 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>强制动态与模型发现\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpkgaiassistant-droid\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_6717b1e608af.png\" 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>活动仪表盘与移动端用户体验\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCoder-maxer\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_de2efe10cd17.png\" 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>静态路由修复\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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_ee1a72514912.png\" 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>调度与代理错误报告\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Filakskill\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_2f549e7f4b85.png\" 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>调度恢复设计\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fplutusaisystem-cmyk\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_527ed07de179.png\" 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>代理守护进程与车队视图\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnithis4th\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_f0631763760e.png\" 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>第二大脑知识库\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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_3425c067ea3e.png\" 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>动态代理配置\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftmchow\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_a05fa73bd314.png\" 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>代理导入改进\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxiaomiusa87\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_477bbc260bb4.png\" 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>会话密钥错误报告\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flutherbot-ai\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_6e0e84b35269.png\" 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>安全审计\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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_d77998688fe4.png\" 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>级联删除修复\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrandonros\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_45a759adeae3.png\" 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工作流\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnano-lgtm\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_5fc8760eab86.png\" 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改进\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcammybot1313-collab\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_6955069b0368.png\" 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>文档错别字修复\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n\n\n## ⭐ 星标历史\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\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_19823d5a3c4c.png&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_19823d5a3c4c.png\" \u002F>\n    \u003Cimg alt=\"星标历史图表\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_readme_19823d5a3c4c.png\" width=\"600\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n---\n\n## 📜 许可证\n\nMIT 许可证 — 详情请参阅 [LICENSE](LICENSE)。\n\n---\n\n## 🙏 致谢\n\n- **[Andrej Karpathy](https:\u002F\u002Fgithub.com\u002Fkarpathy\u002Fautoresearch)** — AutoResearch 架构，启发了产品计划模式\n- **[Mike De'Shazer](https:\u002F\u002Fgithub.com\u002Fmikedeshazer)** — 运营商聊天概念\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## ☕ 支持\n\n如果 Autensa 对您有所帮助，请考虑请我喝杯咖啡！\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=\"请我喝杯咖啡\" 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\u002F加入我们的Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white\" alt=\"加入我们的Discord\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>停止管理待办事项清单，开启自动驾驶式的交付吧。\u003C\u002Fstrong> 🚀\n\u003C\u002Fp>","# Mission Control (Autensa) 快速上手指南\n\nMission Control (Autensa) 是全球首个自主产品引擎，能够自动执行从市场调研、创意生成、代码构建到测试审查的全流程。你只需通过“滑动”操作决定创意的去留，其余工作由 AI 代理自动完成。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **操作系统**：推荐 Linux (Ubuntu\u002FDebian) 或 macOS。Windows 用户建议使用 WSL2。\n    *   *注：官方推荐使用 Hetzner VPS 部署以获得最佳性能。*\n*   **运行时环境**：\n    *   Node.js (v18 或更高版本，推荐 v20+)\n    *   npm 或 pnpm (包管理器)\n    *   Git\n*   **数据库**：内置 SQLite，无需额外安装数据库服务。\n*   **API 密钥**：\n    *   有效的 LLM API Key (如 OpenAI, Anthropic 等，需在配置中指定)。\n    *   GitHub Personal Access Token (用于自动创建 Pull Request 和仓库操作)。\n\n## 安装步骤\n\n### 1. 克隆项目仓库\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control.git\ncd mission-control\n```\n\n### 2. 安装依赖\n\n使用 npm 或 pnpm 安装项目依赖：\n\n```bash\nnpm install\n# 或者\npnpm install\n```\n\n### 3. 配置环境变量\n\n复制示例配置文件并根据实际情况修改：\n\n```bash\ncp .env.example .env\n```\n\n编辑 `.env` 文件，填入必要的密钥和配置（关键项如下）：\n\n```bash\n# LLM 提供商配置\nLLM_PROVIDER=openai\nOPENAI_API_KEY=sk-your-api-key-here\n\n# GitHub 配置\nGITHUB_TOKEN=ghp_your-github-token-here\nGITHUB_OWNER=your-github-username\n\n# 数据库 (默认使用 SQLite，通常无需修改路径)\nDATABASE_URL=file:.\u002Fdata\u002Fautensa.db\n\n# 可选：设置会话前缀或自定义端口\nSESSION_KEY_PREFIX=my-prefix\nPORT=3000\n```\n\n### 4. 初始化数据库并启动服务\n\n运行以下命令启动开发服务器（会自动处理数据库迁移）：\n\n```bash\nnpm run dev\n```\n\n服务启动后，访问 `http:\u002F\u002Flocalhost:3000` 即可看到界面。\n\n> **Docker 部署方案**\n> 如果你更倾向于使用容器化部署，可以使用 Docker：\n> ```bash\n> docker compose up -d\n> ```\n> 确保已正确配置 `.env` 文件后再启动容器。\n\n## 基本使用\n\n### 1. 添加产品 (Product)\n\n登录系统后，点击 **\"New Product\"** 向导：\n*   输入目标产品的 **GitHub 仓库地址**。\n*   输入产品的 **在线访问 URL** (用于实时分析)。\n*   系统会自动导入 `README` 并生成初步的产品描述。\n\n### 2. 配置产品程序 (Product Program)\n\n每个产品都有一个动态的“产品程序”文档，用于指导 AI 的研究方向：\n*   在设置中定义你关注的领域（如：SEO 优化、用户体验、新功能）。\n*   定义需要忽略的内容。\n*   随着你的操作，系统会自动学习你的偏好并更新此程序。\n\n### 3. 启动自主循环\n\n一旦产品添加完成，系统将自动进入 **Research → Ideation** 循环：\n*   **自主调研**：AI 分析代码库、扫描线上站点并研究竞争对手。\n*   **创意生成**：基于调研结果生成具体的功能创意卡片，包含影响力评分和可行性评估。\n\n### 4. 滑动决策 (Swipe to Decide)\n\n在主界面查看生成的创意卡片，执行以下操作：\n*   **Pass (左滑)**：拒绝创意，系统会记录偏好以避免类似建议。\n*   **Maybe**：暂存创意，稍后带着新上下文重新展示。\n*   **Yes (右滑)**：批准创意，触发 **Build Agent** 开始编写代码。\n*   **Now!**：紧急执行，将任务插入优先队列立即处理。\n\n### 5. 监控构建与合并\n\n批准后的任务将自动进入流水线：\n*   **构建**：Agent 编写代码并提交。\n*   **测试**：自动运行测试套件。\n*   **审查**：Review Agent 检查代码差异。\n*   **提交 PR**：在 GitHub 上自动创建 Pull Request。\n\n你可以在 **Activity Dashboard** 实时查看进度，或通过 **Operator Chat** 向正在运行的 Agent 发送指令（例如：`@agent 请使用现有的 auth 中间件`）。\n\n根据配置的自动化等级（Supervised\u002FSemi-Auto\u002FFull Auto），PR 将等待你手动合并或由系统自动合并部署。","某 SaaS 初创团队希望在夜间自动优化其 Next.js 仪表盘的用户体验，但缺乏专职产品经理进行持续的市场调研与功能迭代。\n\n### 没有 mission-control 时\n- **市场洞察滞后**：团队需人工定期搜集竞品动态和用户反馈，往往在需求提出数周后才能排期开发，错失市场窗口。\n- **创意到代码周期长**：从构思新功能到编写测试用例、提交代码，依赖开发人员手动执行，耗时且容易因疲劳产生疏漏。\n- **试错成本高昂**：缺乏自动化 A\u002FB 测试机制，新功能上线后若表现不佳，回滚流程繁琐，常导致线上服务短暂中断。\n- **知识无法沉淀**：成功的构建步骤或部署脚本散落在不同成员的本地环境中，未能形成可复用的标准化技能库。\n\n### 使用 mission-control 后\n- **7x24 小时自主调研**：AI 代理在夜间自动扫描市场趋势，生成经过查重筛选的高质量功能创意，并直接转化为待办任务。\n- **全自动闭环交付**：系统自动完成从代码生成、单元测试到提交 Pull Request 的全流程，开发者清晨只需审查合并即可。\n- **智能实验与自愈**：自动运行产品方案的 A\u002FB 测试，一旦监控到部署失败，立即触发自动回滚流水线，确保生产环境零故障。\n- **技能自我进化**：每次任务完成后，系统自动提取有效操作为“可执行剧本”，并通过贝叶斯评分不断优化，让后续任务执行更精准。\n\nmission-control 将被动响应式开发转变为主动进化的产品引擎，让团队在睡眠中也能实现产品的持续迭代与自我完善。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcrshdn_mission-control_766a7cbf.png","crshdn","Christopher Charles","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fcrshdn_030a1fdc.jpg","Dad × 2 small agents 🤍 | ML\u002FAI Engineer turning coffee → gradients. Marketer turning attention → revenue. Conversion-rate tactician, with receipts.","Ghray, Inc.",null,"cristofrcharles","crshdn.com","https:\u002F\u002Fgithub.com\u002Fcrshdn",[85,89,93,97,101,105,109],{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",91.6,{"name":90,"color":91,"percentage":92},"HTML","#e34c26",4.6,{"name":94,"color":95,"percentage":96},"JavaScript","#f1e05a",1.6,{"name":98,"color":99,"percentage":100},"Shell","#89e051",1,{"name":102,"color":103,"percentage":104},"Python","#3572A5",0.9,{"name":106,"color":107,"percentage":108},"CSS","#663399",0.2,{"name":110,"color":111,"percentage":112},"Dockerfile","#384d54",0.1,1770,401,"2026-04-03T07:07:13","MIT",4,"Linux, macOS","未说明","未说明 (建议部署在 VPS 上)",{"notes":122,"python":119,"dependencies":123},"该项目是一个基于 Next.js 和 TypeScript 的全栈应用，而非单纯的 Python AI 模型脚本。官方强烈推荐使用 Hetzner VPS 进行部署。支持通过 Docker 运行。系统核心功能包括自主研究、创意生成、自动构建和 PR 提交，依赖外部 LLM API（如 OpenAI）而非本地 GPU 推理。数据库使用 SQLite。",[124,125,126,127],"Next.js 14","TypeScript 5","SQLite 3","Docker",[15],[130,131,132],"aiagent","automation","openclaw","2026-03-27T02:49:30.150509","2026-04-06T08:42:07.354369",[136,141,146,151],{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},10763,"重置数据库或重新安装后，为什么我的自定义代理（如 \"Claudius\"）在 Mission Control 仪表板中不可见？","这是因为 `npm run db:seed` 命令具有破坏性，每次运行都会插入带有新 UUID 的全新示例代理（如 Charlie），并清除旧数据。此外，Mission Control 不会自动检测活跃的 OpenClaw 会话并为其创建代理。\n\n解决方法：在执行 seed 操作后，需要手动通过 API 重新创建代理并将其链接到 OpenClaw 会话。示例命令如下：\n1. 创建代理：\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fagents \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"Claudius\", \"role\": \"Primary Agent\", \"avatar_emoji\": \"🤖\", \"is_master\": 1}'\n2. 从响应中获取 agent ID，然后将其与 OpenClaw 会话进行关联映射。","https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F1",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},10764,"任务完成后进入测试阶段时，应用为什么会挂起或崩溃？","根本原因是服务器端的分发 `fetch()` 调用（由 `handleStageTransition()` 触发）没有设置超时时间。如果 OpenClaw 网关响应缓慢或代理会话无响应，请求会无限期阻塞，导致整个服务器进程挂起。\n\n解决方案（已在修复版本中应用）：\n1. 为所有服务器端分发 fetch 调用添加了 30 秒的 `AbortSignal.timeout`。如果超过 30 秒，请求将中止并记录错误，而不是挂起。\n2. 在分发失败时调用 OpenClaw WebSocket 客户端的 `forceReconnect()` 方法，以拆除僵死的连接并清除状态，确保下次尝试使用全新连接。","https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F84",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},10765,"规划完成后自动分派任务失败，报错 \"Task has no assigned agent\" 怎么办？","这是一个执行顺序问题：规划完成后虽然创建了代理，但在调用分派接口时，任务的 `assigned_agent_id` 字段仍为空（NULL），而分派逻辑要求该字段必须有值。\n\n临时解决方法：\n1. 手动在数据库中设置任务的 `assigned_agent_id` 字段。\n2. 或者在 UI 中手动将任务拖拽到 \"Assigned\" 列后再触发分派。\n\n注意：如果你运行的端口不是默认的 3000（例如 4001），请确保在 `.env.local` 文件中设置 `PORT=4001`，否则内部调用会因连接被拒绝（ECONNREFUSED）而失败。该问题已在后续版本的工作流重构中修复。","https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F56",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},10766,"如何禁用动态代理生成，只使用我导入的自定义代理？","可以通过设置环境变量来禁用动态代理生成功能。在 `.env.local` 文件中添加以下配置：\n\nALLOW_DYNAMIC_AGENTS=false\n\n当设置为 `false` 时，Mission Control 将跳过规划和子代理路由中的运行时代理创建，仅使用已导入的代理。默认值为 `true` 以保持向后兼容。此功能已在 v1.3.1 版本中实现。","https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F47",[157,162,167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247,252],{"id":158,"version":159,"summary_zh":160,"released_at":161},71369,"v2.4.0","Hat tip to [Nous Research](https:\u002F\u002Fgithub.com\u002Fnousresearch) for these.\r\n\r\nClosed-loop skill system where agents autonomously create, consume, and improve structured playbooks. Based on the Karpathy AutoResearch pattern — agents learn reusable procedures that compound over time.\r\n\r\n## How It Works\r\n\r\n1. **Task completes** → LLM extracts 0-3 reusable skills from activities and deliverables\r\n2. **Next dispatch** → Matched skills injected as primary instructions (keywords + role filtering)\r\n3. **Agent reports** → \"Used it, it worked\" or \"Had to deviate\" → Bayesian confidence updates\r\n4. **System curates** → Draft skills auto-promote after 2 successes. Unreliable skills auto-deprecate.\r\n\r\n## Added\r\n\r\n- **Skill Extraction** — Async post-task LLM analysis extracts structured procedures with commands, prerequisites, verification steps. Non-blocking — never delays task completion.\r\n- **Skill Matching & Dispatch Injection** — Matched by keyword overlap, agent role, and title similarity. Injected before knowledge section as primary guidance.\r\n- **Bayesian Confidence** — Prior weight of 2 prevents cold-start inflation (1 success = 0.667, not 1.0). Confidence drives matching priority, promotion, and deprecation.\r\n- **Inline Promotion\u002FDeprecation** — Draft → active at 2 successes + 0.6 confidence. Deprecated at 3+ uses + \u003C0.3 confidence. No cron dependency.\r\n- **Skill Versioning** — `supersedes_skill_id` tracks skill evolution. Matching deduplicates superseded versions.\r\n- **Skills API** — Full CRUD + usage reporting endpoints for agents and UI.\r\n\r\n## Example\r\n\r\n1. Agent #1 builds LeadsFire, discovers npm needs `--legacy-peer-deps` → \"LeadsFire Build\" skill created (draft, 0.5 confidence)\r\n2. Agent #2 dispatched for LeadsFire → receives skill as instructions → succeeds → confidence 0.667\r\n3. Agent #3 same product → second success → promoted to active (0.75 confidence)\r\n4. After 5 successful uses → 0.83 confidence, effectively the product's build playbook\r\n\r\n## Full Changelog\r\n\r\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete history.","2026-03-23T03:29:54",{"id":163,"version":164,"summary_zh":165,"released_at":166},71370,"v2.3.1","Fixes startup errors from v2.3.0 merge artifacts.\n\n## Fixed\n\n- **Schema syntax error on fresh DB init** — Missing `);` between `user_task_reads` and `product_program_variants` table definitions caused `near \"CREATE\": syntax error` on startup. Artifact from PR #89 merge resolution.\n- **Migration ID collision** — Migration 022 was previously applied as `error_reports` (since removed), causing the new `health_scores` migration and all subsequent migrations (023-027) to be skipped. Fixed migration records and applied missing ALTER TABLE columns for similarity detection, A\u002FB testing, batch review, and health scores.\n\n## Full Changelog\n\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete history.","2026-03-22T23:48:43",{"id":168,"version":169,"summary_zh":170,"released_at":171},71371,"v2.3.0","Six new features, security fixes, and quality-of-life improvements.\n\n## Added\n\n- **Idea Similarity Detection & Deduplication** — New ideas are compared against existing ones using text similarity. Ideas >90% similar to previously rejected ideas are auto-suppressed with a full audit trail. Remaining similar ideas get a warning badge on the card. ([PR #88](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F88))\n- **Operator Chat Overhaul** — Floating chat widget accessible from any page. Threaded conversations per task with `@agent` mentions, command palette (`\u002Fstatus`, `\u002Fnudge`, `\u002Fcheckpoint`), and unread message badges. Chat inbox shows all active conversations sorted by recency. ([PR #89](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F89))\n- **Swipe Undo & Batch Review** — 10-second undo window after any swipe action with full rollback (including task deletion for approved ideas, maybe pool removal, preference + health score rebuild). Batch review mode for table-view multi-select actions with configurable threshold per product. ([PR #90](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F90))\n- **Product Program A\u002FB Testing** — Create variants of the product program and run concurrent or alternating A\u002FB tests. Research and ideation run against each variant independently. Statistical comparison of approval rates. Promote winning variant or cancel test. ([PR #91](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F91))\n- **Automated Rollback Pipeline** — GitHub webhook listens for merged PRs, CI failures, and commit status events. Post-merge health monitoring with configurable intervals. Auto-creates revert PRs via GitHub API when failures detected. Rollback history with acknowledgment flow. ([PR #92](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F92))\n- **Activity Dashboard Workspace Picker** — New `\u002Factivity` page lists all workspaces with active\u002Ftotal task counts instead of hardcoding to the first workspace. ([PR #95](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F95))\n\n## Fixed\n\n- **Knowledge entries FK on task delete** — `knowledge_entries.task_id` now nullified when deleting a task, preventing dangling foreign key references. ([PR #93](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F93))\n- **HMAC timing attack in GitHub webhook** — Signature verification now uses `crypto.timingSafeEqual()` instead of string equality.\n- **Swipe undo rebuilds preferences & health** — Undoing a swipe now triggers preference model rebuild and health score recalculation.\n\n## Full Changelog\n\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete history.","2026-03-22T23:40:05",{"id":173,"version":174,"summary_zh":175,"released_at":176},71372,"v2.2.1","Monitoring integration and database backup management.\n\n## Added\n\n- **Health Check Endpoints** — `GET \u002Fapi\u002Fhealth` returns unauthenticated summary or authenticated full-detail JSON covering DB integrity, gateway connectivity, agent status, task queue depth, research cycle freshness, and cost cap utilization. `GET \u002Fapi\u002Fhealth\u002Fmetrics` exposes Prometheus text format for Grafana\u002Fmonitoring dashboards. ([PR #87](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F87))\n- **Database Backup API** — On-demand backup creation, listing, and restoration via `\u002Fapi\u002Fadmin\u002Fbackups`. Optional S3 upload support. Backup management UI added to Settings page. ([PR #86](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F86))\n\n## Fixed\n\n- **Build error from backup PR** — `@aws-sdk\u002Fclient-s3` added as dependency and webpack external so dynamic imports resolve at build time.\n- **Research health query** — `MAX(id)` on UUID columns replaced with `MAX(started_at)` to correctly identify the latest research cycle per product.\n- **Repo hygiene** — Removed committed workspace metadata and DB backup binaries. Added `db-backups\u002F`, `.tmp\u002F`, `.mc-workspace.json` to `.gitignore`.\n- **Redundant DB writable check** — Removed duplicate `SELECT 1` test in health check; writable status derived from integrity check result.\n\n## Full Changelog\n\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete history.","2026-03-22T08:31:13",{"id":178,"version":179,"summary_zh":180,"released_at":181},71373,"v2.2.0","Swipe-driven preference learning (Karpathy AutoResearch pattern) and token usage tracking fix.\n\n## Added\n\n- **Preference Learning** — Every swipe rebuilds a per-product preference model. Analyzes category approval rates, complexity preferences, impact score thresholds, tag patterns, and examples of approved\u002Frejected ideas. The resulting `learned_preferences_md` is injected into research and ideation prompts, steering future cycles toward what the user wants.\n- **Preference Backfill API** — `POST \u002Fapi\u002Fproducts\u002Fbackfill-preferences` rebuilds preference models for all products with existing swipe history.\n\n## Fixed\n\n- **Token counts always showing 0** — Research and ideation cycles now pass token usage (`promptTokens`, `completionTokens`, `totalTokens`) and model name through to `emitAutopilotActivity()` and `recordCostEvent()`. Previously the usage data was extracted from the gateway response but discarded before storage.\n\n## Full Changelog\n\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete history.","2026-03-22T02:45:41",{"id":183,"version":184,"summary_zh":185,"released_at":186},71374,"v2.1.1","Fixes a CHECK constraint failure that prevented ideas from being stored when the LLM returned a category not in the schema's allowed list.\n\n## Fixed\n\n- **Ideation CHECK constraint failure** — LLM occasionally returns idea categories not in the schema's allowed set (e.g. `\"analytics\"`, `\"design\"`, `\"marketing\"`). Categories are now validated before insert, falling back to `\"feature\"` for unrecognized values. This was causing the entire ideation cycle to fail silently after ideas were parsed but before they could be stored.\n\n## Full Changelog\n\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete history.","2026-03-22T02:16:25",{"id":188,"version":189,"summary_zh":190,"released_at":191},71375,"v2.1.0","Server-side autopilot pipeline, toast notifications with one-click error reporting, and pending ideas badges.\n\n## Added\n\n- **Server-Side Pipeline Orchestration** — The research → ideation pipeline now runs entirely server-side. \"Run Now\" fires a single request and returns immediately. Navigate away, close the tab — the pipeline keeps running. Multiple products run concurrently.\n- **Toast Notification System** — Global toast notifications surface errors, warnings, and status updates in real-time. Error toasts persist until dismissed and include a \"Report this issue\" action.\n- **One-Click Error Reporting** — Clicking \"Report this issue\" opens the user's default email client pre-filled with error details and recent system logs (autopilot activity, failed cycles, task activities). Reports go to hello@autensa.com. Zero friction — just hit send.\n- **Pending Ideas Badge** — Product cards on `\u002Fautopilot` now show a red notification badge with the count of pending ideas awaiting review (iPhone-style app icon badges).\n- **SSE Error Surfacing** — Autopilot errors and cost cap warnings broadcast via Server-Sent Events now appear as toast notifications in real-time.\n- **`useErrorReport` Hook** — Reusable hook for triggering error toasts with one-click email reporting from any component.\n\n## Fixed\n\n- **Autopilot Pipeline Stops on Navigation** — The research → ideation chain was orchestrated client-side. Navigating away killed the polling loop and ideation was never triggered after research completed. Now fully server-side.\n- **LLM Retry on Timeout\u002FNetwork Errors** — `complete()` retries up to 3 times with exponential backoff (5s, 10s, 20s) on `AbortError` and network failures (`ECONNREFUSED`, `ECONNRESET`, `fetch failed`). Fixes ideation failures caused by OpenClaw WebSocket instability.\n\n## Full Changelog\n\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete history.","2026-03-22T02:13:17",{"id":193,"version":194,"summary_zh":195,"released_at":196},71376,"v2.0.2","Community contribution: configurable session key prefix for OpenClaw routing, with input sanitization.\n\n## Added\n\n- **Session Key Prefix UI** — Contributed by [@balaji-g42](https:\u002F\u002Fgithub.com\u002Fbalaji-g42). Agents now have a configurable `session_key_prefix` field in the Agent Modal, allowing custom OpenClaw session routing per agent. Dynamically created agents inherit the prefix from the workspace's master agent. Planning sessions resolve the prefix with a priority chain: custom request prefix > assigned agent > master agent > default (`agent:main:`). ([PR #85](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F85))\n\n## Fixed\n\n- **Session Key Prefix Sanitization** — Empty or whitespace-only prefix values are stored as `null` so fallback defaults work correctly. Missing trailing colons are auto-appended to prevent malformed session keys (e.g., `agent:mainplanning:` instead of `agent:main:planning:`).\n\n## Full Changelog\n\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete history.","2026-03-22T00:54:48",{"id":198,"version":199,"summary_zh":200,"released_at":201},71377,"v2.0.1","Patch release focused on dispatch reliability and community-contributed safety improvements.\n\n## Fixed\n\n- **Dispatch Hang on Stage Transitions** — All server-side dispatch fetch calls now have a 30-second timeout. Previously, a slow or unresponsive OpenClaw gateway during testing\u002Freview\u002Fverification transitions could hang the PATCH request indefinitely, potentially crashing the server. ([#84](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F84))\n\n- **Stale OpenClaw Connection After Timeout** — Added `forceReconnect()` to the OpenClaw WebSocket client. When a dispatch fails, the client tears down the stale connection and clears pending requests so the next attempt gets a fresh WebSocket.\n\n- **Stale Markdown in Agent Modal** — The Agent Modal now fetches fresh `soul_md`, `user_md`, and `agents_md` from the API each time it opens, instead of displaying cached data from the Zustand store. ([#75](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fissues\u002F75))\n\n## Improved\n\n- **Pre-Migration Database Backups** — Before running any pending migrations, a timestamped backup is created using SQLite's `VACUUM INTO` (safe for WAL-mode databases). Keeps the last 5 backups automatically. If backup creation fails, migrations abort entirely. ([PR #79](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F79) — [@cgluttrell](https:\u002F\u002Fgithub.com\u002Fcgluttrell))\n\n- **Migration 013 Data Guard** — The destructive \"fresh start\" migration now checks for existing tasks and locally-configured agents before running. Databases with real data are preserved instead of silently wiped on upgrade. ([PR #79](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F79) — [@cgluttrell](https:\u002F\u002Fgithub.com\u002Fcgluttrell))\n\n- **Static Device Identity Path** — Removed dynamic `filePath` parameter from `loadOrCreateDeviceIdentity()`, binding file operations to the module-level constant. Resolves TP1004 static analysis warning. ([PR #82](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fpull\u002F82) — [@org4lap](https:\u002F\u002Fgithub.com\u002Forg4lap))\n\n## Full Changelog\n\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete history.","2026-03-21T08:44:12",{"id":203,"version":204,"summary_zh":205,"released_at":206},71378,"v2.0.0","# The World's First Autonomous Product Engine\n\nAutensa v2 transforms from a task orchestration dashboard into a fully autonomous product improvement engine. Point it at any product and it runs a continuous **research → ideation → build** loop.\n\n🎥 **[Watch the Demo](https:\u002F\u002Fghray.com\u002FAutensa_v2.mp4)** | 🌐 **[autensa.com](https:\u002F\u002Fautensa.com)**\n\n---\n\n## 🚀 Product Autopilot\n\nThe headline feature. A complete autonomous pipeline:\n\n- **Autonomous Research** — AI agents analyze your codebase, scan your live site, and research competitors, SEO gaps, and user intent. Inspired by Karpathy's [AutoResearch](https:\u002F\u002Fgithub.com\u002Fkarpathy\u002Fautoresearch).\n- **AI-Powered Ideation** — Research feeds ideation agents that produce scored feature ideas with impact, feasibility, size estimates, and technical approach.\n- **Swipe Interface** — Tinder-style card review. Pass, Maybe, Yes, or Now! Each swipe trains a per-product preference model.\n- **Product Program** — A living document (adapted from Karpathy's `program.md` pattern) that instructs research and ideation agents. Evolves as swipe data accumulates.\n- **Build to PR** — Approved ideas flow through the full pipeline: Build → Test → Review → Pull request on GitHub.\n\n## 🚚 Convoy Mode\n\nLarge features decomposed into subtasks with dependency-aware scheduling:\n- 3–5 agents work simultaneously on one feature\n- Visual dependency graph (DAG)\n- Inter-agent mailbox for coordination\n- Health monitoring with crash recovery via checkpoints\n\n## 💬 Operator Chat\n\nTalk to agents mid-build:\n- Queued notes delivered at checkpoints\n- Direct messages for real-time course correction\n- Full chat history per task\n\n## 💰 Cost Tracking & Budget Caps\n\n- Per-task and per-product cost tracking\n- Daily and monthly budget caps that auto-pause dispatch\n- Full cost breakdown by agent, model, and time period\n\n## 🔄 Crash Recovery\n\nAgent progress saved at checkpoints. If a session crashes, work resumes from the last checkpoint — not from scratch.\n\n## 🧠 Knowledge Base\n\nLearner agent captures lessons from every build. Knowledge entries injected into future dispatches so agents don't repeat mistakes.\n\n## 🔀 Workspace Isolation\n\n- Git worktrees for repo-backed projects\n- Task sandboxes for local builds\n- Port allocation (4200–4299) with no conflicts\n- Serialized merge queue with conflict detection\n\n## ⚡ Automation Tiers\n\n| Tier | Behavior | Best For |\n|------|----------|----------|\n| Supervised | PRs created automatically. You review and merge. | 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---\n\n## By the Numbers\n\n- **21** database migrations (8 new)\n- **18** new database tables\n- **80+** new API endpoints\n- **2,831** lines of new core library code\n- **14** new UI components\n- **8** new specs\n\n## Full Changelog\n\nSee [CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fblob\u002Fmain\u002FCHANGELOG.md) for the complete technical breakdown.\n","2026-03-21T02:45:00",{"id":208,"version":209,"summary_zh":210,"released_at":211},71379,"v1.5.3","## Fixed\n\n- **Agent Status Stale After Stage Handoff** — When a task moved between pipeline stages (builder → tester → reviewer → done), the previous agent's status remained `working` in the database permanently. Now the workflow engine resets the outgoing agent to `standby` on every stage handoff (unless the agent has other active tasks). The task PATCH endpoint also resets the assigned agent when a task moves to `done`.\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fcompare\u002Fv1.5.2...v1.5.3","2026-03-13T23:59:50",{"id":213,"version":214,"summary_zh":215,"released_at":216},71380,"v1.5.2","## Fixed\n\n- **Dispatch Deadlock Bug** — Fixed race condition where a failed dispatch left tasks stuck in `in_progress` permanently. The planning poll idempotency check now detects stale dispatches (no agent activity within 2 minutes) and retries instead of silently skipping. Previously, if the OpenClaw WebSocket dropped during dispatch, the task would never recover.\n\n- **Dispatch Error Recovery** — The dispatch endpoint now resets the task to `assigned` with a recorded error when delivery to the agent fails, instead of returning a generic 500 and leaving the task in a broken state. The UI receives a broadcast update so the error is immediately visible.\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fcompare\u002Fv1.5.1...v1.5.2","2026-03-13T23:47:13",{"id":218,"version":219,"summary_zh":220,"released_at":221},71381,"v1.5.1","## Highlights\n- Canonical OpenClaw agent catalog sync into Mission Control (startup\u002Fscheduled + dispatch-triggered)\n- Dynamic per-task routing (hybrid planner candidates + role\u002Ffallback safeguards)\n- Strict stage governance: evidence gates and done-state consistency checks\n- Failure escalation after repeated same-stage failures with fixer provisioning\n- Team role assignment hardening (normalized roles, no duplicate learner rows)\n- Agent Working\u002FStandby badges now update live from task state changes\n- PM2 production-mode guidance added to README (`npm run start`)\n\n## Validation\n- `npm test` passed\n- `npm run lint` passed (existing `TaskImages.tsx` warning only)\n- `npm run build` passed\n\n## Notes\nThis release includes stability and orchestration improvements for real-world multi-agent project flows.\n","2026-03-13T01:07:27",{"id":223,"version":224,"summary_zh":225,"released_at":226},71382,"v1.5.0","## What's New\n\n### Added\n- **Task Image Attachments** — Upload reference images (UI mockups, screenshots, etc.) to tasks. Images are included in agent dispatch context so AI agents can see what they're building. New Images tab in Task Modal with grid view, upload, and delete. (#60)\n\n### Fixed\n- **PORT env var** — Dev and start scripts now respect `PORT` env var instead of hardcoding 4000. Config fallback URL also uses `process.env.PORT`. (#68)\n- **Webhook auth bypass** — Webhook routes (`\u002Fapi\u002Fwebhooks\u002F*`) now bypass `MC_API_TOKEN` middleware, relying on their own HMAC signature validation. Fixes broken callbacks in split-service deployments. (#64)\n- **Agent \"Working\" status** — Agents now correctly reset to standby when they have no remaining active tasks. Previously the Working tag persisted after task completion\u002Fdeletion. (#61)\n\n### Also in this release (v1.4.1)\n- **Workspace Deletion Fix** — Cascade delete for workflow_templates and knowledge_entries (#71)\n- **Kanban UX** — Improved scrollbar visibility, compact empty columns toggle (#66)\n- **Docker CI** — GitHub Actions workflow for automated Docker builds (#69)\n- **Pipeline Docs** — `docs\u002FHOW-THE-PIPELINE-WORKS.md` — comprehensive guide to the multi-agent pipeline lifecycle\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fcompare\u002Fv1.4.0...v1.5.0","2026-03-10T17:21:49",{"id":228,"version":229,"summary_zh":230,"released_at":231},71383,"v1.4.1","### Added\n- **Kanban UX Improvements** — Improved horizontal scrollbar visibility and hit area. Added optional compact empty columns mode (off by default, toggleable via Settings → Kanban UX). (PR #66)\n- **Docker CI Workflow** — GitHub Actions workflow to automatically build the Dockerfile on push. (PR #69)\n- **Pipeline Documentation** — Added `docs\u002FHOW-THE-PIPELINE-WORKS.md` explaining the full multi-agent pipeline lifecycle, stages, loop-back mechanics, and Learner knowledge injection.\n\n### Fixed\n- **Workspace Deletion** — Fixed `SQLITE_CONSTRAINT_FOREIGNKEY` error when deleting workspaces that have auto-created workflow templates or knowledge entries. Cascade deletion now properly cleans up dependent records. (PR #71, fixes #70)\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcrshdn\u002Fmission-control\u002Fcompare\u002Fv1.4.0...v1.4.1","2026-03-10T17:23:26",{"id":233,"version":234,"summary_zh":235,"released_at":236},71384,"v0.1.0","### Added\n- Initial project setup\n- Basic task CRUD\n- Kanban board prototype\n- OpenClaw connection proof of concept","2026-03-10T17:23:27",{"id":238,"version":239,"summary_zh":240,"released_at":241},71385,"v1.4.0","## What's New\n\n### Multi-Agent Workflow Pipeline\nFull end-to-end task lifecycle: **Planning → Inbox → Assigned → In Progress → Testing → Review → Verification → Done**\n\n- **Builder Agent** (🛠️) — Creates deliverables from specs\n- **Tester Agent** (🧪) — Front-end QA: clicks elements, checks rendering, tests the app from user perspective\n- **Reviewer Agent** (🔍) — Code QC: reviews code quality, best practices, correctness, completeness\n- **Learner Agent** (📚) — Captures failure patterns, fix patterns, and lessons into the knowledge base\n\n### Workflow Engine\n- Queue-aware `drainQueue()` — Review column is a waiting room; only one task in Verification at a time\n- Fail-loopback — Tester\u002FReviewer failures return tasks to Builder with specific failure details\n- Automatic agent handoffs via role-based stage transitions\n- Learner notified on every stage transition (passes and failures)\n\n### Agent Bootstrap System\n- `bootstrapCoreAgents()` creates 4 core agents with full SOUL.md, USER.md, AGENTS.md templates\n- Auto-bootstraps on workspace creation\n- Workflow templates cloned to new workspaces\n\n### Bug Fixes\n- Fixed: Strict template verification role was `verifier` instead of `reviewer`\n- Fixed: Auto-advance bypassed the review queue\n- Fixed: Dispatch route hardcoded `\"done\"` instead of using computed `nextStatus`\n- Fixed: `assigned` status not resolved to builder stage in dispatch\n- Fixed: Tasks created without workflow template assignment\n- Fixed: Learner never received `task_roles` entry (not in any workflow stage)\n\n### New API Routes\n- `POST \u002Fapi\u002Ftasks\u002F[id]\u002Ffail` — Report stage failure with reason\n- `GET \u002Fapi\u002Ftasks\u002F[id]\u002Froles` — View task role assignments\n- `POST \u002Fapi\u002Fworkspaces\u002F[id]\u002Fknowledge` — Write to knowledge base\n- `GET \u002Fapi\u002Fworkspaces\u002F[id]\u002Fworkflows` — List workflow templates\n\n### Migration 013: Fresh Start\n- Wipes all task\u002Fagent data for clean slate\n- Sets Strict as default workflow template\n- Bootstraps 4 core agents for default workspace","2026-03-03T22:01:18",{"id":243,"version":244,"summary_zh":245,"released_at":246},71386,"v1.3.1","### Fixed\n- **Dynamic Agent Generation Flag** — New `ALLOW_DYNAMIC_AGENTS=false` env var to disable runtime agent creation. Users with fine-tuned OpenClaw agents can now prevent Mission Control from generating its own alongside them. Planning data is still saved regardless. (#47 — thanks @davidpellerin!)\n- **Agent Import SOUL.md\u002FUSER.md Defaults** — Importing agents from OpenClaw Gateway now pre-populates SOUL.md, USER.md, and AGENTS.md tabs with helpful defaults referencing the gateway agent, so users don't have to recreate them from scratch. (#40 — thanks @tmchow!)\n- **Configurable Session Key Prefix** — The `agent:main:` session key prefix is no longer hardcoded. Each agent can now have its own `session_key_prefix`, enabling imported sub-agents to function properly with their own session namespaces. Falls back to `agent:main:` for backward compatibility. (#32 — thanks @xiaomiusa87!)\n\nSee [CHANGELOG.md](CHANGELOG.md) for full project history.","2026-03-02T11:47:17",{"id":248,"version":249,"summary_zh":250,"released_at":251},71387,"v1.3.0","### Added\n- **Agent Activity Dashboard** — Dedicated page for monitoring agent work with mobile card layout. (#48 — thanks @pkgaiassistant-droid!)\n- **Remote Model Discovery** — Discover AI models from OpenClaw Gateway via `MODEL_DISCOVERY=true` env var. (#43 — thanks @davetha!)\n- **Proxy Troubleshooting** — Docs for users behind HTTP proxies experiencing 502 errors on agent callbacks.\n\n### Fixed\n- **Force-Dynamic API Routes** — All API routes now use `force-dynamic` to prevent stale cached responses. (#43)\n- **Null Agent Assignment** — `assigned_agent_id` can now be null in task creation schema. (#38 — thanks @JamesCao2048!)\n- **Dispatch Spec Forwarding** — Planning spec and agent instructions now forwarded in dispatch messages. (#51)\n- **Dispatch Failure Recovery** — Tasks stuck in `pending_dispatch` auto-reset to planning status. (#52)\n\nSee [CHANGELOG.md](CHANGELOG.md) for full details.","2026-03-02T11:23:23",{"id":253,"version":254,"summary_zh":255,"released_at":256},71388,"v1.2.0","### Added\n- **Gateway Agent Discovery** — Import existing agents from your OpenClaw Gateway. New \"Import from Gateway\" button with discovery modal, bulk-import, and `GW` badge for provenance tracking. (#22 — thanks @markphelps!)\n- **Docker Support** — Production-ready multi-stage Dockerfile, docker-compose.yml with persistent volumes, health checks. (#21 — thanks @muneale!)\n- **Agent Protocol Conventions** — `PROGRESS_UPDATE` and `BLOCKED` message formats to prevent agent stalling. (#24 — thanks @nice-and-precise!)\n\n### Fixed\n- **Planning Flow Improvements** — Refactored polling, fixed \"Other\" free-text option, made `due_date` nullable, increased planning timeout to 90s. (#26 — thanks @JamesTsetsekas!)\n- **WebSocket RPC Deduplication Bug** — Event dedup cache was dropping repeated RPC responses, causing timeouts. RPC responses now bypass dedup.\n- **Next.js Response Caching** — Dynamic API routes now use `force-dynamic` to prevent stale cached responses.\n\nSee [CHANGELOG.md](CHANGELOG.md) for full details.","2026-03-02T11:23:21"]