[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-GreenSheep01201--claw-empire":3,"tool-GreenSheep01201--claw-empire":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":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":80,"owner_url":81,"languages":82,"stars":114,"forks":115,"last_commit_at":116,"license":117,"difficulty_score":10,"env_os":118,"env_gpu":119,"env_ram":119,"env_deps":120,"category_tags":126,"github_topics":127,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":135,"updated_at":136,"faqs":137,"releases":168},2933,"GreenSheep01201\u002Fclaw-empire","claw-empire","Command Your AI Agent Empire from the CEO Desk — A local-first AI agent office simulator that orchestrates CLI, OAuth, and API-connected agents (Claude Code, Codex CLI, Gemini CLI, OpenCode, and more) as a virtual autonomous company.","Claw-Empire 是一款极具创意的本地优先 AI 代理办公模拟器，它能将您现有的各类 AI 编程助手（如 Claude Code、Gemini CLI、GitHub Copilot 等）整合成一个虚拟的“软件公司”。在这个系统中，您扮演 CEO 的角色，通过一个可爱的像素风办公室界面，直观地指挥和观察这些 AI 员工在不同部门间协作、开会并交付任务。\n\n它主要解决了多模型管理分散、协作流程不透明以及缺乏统一调度界面的痛点。用户无需在多个终端或网页间切换，即可在一个仪表盘上统一管理基于 CLI、OAuth 或 API 连接的不同 AI 代理。其独特的技术亮点在于完全本地化运行，所有数据存储在本地 SQLite 数据库中，不依赖云端，确保了极高的隐私安全性；同时支持让 AI 在隔离的 Git 工作树中自主协作，真实模拟软件开发流程。\n\n这款工具非常适合开发者、技术研究人员以及希望探索多智能体协作模式的极客用户。如果您已经拥有多个 AI 编码工具账号，却苦于无法高效统筹它们的工作流，Claw-Empire 能为您提供一种既有趣又高效的的全新管理范式，让复杂的 AI 编排变得可视化且充满","Claw-Empire 是一款极具创意的本地优先 AI 代理办公模拟器，它能将您现有的各类 AI 编程助手（如 Claude Code、Gemini CLI、GitHub Copilot 等）整合成一个虚拟的“软件公司”。在这个系统中，您扮演 CEO 的角色，通过一个可爱的像素风办公室界面，直观地指挥和观察这些 AI 员工在不同部门间协作、开会并交付任务。\n\n它主要解决了多模型管理分散、协作流程不透明以及缺乏统一调度界面的痛点。用户无需在多个终端或网页间切换，即可在一个仪表盘上统一管理基于 CLI、OAuth 或 API 连接的不同 AI 代理。其独特的技术亮点在于完全本地化运行，所有数据存储在本地 SQLite 数据库中，不依赖云端，确保了极高的隐私安全性；同时支持让 AI 在隔离的 Git 工作树中自主协作，真实模拟软件开发流程。\n\n这款工具非常适合开发者、技术研究人员以及希望探索多智能体协作模式的极客用户。如果您已经拥有多个 AI 编码工具账号，却苦于无法高效统筹它们的工作流，Claw-Empire 能为您提供一种既有趣又高效的的全新管理范式，让复杂的 AI 编排变得可视化且充满乐趣。","\u003Cp align=\"center\">\n  \u003Cimg src=\"public\u002Fclaw-empire.svg\" width=\"80\" alt=\"Claw-Empire\" \u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">Claw-Empire\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Command Your AI Agent Empire from the CEO Desk\u003C\u002Fstrong>\u003Cbr>\n  A local-first AI agent office simulator that orchestrates \u003Cb>CLI\u003C\u002Fb>, \u003Cb>OAuth\u003C\u002Fb>, and \u003Cb>API-connected\u003C\u002Fb> providers (including \u003Cb>Claude Code\u003C\u002Fb>, \u003Cb>Codex CLI\u003C\u002Fb>, \u003Cb>Gemini CLI\u003C\u002Fb>, \u003Cb>OpenCode\u003C\u002Fb>, \u003Cb>Kimi Code\u003C\u002Fb>, \u003Cb>GitHub Copilot\u003C\u002Fb>, and \u003Cb>Antigravity\u003C\u002Fb>) as a virtual company of autonomous agents.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-2.0.4-blue\" alt=\"Releases\" \u002F>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main\" alt=\"CI\" \u002F>\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fnode-%3E%3D22-brightgreen\" alt=\"Node.js 22+\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-orange\" alt=\"License\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey\" alt=\"Platform\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAI-Claude%20%7C%20Codex%20%7C%20Gemini%20%7C%20OpenCode%20%7C%20Kimi%20%7C%20Copilot%20%7C%20Antigravity-purple\" alt=\"AI Agents\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#quick-start\">Quick Start\u003C\u002Fa> &middot;\n  \u003Ca href=\"#ai-installation-guide\">AI Install Guide\u003C\u002Fa> &middot;\n  \u003Ca href=\"docs\u002Freleases\u002Fv2.0.4.md\">Release Notes\u003C\u002Fa> &middot;\n  \u003Ca href=\"#openclaw-integration\">OpenClaw\u003C\u002Fa> &middot;\n  \u003Ca href=\"#direct-messenger-without-openclaw\">Direct Messenger\u003C\u002Fa> &middot;\n  \u003Ca href=\"#dollar-command-logic\">$ Command\u003C\u002Fa> &middot;\n  \u003Ca href=\"#features\">Features\u003C\u002Fa> &middot;\n  \u003Ca href=\"#screenshots\">Screenshots\u003C\u002Fa> &middot;\n  \u003Ca href=\"#tech-stack\">Tech Stack\u003C\u002Fa> &middot;\n  \u003Ca href=\"#cli-provider-setup\">Providers\u003C\u002Fa> &middot;\n  \u003Ca href=\"#docker-deployment-quick-start\">Docker Deploy\u003C\u002Fa> &middot;\n  \u003Ca href=\"#security\">Security\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cb>English\u003C\u002Fb> | \u003Ca href=\"README_ko.md\">한국어\u003C\u002Fa> | \u003Ca href=\"README_jp.md\">日本語\u003C\u002Fa> | \u003Ca href=\"README_zh.md\">中文\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_04a40aeb47d9.png\" alt=\"Office View\" width=\"100%\" \u002F>\n\u003C\u002Fp>\n\n---\n\n## What is Claw-Empire?\n\nClaw-Empire transforms your AI coding assistants — connected via **CLI**, **OAuth**, or **direct API keys** — into a fully simulated **virtual software company**. You are the CEO. Your AI agents are the employees. Watch them collaborate across departments, hold meetings, deliver tasks, and level up — all visualized through a charming pixel-art office interface.\n\n### Why Claw-Empire?\n\n- **One interface, many AI agents** — Manage CLI, OAuth, and API-backed agents from a single dashboard\n- **Local-first & private** — All data stays on your machine. SQLite database, no cloud dependency\n- **Visual & intuitive** — Pixel-art office view makes AI orchestration fun and transparent\n- **Real autonomous collaboration** — Agents work in isolated git worktrees, attend meetings, and produce deliverables\n\n---\n\n## Install with AI\n\n> **Just paste this to your AI coding agent (Claude Code, Codex, Gemini CLI, etc.):**\n>\n> ```\n> Install Claw-Empire following the guide at:\n> https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\n> ```\n>\n> The AI will read this README and handle everything automatically.\n\n---\n\n## Latest Release (v2.0.4)\n\n- **Docker deployment is now an officially documented path** - the repo now ships a production-oriented `Dockerfile`, `docker-compose.yml`, `.dockerignore`, and container-aware runtime path handling.\n- **Stale `working` agents recover automatically after interrupted runs** - lifecycle startup and interval sweeps now reset agents that are still marked `working` without a live `in_progress` task.\n- **Settings > API now supports official direct-API presets** - OpenCode Go and Bailian Coding Plan presets lock the expected Base URL, seed fallback models immediately, and keep refresh\u002Fretry behavior explicit.\n- **Kimi Code is now supported end to end** - Kimi is wired through CLI execution, provider labels, skills learn\u002Funlearn flow, prompt-skill rendering, video-preprod bootstrap, and provider-aware schema\u002Fruntime checks.\n- **API model assignment now starts from the development pack and expands to initialized office packs** - `development` remains the default baseline, and office packs that have already been hydrated through initial setup also appear as assign targets.\n- **Local E2E validation is safer and cleaner** - `pnpm run test:e2e` now resets the isolated runtime before and after Playwright runs, and existing `8810` servers are no longer reused unless you explicitly opt in.\n\n- Full notes: [`docs\u002Freleases\u002Fv2.0.4.md`](docs\u002Freleases\u002Fv2.0.4.md)\n- API docs: [`docs\u002Fapi.md`](docs\u002Fapi.md), [`docs\u002Fopenapi.json`](docs\u002Fopenapi.json)\n- Security policy: [`SECURITY.md`](SECURITY.md)\n\n## Office Pack Profiles (v2.0.1)\n\nEach office pack applies a different collaboration topology, naming seed, and workflow bias.\n\n| Pack                          | Core Focus                                                     | Representative Structure                                         |\n| ----------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------- |\n| `development` (`DEV`)         | Default engineering baseline with backward-compatible behavior | Planning \u002F Development \u002F Design \u002F QA-QC \u002F DevSecOps \u002F Operations |\n| `report` (`RPT`)              | Structured report and document production                      | Editorial Planning, Research Engine, Doc Design, Review Desk     |\n| `web_research_report` (`WEB`) | Source collection and citation-first fact validation           | Research Strategy, Crawler Team, Fact Check                      |\n| `novel` (`NOV`)               | Worldbuilding, narrative flow, and tone consistency            | Worldbuilding, Narrative Engine, Character Art, Tone QA          |\n| `video_preprod` (`VID`)       | Concept\u002Fscript\u002Fshot-list\u002Fediting-note pre-production           | Pre-production, Scene Engine, Art & Camera, Cut QA               |\n| `roleplay` (`RPG`)            | In-character dialogue immersion and role consistency           | Character Planning, Dialogue Engine, Stage Art, Character QA     |\n\n## Screenshots\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**Dashboard** — Real-time KPI metrics, agent rankings, and department status at a glance\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_da90aa3b0351.png\" alt=\"Dashboard\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**Kanban Board** — Drag-and-drop task management with department and agent filters\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_0fa42daed893.png\" alt=\"Kanban Board\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**Skills Library** — Browse and assign 600+ agent skills across categories\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_647ca3f5527f.png\" alt=\"Skills Library\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**Multi-Provider CLI** — Configure Claude Code, Codex, Gemini CLI, OpenCode, and Kimi Code with model selection\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_d6cf468b1b2a.png\" alt=\"CLI Tools Settings\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**OAuth Integration** — Secure GitHub & Google OAuth with encrypted token storage\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_9655085aa13c.png\" alt=\"OAuth Settings\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**Meeting Minutes** — AI-generated meeting summaries with multi-round review approval\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_deb6692832d9.png\" alt=\"Meeting Minutes\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**Messenger Integration** — Configure Telegram, WhatsApp, Discord, Google Chat, Slack, Signal, iMessage sessions and send `$` CEO directives\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_09eed586c139.png\" alt=\"Telegram Integration\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**Settings** — Configure company name, CEO name, default provider preferences (CLI\u002FOAuth\u002FAPI), and language preferences\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_94e30eb865c0.png\" alt=\"Settings\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**Detailed Report** — Example of completion report popup, report history, and detailed report view for a request\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_059f8f718061.png\" alt=\"Detailed Report\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**PPT Generation** — Example captures of PPT generation output for a report request\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_d8623c18df7a.png\" alt=\"PPT Generation Example 0\" width=\"49%\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_71243d531af7.png\" alt=\"PPT Generation Example 1\" width=\"49%\" \u002F>\n\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### Video Output Sample\n\nPreview sample intro video output:\n\n\u003Cp align=\"center\">\n  \u003Cvideo src=\"Sample_Img\u002Fclaw-empire-intro.mp4\" controls muted playsinline width=\"100%\">\u003C\u002Fvideo>\n\u003C\u002Fp>\n\n- Direct file: [`Sample_Img\u002Fclaw-empire-intro.mp4`](Sample_Img\u002Fclaw-empire-intro.mp4)\n\n### PPT Sample Sources\n\nUse the sample sources below when reviewing or extending report-to-PPT generation:\nUsage path: **Chat window > Report Request button**, then enter your request.\n\n- Folder: [`docs\u002Freports\u002FSample_Slides`](docs\u002Freports\u002FSample_Slides)\n- Sample deck (`.pptx`): [`docs\u002Freports\u002FPPT_Sample.pptx`](docs\u002Freports\u002FPPT_Sample.pptx)\n- HTML slides: [`slide-01.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-01.html), [`slide-02.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-02.html), [`slide-03.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-03.html), [`slide-04.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-04.html), [`slide-05.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-05.html), [`slide-06.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-06.html), [`slide-07.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-07.html), [`slide-08.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-08.html), [`slide-09.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-09.html)\n- Build scripts: [`build-pptx.mjs`](docs\u002Freports\u002FSample_Slides\u002Fbuild-pptx.mjs), [`build-pptx.cjs`](docs\u002Freports\u002FSample_Slides\u002Fbuild-pptx.cjs), [`html2pptx.cjs`](docs\u002Freports\u002FSample_Slides\u002Fhtml2pptx.cjs)\n\n---\n\n## Features\n\n| Feature                        | Description                                                                                                                                                                                                 |\n| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **Pixel-Art Office**           | Animated office view with agents walking, working, and attending meetings across 6 departments                                                                                                              |\n| **Workflow Pack Profiles**     | Six built-in workflow packs (`development`, `report`, `web_research_report`, `novel`, `video_preprod`, `roleplay`) provide pack-specific routing schema, QA rules, and output templates                     |\n| **Office Pack Profiles**       | Pack-scoped office profiles apply dedicated department topology, naming\u002Ftheme presets, and isolated agent\u002Fdepartment data per pack (except DB-backed development baseline)                                  |\n| **Kanban Task Board**          | Full task lifecycle — Inbox, Planned, Collaborating, In Progress, Review, Done — with drag-and-drop                                                                                                         |\n| **CEO Chat & Directives**      | Direct communication with team leaders; `$` directives support meeting choice plus project path\u002Fcontext routing (`project_path`, `project_context`)                                                         |\n| **Multi-Provider Support**     | Claude Code, Codex CLI, Gemini CLI, OpenCode, Kimi Code, Antigravity — all from one dashboard                                                                                                               |\n| **External API Providers**     | Connect agents to external LLM APIs (OpenAI, Anthropic, Google, Ollama, OpenRouter, Together, Groq, Cerebras, custom) via Settings > API tab, with official presets for OpenCode Go and Bailian Coding Plan |\n| **OAuth Integration**          | GitHub & Google OAuth with AES-encrypted token storage in local SQLite                                                                                                                                      |\n| **Real-time WebSocket**        | Live status updates, activity feed, and agent state synchronization                                                                                                                                         |\n| **Active Agent Control**       | Active-agent monitor with process\u002Factivity\u002Fidle metadata and direct kill action for stuck tasks                                                                                                             |\n| **Task Report System**         | Completion popup, report history, team report drilldown, and planning-lead consolidated archive                                                                                                             |\n| **Agent Management**           | Hire, edit, and delete agents with multilingual names, role\u002Fdepartment\u002Fprovider selection, and personality fields                                                                                           |\n| **Agent Ranking & XP**         | Agents earn XP for completed tasks; ranking board tracks top performers                                                                                                                                     |\n| **Skills Library**             | 600+ categorized skills (Frontend, Backend, Design, AI, DevOps, Security, etc.) with custom skill upload support                                                                                            |\n| **Meeting System**             | Planned and ad-hoc meetings with AI-generated minutes and multi-round review                                                                                                                                |\n| **Git Worktree Isolation**     | Each agent works in isolated git branches, merged only on CEO approval                                                                                                                                      |\n| **Multi-Language UI**          | English, Korean, Japanese, Chinese — auto-detected or manually set                                                                                                                                          |\n| **Messenger Integration**      | Telegram, Discord, Slack and more — send `$` CEO directives and receive updates through built-in direct channel sessions (OpenClaw optional)                                                                |\n| **PowerPoint Export**          | Generate presentation slides from meeting minutes and reports                                                                                                                                               |\n| **Connectivity QA Scripts**    | Built-in `test:comm:*` scripts for CLI\u002FOAuth\u002FAPI communication validation with retry and evidence logs                                                                                                      |\n| **In-App Update Notice**       | Checks GitHub latest release and shows a top banner with OS-specific `git pull` guidance when a newer version is available                                                                                  |\n| **Department Management**      | Planning, Development, Design, QA\u002FQC, DevSecOps, Operations — with dedicated management tab for arrow\u002Fdrag-and-drop sort order editing                                                                      |\n| **Manual Agent Assignment**    | Assign specific agents to projects; meetings\u002Fdelegation respect manual selection, with pre-save safeguards for no-agent or leader-only selections                                                           |\n| **Sprite Registration Safety** | Prevents duplicate sprite-number file overwrite by rejecting conflicting uploads with explicit `409 sprite_number_exists` responses                                                                         |\n| **Custom Skill Upload**        | Upload `.md` skill files through the UI to train CLI representatives with custom skills, complete with classroom training animation and management interface                                                |\n\n---\n\n## Tech Stack\n\n| Layer                | Technology                                          |\n| -------------------- | --------------------------------------------------- |\n| **Frontend**         | React 19 + Vite 7 + Tailwind CSS 4 + TypeScript 5.9 |\n| **Pixel Art Engine** | PixiJS 8                                            |\n| **Backend**          | Express 5 + SQLite (zero-config embedded DB)        |\n| **Real-time**        | WebSocket (ws)                                      |\n| **Validation**       | Zod 4                                               |\n| **Icons**            | Lucide React                                        |\n| **Routing**          | React Router 7                                      |\n| **Export**           | PptxGenJS (PowerPoint generation)                   |\n\n\u003Ca id=\"ai-installation-guide\">\n## AI Installation Guide\n\n> This section is for AI coding agents. Execute each step and run verification commands before moving to the next step.\n\n### Step 0: Verify prerequisites\n\n```bash\n# Node.js 22+\nnode -v\n\n# pnpm (or enable corepack)\npnpm -v || corepack enable\n\n# git\ngit --version\n```\n\n### Step 1: Clone and run one-click setup\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git\ncd claw-empire\ngit submodule update --init --recursive\nbash install.sh\n```\n\nWindows PowerShell:\n\n```powershell\ngit clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git\ncd claw-empire\ngit submodule update --init --recursive\npowershell -ExecutionPolicy Bypass -File .\\install.ps1\n```\n\n### Step 2: Verify setup output\n\nmacOS\u002FLinux:\n\n```bash\n# Required files after setup\n[ -f .env ] && [ -f scripts\u002Fsetup.mjs ] && echo \"setup files ok\"\n\n# AGENTS orchestration rules installed\ngrep -R \"BEGIN claw-empire orchestration rules\" ~\u002F.openclaw\u002Fworkspace\u002FAGENTS.md AGENTS.md 2>\u002Fdev\u002Fnull || true\ngrep -R \"INBOX_SECRET_DISCOVERY_V2\" ~\u002F.openclaw\u002Fworkspace\u002FAGENTS.md AGENTS.md 2>\u002Fdev\u002Fnull || true\n\n# OpenClaw inbox requirements in .env\ngrep -E '^(INBOX_WEBHOOK_SECRET|OPENCLAW_CONFIG)=' .env || true\n```\n\nWindows PowerShell:\n\n```powershell\nif ((Test-Path .\\.env) -and (Test-Path .\\scripts\\setup.mjs)) { \"setup files ok\" }\n$agentCandidates = @(\"$env:USERPROFILE\\.openclaw\\workspace\\AGENTS.md\", \".\\AGENTS.md\")\n$agentCandidates | ForEach-Object { if (Test-Path $_) { Select-String -Path $_ -Pattern \"BEGIN claw-empire orchestration rules\" } }\n$agentCandidates | ForEach-Object { if (Test-Path $_) { Select-String -Path $_ -Pattern \"INBOX_SECRET_DISCOVERY_V2\" } }\n\n# OpenClaw inbox requirements in .env\nGet-Content .\\.env | Select-String -Pattern '^(INBOX_WEBHOOK_SECRET|OPENCLAW_CONFIG)='\n```\n\n### Step 3: Start and health-check\n\n```bash\npnpm dev:local\n```\n\nIn another terminal:\n\n```bash\ncurl -s http:\u002F\u002F127.0.0.1:8790\u002Fhealthz\n```\n\nExpected: `{\"ok\":true,...}`\n\nMessenger channels are configured in Settings UI and persisted to SQLite (`settings.messengerChannels`). `.env` messenger token\u002Fchannel variables are no longer used.\n\n### Step 4: Optional messenger + inbox verification\n\n```bash\ncurl -s http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Fmessenger\u002Fsessions\n```\n\nThis returns messenger sessions saved in Settings.\n\n```bash\ncurl -X POST http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Finbox \\\n  -H \"content-type: application\u002Fjson\" \\\n  -H \"x-inbox-secret: $INBOX_WEBHOOK_SECRET\" \\\n  -d '{\"source\":\"telegram\",\"author\":\"ceo\",\"text\":\"$README v1.1.6 inbox smoke test\",\"skipPlannedMeeting\":true}'\n```\n\nExpected:\n\n- `200` when `INBOX_WEBHOOK_SECRET` is configured and `x-inbox-secret` matches.\n- `401` when the header is missing\u002Fmismatched.\n- `503` when `INBOX_WEBHOOK_SECRET` is not configured on the server.\n\n\u003Ca id=\"direct-messenger-without-openclaw\">\u003C\u002Fa>\n\n### Step 5: Direct messenger setup (no OpenClaw required)\n\nYou can run messenger channels directly from Claw-Empire without OpenClaw.\n\n1. Open `Settings > Channel Messages`.\n2. Click `Add Chat`.\n3. Select a messenger (`telegram`, `whatsapp`, `discord`, `googlechat`, `slack`, `signal`, `imessage`).\n4. Fill in session fields:\n   - `Name` (session label)\n   - messenger token\u002Fcredential\n   - `Channel\u002FChat ID` (target)\n   - mapped conversation `Agent`\n5. Click `Confirm` to save immediately (no extra global save step required).\n6. Enable the session, then test:\n   - normal message -> direct agent chat\n   - `$ ...` -> directive flow\n\nNotes:\n\n- Messenger sessions are persisted in SQLite (`settings.messengerChannels`).\n- Messenger tokens are encrypted at rest (AES-256-GCM) using `OAUTH_ENCRYPTION_SECRET` (fallback: `SESSION_SECRET`) and decrypted only at runtime.\n- `.env` messenger variables (`TELEGRAM_BOT_TOKEN`, `DISCORD_BOT_TOKEN`, `SLACK_BOT_TOKEN`, etc.) are not used.\n- `\u002Fapi\u002Finbox` + `INBOX_WEBHOOK_SECRET` is only needed for webhook\u002Finbox flows (including OpenClaw bridge).\n\n---\n\n## Quick Start\n\n## Docker Deployment (Quick Start)\n\nThis repo now ships production-oriented Docker defaults:\n\n- Runs as **non-root** user (`app`, uid\u002Fgid `10001`)\n- Includes required CLI\u002Fruntime tools (`git`, `bash`, `openssh-client`)\n- Uses `docker-compose.yml` + `Dockerfile`\n- Persists runtime data in `.\u002Fdata` (already gitignored)\n\n### 1) Prepare environment files\n\n```bash\ncp .env.example .env.docker\n```\n\nCreate `.env.docker.private` for sensitive runtime secrets (keep this file local only):\n\n```bash\ncat > .env.docker.private \u003C\u003C'EOF'\n# Claude Code via compatible endpoint\nANTHROPIC_BASE_URL=https:\u002F\u002Fapi.minimaxi.com\u002Fanthropic\nANTHROPIC_API_KEY=YOUR_ANTHROPIC_API_KEY\nEOF\nchmod 600 .env.docker.private\n```\n\n> `.env.docker*` is ignored by git (`.env.*`), so tokens are not committed by default.\n\n### 2) Start\n\n```bash\ndocker compose up -d --build\n```\n\n### 3) Verify\n\n```bash\ndocker ps --filter name=claw-empire\ndocker logs -f claw-empire\n```\n\nOpen: `http:\u002F\u002F127.0.0.1:8790`\n\n### Optional: publish image to GHCR\n\n```bash\n# requires token with package write scope\necho \"\u003CGITHUB_TOKEN_WITH_PACKAGES_WRITE>\" | docker login ghcr.io -u \u003Cgithub-user> --password-stdin\ndocker tag claw-empire-claw-empire:latest ghcr.io\u002F\u003Cgithub-user>\u002Fclaw-empire:latest\ndocker push ghcr.io\u002F\u003Cgithub-user>\u002Fclaw-empire:latest\n```\n\n### Prerequisites\n\n| Tool        | Version | Install                                |\n| ----------- | ------- | -------------------------------------- |\n| **Node.js** | >= 22   | [nodejs.org](https:\u002F\u002Fnodejs.org\u002F)      |\n| **pnpm**    | latest  | `corepack enable` (built into Node.js) |\n| **Git**     | any     | [git-scm.com](https:\u002F\u002Fgit-scm.com\u002F)    |\n\n### One-Click Setup (Recommended)\n\n| Platform                 | Command                                                                                                                                |\n| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |\n| **macOS \u002F Linux**        | `git clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git && cd claw-empire && bash install.sh`                                    |\n| **Windows (PowerShell)** | `git clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git; cd claw-empire; powershell -ExecutionPolicy Bypass -File .\\install.ps1` |\n\nIf the repo is already cloned:\n\n| Platform                 | Command                                                                                                          |\n| ------------------------ | ---------------------------------------------------------------------------------------------------------------- |\n| **macOS \u002F Linux**        | `git submodule update --init --recursive && bash scripts\u002Fopenclaw-setup.sh`                                      |\n| **Windows (PowerShell)** | `git submodule update --init --recursive; powershell -ExecutionPolicy Bypass -File .\\scripts\\openclaw-setup.ps1` |\n\n### OpenClaw `.env` Requirements (for `\u002Fapi\u002Finbox`)\n\nSet both values in `.env` before sending chat webhooks:\n\n- `INBOX_WEBHOOK_SECRET=\u003Clong-random-secret>`\n- `OPENCLAW_CONFIG=\u003Cabsolute-path-to-openclaw.json>` (unquoted preferred)\n\n`scripts\u002Fopenclaw-setup.sh` \u002F `scripts\u002Fopenclaw-setup.ps1` now auto-generate `INBOX_WEBHOOK_SECRET` when it is missing.\nInitial install via `bash install.sh` \u002F `install.ps1` already goes through these setup scripts, so this is applied from day one.\nFor existing clones that only run `git pull`, `pnpm dev*` \u002F `pnpm start*` now auto-apply this once when needed and then persist `CLAW_MIGRATION_V1_0_5_DONE=1` to prevent repeated execution.\n\n`\u002Fapi\u002Finbox` requires server-side `INBOX_WEBHOOK_SECRET` plus an `x-inbox-secret` header that exactly matches it.\n\n- Missing\u002Fmismatched header -> `401`\n- Missing server config (`INBOX_WEBHOOK_SECRET`) -> `503`\n\n### Manual Setup (Fallback)\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>macOS \u002F Linux\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\n# 1. Clone the repository\ngit clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git\ncd claw-empire\n\n# 2. Enable pnpm via corepack\ncorepack enable\n\n# 3. Install dependencies\npnpm install\n\n# 4. Create your local environment file\ncp .env.example .env\n\n# 5. Generate a random encryption secret\nnode -e \"\n  const fs = require('fs');\n  const crypto = require('crypto');\n  const p = '.env';\n  const content = fs.readFileSync(p, 'utf8');\n  fs.writeFileSync(p, content.replace('__CHANGE_ME__', crypto.randomBytes(32).toString('hex')));\n\"\n\n# 6. Setup AGENTS.md orchestration rules (teaches your AI agent to be a Claw-Empire project manager)\npnpm setup -- --port 8790\n\n# 7. Start the development server\npnpm dev:local\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Windows (PowerShell)\u003C\u002Fb>\u003C\u002Fsummary>\n\n```powershell\n# 1. Clone the repository\ngit clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git\ncd claw-empire\n\n# 2. Enable pnpm via corepack\ncorepack enable\n\n# 3. Install dependencies\npnpm install\n\n# 4. Create your local environment file\nCopy-Item .env.example .env\n\n# 5. Generate a random encryption secret\nnode -e \"const fs=require('fs');const crypto=require('crypto');const p='.env';const c=fs.readFileSync(p,'utf8');fs.writeFileSync(p,c.replace('__CHANGE_ME__',crypto.randomBytes(32).toString('hex')))\"\n\n# 6. Setup AGENTS.md orchestration rules (teaches your AI agent to be a Claw-Empire project manager)\npnpm setup -- --port 8790\n\n# 7. Start the development server\npnpm dev:local\n```\n\n\u003C\u002Fdetails>\n\nOpen your browser:\n\n| URL                             | Description                |\n| ------------------------------- | -------------------------- |\n| `http:\u002F\u002F127.0.0.1:8800`         | Frontend (Vite dev server) |\n| `http:\u002F\u002F127.0.0.1:8790\u002Fhealthz` | API health check           |\n\n### AGENTS.md Setup\n\nThe `pnpm setup` command injects **CEO directive orchestration rules** into your AI agent's `AGENTS.md` file. This teaches your AI coding agent (Claude Code, Codex, etc.) how to:\n\n- Interpret `$` prefix **CEO directives** for priority task delegation\n- Call the Claw-Empire REST API to create tasks, assign agents, and report status\n- Work within isolated git worktrees for safe parallel development\n\n```bash\n# Default: auto-detects AGENTS.md location\npnpm setup\n\n# Custom path\npnpm setup -- --agents-path \u002Fpath\u002Fto\u002Fyour\u002FAGENTS.md\n\n# Custom port\npnpm setup -- --port 8790\n```\n\n\u003Ca id=\"openclaw-integration\">\u003C\u002Fa>\n\n### OpenClaw Integration Setup (Telegram\u002FWhatsApp\u002FDiscord\u002FGoogle Chat\u002FSlack\u002FSignal\u002FiMessage)\n\n`install.sh` \u002F `install.ps1` (or `scripts\u002Fopenclaw-setup.*`) will auto-detect and write `OPENCLAW_CONFIG` when possible.\n\nRecommended `.env` format: absolute path for `OPENCLAW_CONFIG` (unquoted preferred).\n`v1.0.5` also normalizes surrounding quotes and leading `~` at runtime for compatibility.\n\nDefault config paths:\n\n| OS                | Path                                    |\n| ----------------- | --------------------------------------- |\n| **macOS \u002F Linux** | `~\u002F.openclaw\u002Fopenclaw.json`             |\n| **Windows**       | `%USERPROFILE%\\.openclaw\\openclaw.json` |\n\nManual commands:\n\n```bash\n# macOS \u002F Linux\nbash scripts\u002Fopenclaw-setup.sh --openclaw-config ~\u002F.openclaw\u002Fopenclaw.json\n```\n\n```powershell\n# Windows PowerShell\npowershell -ExecutionPolicy Bypass -File .\\scripts\\openclaw-setup.ps1 -OpenClawConfig \"$env:USERPROFILE\\.openclaw\\openclaw.json\"\n```\n\nVerify messenger sessions:\n\n```bash\ncurl -s http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Fgateway\u002Ftargets\n```\n\n\u003Ca id=\"dollar-command-logic\">\u003C\u002Fa>\n\n### `$` Command -> OpenClaw Chat Delegation Logic\n\nWhen a chat message starts with `$`, Claw-Empire handles it as a CEO directive:\n\n1. Orchestrator asks whether to hold a team-leader meeting first.\n2. Orchestrator asks for project path\u002Fcontext (`project_path` or `project_context`).\n3. It sends the directive to `POST \u002Fapi\u002Finbox` with the `$` prefix and `x-inbox-secret` header.\n4. If meeting is skipped, include `\"skipPlannedMeeting\": true`.\n5. Server stores it as `directive`, broadcasts company-wide, then delegates to Planning (and mentioned departments when included).\n\nIf `x-inbox-secret` is missing\u002Fmismatched, the request is rejected with `401`.\nIf `INBOX_WEBHOOK_SECRET` is not configured on the server, the request is rejected with `503`.\n\nWith meeting:\n\n```bash\ncurl -X POST http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Finbox \\\n  -H \"content-type: application\u002Fjson\" \\\n  -H \"x-inbox-secret: $INBOX_WEBHOOK_SECRET\" \\\n  -d '{\"source\":\"telegram\",\"author\":\"ceo\",\"text\":\"$Release v0.2 by Friday with QA sign-off\",\"project_path\":\"\u002Fworkspace\u002Fmy-project\"}'\n```\n\nWithout meeting:\n\n```bash\ncurl -X POST http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Finbox \\\n  -H \"content-type: application\u002Fjson\" \\\n  -H \"x-inbox-secret: $INBOX_WEBHOOK_SECRET\" \\\n  -d '{\"source\":\"telegram\",\"author\":\"ceo\",\"text\":\"$Hotfix production login bug immediately\",\"skipPlannedMeeting\":true,\"project_context\":\"existing climpire project\"}'\n```\n\n---\n\n## Environment Variables\n\nCopy `.env.example` to `.env`. All secrets stay local — never commit `.env`.\n\n| Variable                               | Required                 | Description                                                                                                                                  |\n| -------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| `OAUTH_ENCRYPTION_SECRET`              | **Yes**                  | Encrypts OAuth tokens and messenger channel tokens in SQLite (AES-256-GCM)                                                                   |\n| `SESSION_SECRET`                       | Fallback                 | Legacy fallback key used only when `OAUTH_ENCRYPTION_SECRET` is not set                                                                      |\n| `PORT`                                 | No                       | Server port (default: `8790`)                                                                                                                |\n| `HOST`                                 | No                       | Bind address (default: `127.0.0.1`)                                                                                                          |\n| `API_AUTH_TOKEN`                       | Recommended              | Bearer token for non-loopback API\u002FWebSocket access                                                                                           |\n| `INBOX_WEBHOOK_SECRET`                 | **Yes for `\u002Fapi\u002Finbox`** | Shared secret required in `x-inbox-secret` header                                                                                            |\n| `OPENCLAW_CONFIG`                      | Recommended for OpenClaw | Absolute path to `openclaw.json` used for gateway target discovery\u002Fchat relay                                                                |\n| `DB_PATH`                              | No                       | SQLite database path (default: `.\u002Fclaw-empire.sqlite`)                                                                                       |\n| `LOGS_DIR`                             | No                       | Log directory (default: `.\u002Flogs`)                                                                                                            |\n| `OAUTH_GITHUB_CLIENT_ID`               | No                       | GitHub OAuth App client ID                                                                                                                   |\n| `OAUTH_GITHUB_CLIENT_SECRET`           | No                       | GitHub OAuth App client secret                                                                                                               |\n| `OAUTH_GOOGLE_CLIENT_ID`               | No                       | Google OAuth client ID                                                                                                                       |\n| `OAUTH_GOOGLE_CLIENT_SECRET`           | No                       | Google OAuth client secret                                                                                                                   |\n| `OPENAI_API_KEY`                       | No                       | OpenAI API key (for Codex)                                                                                                                   |\n| `REVIEW_MEETING_ONESHOT_TIMEOUT_MS`    | No                       | One-shot meeting timeout in milliseconds (default `65000`; backward-compatible: values `\u003C= 600` are treated as seconds)                      |\n| `UPDATE_CHECK_ENABLED`                 | No                       | Enable in-app update check banner (`1` default, set `0` to disable)                                                                          |\n| `UPDATE_CHECK_REPO`                    | No                       | GitHub repo slug used for update checks (default: `GreenSheep01201\u002Fclaw-empire`)                                                             |\n| `UPDATE_CHECK_TTL_MS`                  | No                       | Update-check cache TTL in milliseconds (default: `1800000`)                                                                                  |\n| `UPDATE_CHECK_TIMEOUT_MS`              | No                       | GitHub request timeout in milliseconds (default: `4000`)                                                                                     |\n| `AUTO_UPDATE_ENABLED`                  | No                       | Default auto-update value when `settings.autoUpdateEnabled` is missing (`0` default)                                                         |\n| `AUTO_UPDATE_CHANNEL`                  | No                       | Allowed update channel: `patch` (default), `minor`, `all`                                                                                    |\n| `AUTO_UPDATE_IDLE_ONLY`                | No                       | Apply only when no `in_progress` tasks\u002Factive CLI processes (`1` default)                                                                    |\n| `AUTO_UPDATE_CHECK_INTERVAL_MS`        | No                       | Auto-update check interval in milliseconds (default follows `UPDATE_CHECK_TTL_MS`)                                                           |\n| `AUTO_UPDATE_INITIAL_DELAY_MS`         | No                       | Delay before first auto-update check after startup (default `60000`, min `60000`)                                                            |\n| `AUTO_UPDATE_TARGET_BRANCH`            | No                       | Branch name used for branch guard and `git fetch\u002Fpull` target (default `main`)                                                               |\n| `AUTO_UPDATE_GIT_FETCH_TIMEOUT_MS`     | No                       | Timeout for `git fetch` during update apply (default `120000`)                                                                               |\n| `AUTO_UPDATE_GIT_PULL_TIMEOUT_MS`      | No                       | Timeout for `git pull --ff-only` during update apply (default `180000`)                                                                      |\n| `AUTO_UPDATE_INSTALL_TIMEOUT_MS`       | No                       | Timeout for `pnpm install --frozen-lockfile` during update apply (default `300000`)                                                          |\n| `AUTO_UPDATE_COMMAND_OUTPUT_MAX_CHARS` | No                       | Max in-memory capture size per stdout\u002Fstderr stream before tail-trimming (default `200000`)                                                  |\n| `AUTO_UPDATE_TOTAL_TIMEOUT_MS`         | No                       | Global timeout cap for one apply run (default `900000`)                                                                                      |\n| `AUTO_UPDATE_RESTART_MODE`             | No                       | Restart policy after auto-apply: `notify` (default), `exit`, `command`                                                                       |\n| `AUTO_UPDATE_EXIT_DELAY_MS`            | No                       | Delay before process exit in `exit` mode (default `10000`, min `1200`)                                                                       |\n| `AUTO_UPDATE_RESTART_COMMAND`          | No                       | Executable + args used when restart mode is `command` (shell metacharacters + direct shell launchers rejected; runs with server permissions) |\n\nWhen `API_AUTH_TOKEN` is enabled, remote browser clients enter it at runtime. The token is stored only in `sessionStorage` and is not embedded in Vite build artifacts.\nFor `OPENCLAW_CONFIG`, absolute path is recommended. In `v1.0.5`, quoted values and leading `~` are normalized automatically.\n\n---\n\n## Run Modes\n\n```bash\n# Development (local-only, recommended)\npnpm dev:local          # binds to 127.0.0.1\n\n# Development (network-accessible)\npnpm dev                # binds to 0.0.0.0\n\n# Production build\npnpm build              # TypeScript check + Vite build\npnpm start              # start API\u002Fbackend server (serves dist in production mode)\n\n# Health check\ncurl -fsS http:\u002F\u002F127.0.0.1:8790\u002Fhealthz\n```\n\n### CI Verification (Current PR Pipeline)\n\nOn every pull request, `.github\u002Fworkflows\u002Fci.yml` runs:\n\n1. Hidden\u002Fbidi Unicode guard for workflow files\n2. `pnpm install --frozen-lockfile`\n3. `pnpm run format:check`\n4. `pnpm run lint`\n5. `pnpm exec playwright install --with-deps`\n6. `pnpm run test:ci` (`test:web --coverage` + `test:api --coverage` + `test:e2e`)\n\nNote: `pnpm run test:e2e` now boots an isolated `.tmp\u002Fe2e-runtime` database and clears it again after the run. Set `PW_REUSE_EXISTING_SERVER=1` only when you intentionally want to reuse an already-running local server on `8810`.\n\nRecommended local pre-PR check:\n\n```bash\npnpm run format:check\npnpm run lint\npnpm run build\npnpm run test:ci\n```\n\n### Communication QA Checks (v1.1.6)\n\n```bash\n# Individual checks\npnpm run test:comm:llm\npnpm run test:comm:oauth\npnpm run test:comm:api\n\n# Integrated suite (also available via legacy entrypoint)\npnpm run test:comm:suite\npnpm run test:comm-status\n```\n\n`test:comm:suite` writes machine-readable evidence to `logs\u002F` and a markdown report to `docs\u002F`.\n\n### Project Path QA Smoke (v1.1.6)\n\n```bash\n# Requires API auth token\nQA_API_AUTH_TOKEN=\"\u003CAPI_AUTH_TOKEN>\" pnpm run test:qa:project-path\n```\n\n`test:qa:project-path` validates path helper endpoints, project create flow, duplicate `project_path` conflict response, and cleanup behavior.\n\n### In-App Update Banner\n\nWhen a newer release is published on GitHub, Claw-Empire shows a top banner in the UI with pull instructions and a release-note link.\n\n- Windows PowerShell: `git pull; pnpm install`\n- macOS\u002FLinux shell: `git pull && pnpm install`\n- After pull\u002Finstall, restart the server.\n\n### Auto Update (Safe Mode, opt-in)\n\nYou can enable conservative auto-update behavior for release sync.\n\n- `GET \u002Fapi\u002Fupdate-auto-status` — current auto-update runtime\u002Fconfig state (**auth required**)\n- `POST \u002Fapi\u002Fupdate-auto-config` — update runtime auto-update toggle (`enabled`) without restart (**auth required**)\n- `POST \u002Fapi\u002Fupdate-apply` — apply update pipeline on demand (`dry_run` \u002F `force` \u002F `force_confirm` supported, **auth required**)\n  - `force=true` bypasses most safety guards and therefore requires `force_confirm=true`\n  - `dirty_worktree` and `channel_check_unavailable` guards are non-overridable (still block apply)\n  - Restart mode (`notify|exit|command`) is applied for both auto and manual update runs\n  - In `notify` mode, successful apply includes `manual_restart_required` reason\n\nDefault behavior remains unchanged (**OFF**). When enabled, safe-mode guards skip updates if the server is busy or the repository is not in a clean fast-forward state.\nIf `AUTO_UPDATE_CHANNEL` has an invalid value, the server logs a warning and falls back to `patch`.\n\n#### Troubleshooting: `git_pull_failed` \u002F diverged local branch\n\nIf an apply result returns `error: \"git_pull_failed\"` (or `git_fetch_failed`) with `manual_recovery_may_be_required` in `result.reasons`, the repository likely needs operator intervention.\n\n1. Inspect the latest apply result via `GET \u002Fapi\u002Fupdate-auto-status` (`runtime.last_result`, `runtime.last_error`).\n2. In the server repo, check divergence:\n   - `git fetch origin main`\n   - `git status`\n   - `git log --oneline --decorate --graph --max-count 20 --all`\n3. Resolve to a clean fast-forwardable state (for example, rebase local commits or reset to `origin\u002Fmain` based on your policy).\n4. Re-run `POST \u002Fapi\u002Fupdate-apply` (optionally `{\"dry_run\": true}` first).\n\nThe auto-update loop keeps running on its configured interval and will retry on future cycles after the repository returns to a safe state.\n\n⚠️ `AUTO_UPDATE_RESTART_COMMAND` runs with server permissions and is a privileged operation.\nThe command parser rejects shell metacharacters (`;`, `|`, `&`, `` ` ``, `$`, `\u003C`, `>`) and blocks direct shell launchers (for example `sh`, `bash`, `zsh`, `cmd`, `powershell`, `pwsh`).\nUse only a plain executable + fixed args format (no shell\u002Finterpreter wrappers, no dynamically constructed input).\n\n---\n\n\u003Ca id=\"cli-provider-setup\">\u003C\u002Fa>\n\n## Provider Setup (CLI \u002F OAuth \u002F API)\n\n### Official API presets\n\nThe **Settings > API** tab now includes four official direct-API presets:\n\n- `OpenCode Go (OpenAI)` -> `https:\u002F\u002Fopencode.ai\u002Fzen\u002Fgo\u002Fv1`\n- `OpenCode Go (Anthropic)` -> `https:\u002F\u002Fopencode.ai\u002Fzen\u002Fgo\u002Fv1`\n- `Bailian Coding Plan (OpenAI)` -> `https:\u002F\u002Fcoding-intl.dashscope.aliyuncs.com\u002Fv1`\n- `Bailian Coding Plan (Anthropic)` -> `https:\u002F\u002Fcoding-intl.dashscope.aliyuncs.com\u002Fapps\u002Fanthropic`\n\nNotes:\n\n- Bailian Coding Plan API keys must start with `sk-sp-`.\n- These presets seed fallback model lists immediately so agents can be assigned even when live `\u002Fmodels` discovery is unavailable or incomplete.\n- The assignment modal uses `development` as the default baseline and also includes office packs that have already completed initial setup and been hydrated into runtime state.\n- Direct API presets use the provider endpoint model IDs such as `glm-5`, `kimi-k2.5`, and `minimax-m2.5`. They do **not** use OpenCode CLI model IDs like `opencode-go\u002F\u003Cmodel-id>`.\n- Bailian Coding Plan keys are intended for the interactive coding tool flow. Review the provider documentation before reusing those keys in other environments.\n\nClaw-Empire supports three provider paths:\n\n- **CLI tools** — install local coding CLIs and run tasks through local processes\n- **OAuth accounts** — connect supported providers (for example GitHub\u002FGoogle-backed flows) via secure token exchange\n- **Direct API keys** — bind agents to external LLM APIs from **Settings > API**\n\nFor CLI mode, install at least one:\n\n| Provider                                                      | Install                                  | Auth                           |\n| ------------------------------------------------------------- | ---------------------------------------- | ------------------------------ |\n| [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code) | `npm i -g @anthropic-ai\u002Fclaude-code`     | `claude` (follow prompts)      |\n| [Codex CLI](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex)                  | `npm i -g @openai\u002Fcodex`                 | Set `OPENAI_API_KEY` in `.env` |\n| [Gemini CLI](https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli)     | `npm i -g @google\u002Fgemini-cli`            | OAuth via Settings panel       |\n| [OpenCode](https:\u002F\u002Fgithub.com\u002Fopencode-ai\u002Fopencode)           | `npm i -g opencode`                      | Provider-specific              |\n| [Kimi Code](https:\u002F\u002Fgithub.com\u002FMoonshotAI\u002Fkimi-cli)           | `uv tool install --python 3.13 kimi-cli` | `kimi auth login`              |\n\nConfigure providers and models in the **Settings > CLI Tools** panel within the app.\n\nAlternatively, connect agents to external LLM APIs (no CLI installation required) via the **Settings > API** tab. API keys are stored encrypted (AES-256-GCM) in the local SQLite database — not in `.env` or source code.\nSkills learn\u002Funlearn automation is currently designed for CLI-capable providers.\n\n---\n\n## Project Structure\n\n```\nclaw-empire\u002F\n├── .github\u002F\n│   └── workflows\u002F\n│       └── ci.yml             # PR CI (Unicode guard, format, lint, tests)\n├── server\u002F\n│   ├── index.ts              # backend entrypoint\n│   ├── server-main.ts        # runtime wiring\u002Fbootstrap\n│   ├── modules\u002F              # routes\u002Fworkflow\u002Fbootstrap lifecycle\n│   ├── test\u002F                 # backend test setup\u002Fhelpers\n│   └── vitest.config.ts      # backend unit test config\n├── src\u002F\n│   ├── app\u002F                  # app shell, layout, state orchestration\n│   ├── api\u002F                  # frontend API modules\n│   ├── components\u002F           # UI (office\u002Ftaskboard\u002Fchat\u002Fsettings)\n│   ├── hooks\u002F                # polling\u002Fwebsocket hooks\n│   ├── test\u002F                 # frontend test setup\n│   ├── types\u002F                # frontend type definitions\n│   ├── App.tsx\n│   ├── api.ts\n│   └── i18n.ts\n├── tests\u002F\n│   └── e2e\u002F                  # Playwright E2E scenarios\n├── public\u002Fsprites\u002F           # pixel-art agent sprites\n├── scripts\u002F\n│   ├── setup.mjs             # environment\u002Fbootstrap setup\n│   ├── auto-apply-v1.0.5.mjs # startup migration helper\n│   ├── openclaw-setup.sh     # one-click setup (macOS\u002FLinux)\n│   ├── openclaw-setup.ps1    # one-click setup (Windows PowerShell)\n│   ├── prepare-e2e-runtime.mjs\n│   ├── preflight-public.sh   # pre-release security checks\n│   └── generate-architecture-report.mjs\n├── install.sh                # wrapper for scripts\u002Fopenclaw-setup.sh\n├── install.ps1               # wrapper for scripts\u002Fopenclaw-setup.ps1\n├── docs\u002F                     # design & architecture docs\n├── AGENTS.md                 # local agent\u002Forchestration rules\n├── CONTRIBUTING.md           # branch\u002FPR\u002Freview policy\n├── eslint.config.mjs         # flat ESLint config\n├── .env.example              # environment variable template\n└── package.json\n```\n\n---\n\n## Security\n\nClaw-Empire is designed with security in mind:\n\n- **Local-first architecture** — All data stored locally in SQLite; no external cloud services required\n- **Encrypted OAuth + messenger tokens** — User-specific OAuth tokens and direct messenger channel tokens are stored **server-side only** in SQLite, encrypted at rest using AES-256-GCM with `OAUTH_ENCRYPTION_SECRET` (`SESSION_SECRET` fallback). The browser never receives refresh tokens\n- **Built-in OAuth Client IDs** — The GitHub and Google OAuth client IDs\u002Fsecrets embedded in the source code are **public OAuth app credentials**, not user secrets. Per [Google's documentation](https:\u002F\u002Fdevelopers.google.com\u002Fidentity\u002Fprotocols\u002Foauth2\u002Fnative-app), client secrets for installed\u002Fdesktop apps are \"not treated as a secret.\" This is standard practice for open-source apps (VS Code, Thunderbird, GitHub CLI, etc.). These credentials only identify the app itself — your personal tokens are always encrypted separately\n- **No personal credentials in source** — All user-specific tokens (GitHub, Google OAuth) are stored encrypted in the local SQLite database, never in source code\n- **No secrets in repo** — Comprehensive `.gitignore` blocks `.env`, `*.pem`, `*.key`, `credentials.json`, etc.\n- **Preflight security checks** — Run `pnpm run preflight:public` before any public release to scan for leaked secrets in both working tree and git history\n- **Localhost by default** — Development server binds to `127.0.0.1`, not exposed to network\n\n## API Docs & Security Quick Links\n\n- **API documentation** — Use [`docs\u002Fapi.md`](docs\u002Fapi.md) for endpoint overview and usage notes, and [`docs\u002Fopenapi.json`](docs\u002Fopenapi.json) for schema\u002Ftooling integration.\n- **Security policy** — Review disclosure and policy details in [`SECURITY.md`](SECURITY.md), and run `pnpm run preflight:public` before public releases.\n\n---\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch from `dev` (`git checkout -b feature\u002Famazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Run local checks before PR:\n   - `pnpm run format:check`\n   - `pnpm run lint`\n   - `pnpm run build`\n   - `pnpm run test:ci`\n5. Push your branch (`git push origin feature\u002Famazing-feature`)\n6. Open a Pull Request to `dev` (default integration branch for contributors)\n7. Use `main` only for maintainer-approved emergency hotfixes, then back-merge `main -> dev`\n\nFull policy: [`CONTRIBUTING.md`](CONTRIBUTING.md)\n\n---\n\n## License\n\n[Apache 2.0](LICENSE) — Free for personal and commercial use.\n\n---\n\n\u003Cdiv align=\"center\">\n\n**Built with pixels and passion.**\n\n_Claw-Empire — Where AI agents come to work._\n\n\u003C\u002Fdiv>\n","\u003Cp align=\"center\">\n  \u003Cimg src=\"public\u002Fclaw-empire.svg\" width=\"80\" alt=\"Claw-Empire\" \u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">Claw-Empire\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>从CEO的办公桌指挥你的AI智能体帝国\u003C\u002Fstrong>\u003Cbr>\n  这是一款本地优先的AI智能体办公模拟器，能够协调\u003Cb>命令行工具\u003C\u002Fb>、\u003Cb>OAuth授权\u003C\u002Fb>以及\u003Cb>API对接\u003C\u002Fb>的服务提供商（包括\u003Cb>Claude Code\u003C\u002Fb>、\u003Cb>Codex CLI\u003C\u002Fb>、\u003Cb>Gemini CLI\u003C\u002Fb>、\u003Cb>OpenCode\u003C\u002Fb>、\u003Cb>Kimi Code\u003C\u002Fb>、\u003Cb>GitHub Copilot\u003C\u002Fb>和\u003Cb>Antigravity\u003C\u002Fb>），将其组织成一个由自主智能体组成的虚拟公司。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-2.0.4-blue\" alt=\"版本\" \u002F>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main\" alt=\"CI\" \u002F>\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fnode-%3E%3D22-brightgreen\" alt=\"Node.js 22+\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-orange\" alt=\"许可证\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey\" alt=\"平台\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAI-Claude%20%7C%20Codex%20%7C%20Gemini%20%7C%20OpenCode%20%7C%20Kimi%20%7C%20Copilot%20%7C%20Antigravity-purple\" alt=\"AI智能体\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#quick-start\">快速开始\u003C\u002Fa> &middot;\n  \u003Ca href=\"#ai-installation-guide\">AI安装指南\u003C\u002Fa> &middot;\n  \u003Ca href=\"docs\u002Freleases\u002Fv2.0.4.md\">发布说明\u003C\u002Fa> &middot;\n  \u003Ca href=\"#openclaw-integration\">OpenClaw集成\u003C\u002Fa> &middot;\n  \u003Ca href=\"#direct-messenger-without-openclaw\">无需OpenClaw的直接消息\u003C\u002Fa> &middot;\n  \u003Ca href=\"#dollar-command-logic\">$命令逻辑\u003C\u002Fa> &middot;\n  \u003Ca href=\"#features\">功能特性\u003C\u002Fa> &middot;\n  \u003Ca href=\"#screenshots\">截图\u003C\u002Fa> &middot;\n  \u003Ca href=\"#tech-stack\">技术栈\u003C\u002Fa> &middot;\n  \u003Ca href=\"#cli-provider-setup\">CLI服务提供商设置\u003C\u002Fa> &middot;\n  \u003Ca href=\"#docker-deployment-quick-start\">Docker部署快速入门\u003C\u002Fa> &middot;\n  \u003Ca href=\"#security\">安全性\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cb>English\u003C\u002Fb> | \u003Ca href=\"README_ko.md\">한국어\u003C\u002Fa> | \u003Ca href=\"README_jp.md\">日本語\u003C\u002Fa> | \u003Ca href=\"README_zh.md\">中文\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_04a40aeb47d9.png\" alt=\"办公室视图\" width=\"100%\" \u002F>\n\u003C\u002Fp>\n\n---\n\n## 什么是Claw-Empire？\n\nClaw-Empire可以将你通过**命令行工具**、**OAuth授权**或**直接API密钥**连接的AI编码助手，转化为一个完全模拟的**虚拟软件公司**。你就是CEO，而你的AI智能体则是员工。你可以观察它们跨部门协作、召开会议、完成任务并不断提升——所有这些都通过一个充满魅力的像素风办公室界面呈现出来。\n\n### 为什么选择Claw-Empire？\n\n- **一个界面，管理多个AI智能体** — 从单一仪表板管理CLI、OAuth和基于API的智能体\n- **本地优先且私密** — 所有数据都保存在你的设备上。使用SQLite数据库，无需依赖云端\n- **可视化且直观** — 像素风格的办公室视图让AI编排变得有趣且透明\n- **真正的自主协作** — 智能体在隔离的Git工作树中工作，参加会议，并产出成果\n\n---\n\n## 使用AI进行安装\n\n> **只需将以下内容粘贴到你的AI编码助手（Claude Code、Codex、Gemini CLI等）中：**\n>\n> ```\n> 按照以下指南安装Claw-Empire：\n> https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\n> ```\n>\n> AI会自动读取本README文件并完成所有操作。\n\n---\n\n## 最新版本（v2.0.4）\n\n- **Docker部署现已成为官方文档的一部分** - 仓库现在提供了面向生产环境的`Dockerfile`、`docker-compose.yml`、`.dockerignore`，以及针对容器感知的运行时路径处理。\n- **中断运行后，过时的“工作中”智能体可自动恢复** - 生命周期启动和间隔扫描现在会重置那些仍标记为“工作中”但没有正在进行的任务的智能体。\n- **设置 > API现支持官方的直接API预设** - OpenCode Go和Bailian Coding Plan预设会锁定预期的Base URL，立即填充默认模型，并明确刷新和重试行为。\n- **Kimi Code现已全面支持** - Kimi通过CLI执行、提供商标识、技能学习\u002F遗忘流程、提示与技能渲染、视频预生产引导以及提供者感知的模式和运行时检查等方式被集成进来。\n- **API模型分配现从开发包开始，并扩展到已初始化的办公包** - `development`仍然是默认基线，而那些已在初始设置中被填充过的办公包也会作为分配目标出现。\n- **本地端到端验证更安全、更整洁** - `pnpm run test:e2e`现在会在Playwright运行前后重置隔离的运行环境，现有的`8810`服务器除非你明确选择，否则不会再被重复使用。\n\n- 完整说明：[`docs\u002Freleases\u002Fv2.0.4.md`](docs\u002Freleases\u002Fv2.0.4.md)\n- API文档：[`docs\u002Fapi.md`](docs\u002Fapi.md)、[`docs\u002Fopenapi.json`](docs\u002Fopenapi.json)\n- 安全策略：[`SECURITY.md`](SECURITY.md)\n\n## 办公包配置文件（v2.0.1）\n\n每个办公包应用不同的协作拓扑结构、命名种子和工作流偏向。\n\n| 包名                          | 核心关注点                                                     | 代表性结构                                         |\n| ----------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------- |\n| `development` (`DEV`)         | 默认工程基线，具有向后兼容性                                   | 规划 \u002F 开发 \u002F 设计 \u002F 质量保证 \u002F DevSecOps \u002F 运维   |\n| `report` (`RPT`)              | 结构化报告和文档制作                                           | 编辑策划、研究引擎、文档设计、审核台               |\n| `web_research_report` (`WEB`) | 来源收集和以引用为基础的事实验证                               | 研究策略、爬虫团队、事实核查                       |\n| `novel` (`NOV`)               | 世界构建、叙事流程和基调一致性                                 | 世界构建、叙事引擎、角色艺术、基调质量控制        |\n| `video_preprod` (`VID`)       | 概念\u002F剧本\u002F镜头列表\u002F剪辑笔记的前期制作                           | 前期制作、场景引擎、美术与摄影、剪辑质量控制       |\n| `roleplay` (`RPG`)            | 角色对话沉浸感和角色一致性                                     | 角色策划、对话引擎、舞台美术、角色质量控制         |\n\n## 截图\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**仪表盘** — 实时 KPI 指标、客服人员排名以及部门状态一目了然\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_da90aa3b0351.png\" alt=\"仪表盘\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**看板** — 支持拖拽的任务管理，并可按部门和客服人员筛选\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_0fa42daed893.png\" alt=\"看板\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**技能库** — 浏览并分配跨类别的 600 多项客服技能\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_647ca3f5527f.png\" alt=\"技能库\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**多提供商 CLI** — 配置 Claude Code、Codex、Gemini CLI、OpenCode 和 Kimi Code，并选择模型\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_d6cf468b1b2a.png\" alt=\"CLI 工具设置\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**OAuth 集成** — 使用加密令牌存储实现 GitHub 和 Google OAuth 的安全集成\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_9655085aa13c.png\" alt=\"OAuth 设置\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**会议纪要** — 由 AI 生成的会议摘要，支持多轮审核批准\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_deb6692832d9.png\" alt=\"会议纪要\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**消息平台集成** — 配置 Telegram、WhatsApp、Discord、Google Chat、Slack、Signal、iMessage 会话，并发送 `$` CEO 指令\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_09eed586c139.png\" alt=\"Telegram 集成\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**设置** — 配置公司名称、CEO 姓名、默认提供商偏好（CLI\u002FOAuth\u002FAPI）以及语言偏好\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_94e30eb865c0.png\" alt=\"设置\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**详细报告** — 完成报告弹出窗口示例、报告历史记录以及某请求的详细报告视图\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_059f8f718061.png\" alt=\"详细报告\" width=\"100%\" \u002F>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**PPT 生成** — 报告请求的 PPT 生成输出示例截图\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_d8623c18df7a.png\" alt=\"PPT 生成示例 0\" width=\"49%\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_readme_71243d531af7.png\" alt=\"PPT 生成示例 1\" width=\"49%\" \u002F>\n\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### 视频输出示例\n\n预览示例片头视频输出：\n\n\u003Cp align=\"center\">\n  \u003Cvideo src=\"Sample_Img\u002Fclaw-empire-intro.mp4\" controls muted playsinline width=\"100%\">\u003C\u002Fvideo>\n\u003C\u002Fp>\n\n- 直接文件：[`Sample_Img\u002Fclaw-empire-intro.mp4`](Sample_Img\u002Fclaw-empire-intro.mp4)\n\n### PPT 示例素材\n\n在审查或扩展报告转 PPT 功能时，请使用以下示例素材：\n使用路径：**聊天窗口 > 报告请求按钮**，然后输入您的请求。\n\n- 文件夹：[`docs\u002Freports\u002FSample_Slides`](docs\u002Freports\u002FSample_Slides)\n- 示例演示文稿（`.pptx`）：[`docs\u002Freports\u002FPPT_Sample.pptx`](docs\u002Freports\u002FPPT_Sample.pptx)\n- HTML 幻灯片：[`slide-01.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-01.html)、[`slide-02.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-02.html)、[`slide-03.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-03.html)、[`slide-04.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-04.html)、[`slide-05.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-05.html)、[`slide-06.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-06.html)、[`slide-07.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-07.html)、[`slide-08.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-08.html)、[`slide-09.html`](docs\u002Freports\u002FSample_Slides\u002Fslide-09.html)\n- 构建脚本：[`build-pptx.mjs`](docs\u002Freports\u002FSample_Slides\u002Fbuild-pptx.mjs)、[`build-pptx.cjs`](docs\u002Freports\u002FSample_Slides\u002Fbuild-pptx.cjs)、[`html2pptx.cjs`](docs\u002Freports\u002FSample_Slides\u002Fhtml2pptx.cjs)\n\n---\n\n## 功能特性\n\n| 功能                        | 描述                                                                                                                                                                                                 |\n| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **像素风办公室**           | 带有动画的办公室场景，员工在6个部门内走动、工作并参加会议                                                                                                                              |\n| **工作流包配置文件**     | 六个内置的工作流包（`开发`、`报告`、`网络调研报告`、`小说创作`、`视频预制作`、`角色扮演`）提供特定于各包的路由规则、质量保证规范和输出模板                     |\n| **办公室包配置文件**       | 每个包范围内的办公室配置会应用专属的部门拓扑结构、命名\u002F主题预设，并为每个包隔离代理和部门数据（数据库支持的开发基线除外）                                  |\n| **看板任务板**          | 完整的任务生命周期——收件箱、计划中、协作中、进行中、评审中、已完成——支持拖放操作                                                                                                         |\n| **CEO聊天与指令**      | 与团队负责人直接沟通；`$`指令支持会议选择以及项目路径\u002F上下文路由（`project_path`、`project_context`）                                                         |\n| **多模型支持**     | Claude Code、Codex CLI、Gemini CLI、OpenCode、Kimi Code、Antigravity——所有模型均可通过一个仪表盘调用                                                                                                               |\n| **外部API提供商**     | 通过设置 > API选项卡，将代理连接到外部LLM API（OpenAI、Anthropic、Google、Ollama、OpenRouter、Together、Groq、Cerebras、自定义），并提供OpenCode Go和Bailian Coding Plan的官方预设 |\n| **OAuth集成**          | GitHub与Google OAuth，使用AES加密存储令牌于本地SQLite数据库中                                                                                                                                      |\n| **实时WebSocket**        | 实时状态更新、活动动态流以及代理状态同步                                                                                                                                         |\n| **活跃代理控制**       | 活跃代理监控器，显示进程\u002F活动\u002F空闲元数据，并可对卡住的任务直接终止                                                                                                                             |\n| **任务报告系统**         | 完成弹窗、报告历史记录、团队报告下钻查看以及由规划负责人汇总的归档                                                                                                             |\n| **代理管理**           | 可招聘、编辑和删除代理，支持多语言名称、角色\u002F部门\u002F模型选择及个性设定字段                                                                                           |\n| **代理排名与经验值**         | 代理完成任务后可获得经验值；排名榜追踪表现最佳的代理                                                                                                                                     |\n| **技能库**             | 超过600项分类技能（前端、后端、设计、AI、DevOps、安全等），并支持自定义技能上传                                                                                            |\n| **会议系统**             | 计划会议和临时会议，配备AI生成的会议纪要和多轮评审                                                                                                                                |\n| **Git工作树隔离**     | 每个代理在独立的Git分支中工作，仅在CEO批准后才会合并                                                                                                                                      |\n| **多语言界面**          | 英语、韩语、日语、中文——自动检测或手动设置                                                                                                                                          |\n| **消息集成**      | Telegram、Discord、Slack等——可通过内置的直接通道会话发送`$` CEO指令并接收更新（可选OpenClaw插件）                                                                |\n| **PowerPoint导出**          | 根据会议纪要和报告生成演示文稿幻灯片                                                                                                                                               |\n| **连通性质量保证脚本**    | 内置`test:comm:*`脚本，用于CLI\u002FOAuth\u002FAPI通信验证，具备重试机制和证据日志                                                                                                      |\n| **应用内更新通知**       | 检查GitHub最新版本，当有新版本可用时，会在顶部显示横幅，并提供针对不同操作系统的`git pull`指导                                                                                  |\n| **部门管理**      | 规划、开发、设计、QA\u002FQC、DevSecOps、运营——设有专门的管理页面，支持通过箭头和拖拽调整排序顺序                                                                      |\n| **手动分配代理**    | 可将特定代理分配至项目；会议和委派会尊重手动选择，同时提供保存前的安全保护，避免出现无人分配或仅指定领导的情况                                                           |\n| **精灵图注册安全** | 通过拒绝冲突的上传并返回明确的`409 sprite_number_exists`响应，防止重复精灵编号文件被覆盖                                                                         |\n| **自定义技能上传**        | 通过UI上传`.md`技能文件，以自定义技能训练CLI代表，并配有课堂培训动画和管理界面                                                |\n\n---\n\n## 技术栈\n\n| 层次                | 技术                                          |\n| -------------------- | --------------------------------------------------- |\n| **前端**         | React 19 + Vite 7 + Tailwind CSS 4 + TypeScript 5.9 |\n| **像素艺术引擎** | PixiJS 8                                            |\n| **后端**          | Express 5 + SQLite（零配置嵌入式数据库）        |\n| **实时通信**        | WebSocket (ws)                                      |\n| **数据验证**       | Zod 4                                               |\n| **图标库**            | Lucide React                                        |\n| **路由**          | React Router 7                                      |\n| **导出功能**           | PptxGenJS（PowerPoint 生成）                   |\n\n\u003Ca id=\"ai-installation-guide\">\n## AI 安装指南\n\n> 本节适用于 AI 编码助手。请按步骤执行，并在进入下一步前运行验证命令。\n\n### 步骤 0：验证前置条件\n\n```bash\n# Node.js 22+\nnode -v\n\n# pnpm（或启用 corepack）\npnpm -v || corepack enable\n\n# git\ngit --version\n```\n\n### 步骤 1：克隆并一键安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git\ncd claw-empire\ngit submodule update --init --recursive\nbash install.sh\n```\n\nWindows PowerShell:\n\n```powershell\ngit clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git\ncd claw-empire\ngit submodule update --init --recursive\npowershell -ExecutionPolicy Bypass -File .\\install.ps1\n```\n\n### 步骤 2：验证安装结果\n\nmacOS\u002FLinux：\n\n```bash\n# 安装完成后应存在的文件\n[ -f .env ] && [ -f scripts\u002Fsetup.mjs ] && echo \"setup 文件正常\"\n\n# AGENTS 协调规则已安装\ngrep -R \"BEGIN claw-empire orchestration rules\" ~\u002F.openclaw\u002Fworkspace\u002FAGENTS.md AGENTS.md 2>\u002Fdev\u002Fnull || true\ngrep -R \"INBOX_SECRET_DISCOVERY_V2\" ~\u002F.openclaw\u002Fworkspace\u002FAGENTS.md AGENTS.md 2>\u002Fdev\u002Fnull || true\n\n# .env 中的 OpenClaw 邮箱要求\ngrep -E '^(INBOX_WEBHOOK_SECRET|OPENCLAW_CONFIG)=' .env || true\n```\n\nWindows PowerShell：\n\n```powershell\nif ((Test-Path .\\.env) -and (Test-Path .\\scripts\\setup.mjs)) { \"setup 文件正常\" }\n$agentCandidates = @(\"$env:USERPROFILE\\.openclaw\\workspace\\AGENTS.md\", \".\\AGENTS.md\")\n$agentCandidates | ForEach-Object { if (Test-Path $_) { Select-String -Path $_ -Pattern \"BEGIN claw-empire orchestration rules\" } }\n$agentCandidates | ForEach-Object { if (Test-Path $_) { Select-String -Path $_ -Pattern \"INBOX_SECRET_DISCOVERY_V2\" } }\n\n# .env 中的 OpenClaw 邮箱要求\nGet-Content .\\.env | Select-String -Pattern '^(INBOX_WEBHOOK_SECRET|OPENCLAW_CONFIG)='\n```\n\n### 步骤 3：启动并健康检查\n\n```bash\npnpm dev:local\n```\n\n在另一个终端中：\n\n```bash\ncurl -s http:\u002F\u002F127.0.0.1:8790\u002Fhealthz\n```\n\n预期输出：`{\"ok\":true,...}`\n\n消息通道已在设置界面中配置，并持久化到 SQLite 数据库中（`settings.messengerChannels`）。`.env` 文件中的消息令牌\u002F频道变量已不再使用。\n\n### 步骤 4：可选的消息通道与收件箱验证\n\n```bash\ncurl -s http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Fmessenger\u002Fsessions\n```\n\n此命令将返回保存在设置中的消息会话。\n\n```bash\ncurl -X POST http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Finbox \\\n  -H \"content-type: application\u002Fjson\" \\\n  -H \"x-inbox-secret: $INBOX_WEBHOOK_SECRET\" \\\n  -d '{\"source\":\"telegram\",\"author\":\"ceo\",\"text\":\"$README v1.1.6 inbox smoke test\",\"skipPlannedMeeting\":true}'\n```\n\n预期结果：\n\n- 当 `INBOX_WEBHOOK_SECRET` 已配置且 `x-inbox-secret` 匹配时，返回 `200`。\n- 当请求头缺失或不匹配时，返回 `401`。\n- 当服务器未配置 `INBOX_WEBHOOK_SECRET` 时，返回 `503`。\n\n\u003Ca id=\"direct-messenger-without-openclaw\">\u003C\u002Fa>\n\n### 步骤 5：直接设置消息通道（无需 OpenClaw）\n\n您可以在不使用 OpenClaw 的情况下，直接从 Claw-Empire 运行消息通道。\n\n1. 打开“设置 > 通道消息”。\n2. 点击“添加聊天”。\n3. 选择一个消息平台（Telegram、WhatsApp、Discord、Google Chat、Slack、Signal、iMessage）。\n4. 填写会话信息：\n   - 名称（会话标签）\n   - 消息平台的令牌\u002F凭据\n   - 频道\u002F聊天 ID（目标）\n   - 映射的对话代理\n5. 点击“确认”以立即保存（无需额外的全局保存步骤）。\n6. 启用该会话，然后进行测试：\n   - 普通消息 -> 直接代理聊天\n   - `$ ...` -> 指令流程\n\n注意事项：\n\n- 消息会话会持久化到 SQLite 数据库中（`settings.messengerChannels`）。\n- 消息令牌在静止状态下使用 AES-256-GCM 加密，密钥为 `OAUTH_ENCRYPTION_SECRET`（备用为 `SESSION_SECRET`），仅在运行时解密。\n- `.env` 文件中的消息变量（如 `TELEGRAM_BOT_TOKEN`、`DISCORD_BOT_TOKEN` 等）不再使用。\n- `\u002Fapi\u002Finbox` 和 `INBOX_WEBHOOK_SECRET` 仅用于 Webhook\u002F收件箱流程（包括 OpenClaw 桥接）。\n\n---\n\n## 快速入门\n\n## Docker 部署（快速入门）\n\n该仓库现已提供面向生产环境的 Docker 默认配置：\n\n- 以非 root 用户身份运行（用户 `app`，UID\u002FGID 为 `10001`）\n- 包含必要的 CLI\u002F运行时工具（Git、Bash、OpenSSH 客户端）\n- 使用 `docker-compose.yml` 和 `Dockerfile`\n- 运行时数据持久化至 `.\u002Fdata` 目录（已加入 .gitignore）\n\n### 1) 准备环境文件\n\n```bash\ncp .env.example .env.docker\n```\n\n创建 `.env.docker.private` 文件以存储敏感的运行时密钥（请仅在本地保存此文件）：\n\n```bash\ncat > .env.docker.private \u003C\u003C'EOF'\n# 通过兼容端点调用 Claude Code\nANTHROPIC_BASE_URL=https:\u002F\u002Fapi.minimaxi.com\u002Fanthropic\nANTHROPIC_API_KEY=YOUR_ANTHROPIC_API_KEY\nEOF\nchmod 600 .env.docker.private\n```\n\n> `.env.docker*` 文件已被 Git 忽略（`.env.*`），因此默认不会提交任何密钥。\n\n### 2) 启动\n\n```bash\ndocker compose up -d --build\n```\n\n### 3) 验证\n\n```bash\ndocker ps --filter name=claw-empire\ndocker logs -f claw-empire\n```\n\n访问：`http:\u002F\u002F127.0.0.1:8790`\n\n### 可选：将镜像发布到 GHCR\n\n```bash\n# 需要具有包写权限的 GitHub Token\necho \"\u003CGITHUB_TOKEN_WITH_PACKAGES_WRITE>\" | docker login ghcr.io -u \u003Cgithub-user> --password-stdin\ndocker tag claw-empire-claw-empire:latest ghcr.io\u002F\u003Cgithub-user>\u002Fclaw-empire:latest\ndocker push ghcr.io\u002F\u003Cgithub-user>\u002Fclaw-empire:latest\n```\n\n### 前置条件\n\n| 工具        | 版本 | 安装                                |\n| ----------- | ------- | -------------------------------------- |\n| **Node.js** | >= 22   | [nodejs.org](https:\u002F\u002Fnodejs.org\u002F)      |\n| **pnpm**    | 最新    | `corepack enable`（内置于 Node.js） |\n| **Git**     | 任意    | [git-scm.com](https:\u002F\u002Fgit-scm.com\u002F)    |\n\n### 一键设置（推荐）\n\n| 平台                 | 命令                                                                                                                                |\n| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |\n| **macOS \u002F Linux**        | `git clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git && cd claw-empire && bash install.sh`                                    |\n| **Windows (PowerShell)** | `git clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git; cd claw-empire; powershell -ExecutionPolicy Bypass -File .\\install.ps1` |\n\n如果仓库已经克隆：\n\n| 平台                 | 命令                                                                                                          |\n| ------------------------ | ---------------------------------------------------------------------------------------------------------------- |\n| **macOS \u002F Linux**        | `git submodule update --init --recursive && bash scripts\u002Fopenclaw-setup.sh`                                      |\n| **Windows (PowerShell)** | `git submodule update --init --recursive; powershell -ExecutionPolicy Bypass -File .\\scripts\\openclaw-setup.ps1` |\n\n### OpenClaw `.env` 要求（用于 `\u002Fapi\u002Finbox`）\n\n在发送聊天 Webhook 之前，请在 `.env` 中设置以下两项：\n\n- `INBOX_WEBHOOK_SECRET=\u003C长随机密钥>`\n- `OPENCLAW_CONFIG=\u003Copenclaw.json 的绝对路径>`（建议不加引号）\n\n`scripts\u002Fopenclaw-setup.sh` 和 `scripts\u002Fopenclaw-setup.ps1` 现在会在缺少 `INBOX_WEBHOOK_SECRET` 时自动生成该值。\n通过 `bash install.sh` 或 `install.ps1` 进行的初始安装会自动运行这些设置脚本，因此从第一天起就会应用这些配置。\n对于仅执行 `git pull` 的现有克隆，`pnpm dev*` 或 `pnpm start*` 现在会在需要时自动执行一次，并设置 `CLAW_MIGRATION_V1_0_5_DONE=1` 标志以防止重复执行。\n\n`\u002Fapi\u002Finbox` 需要服务器端的 `INBOX_WEBHOOK_SECRET`，以及一个与之完全匹配的 `x-inbox-secret` 头部。\n\n- 缺少或不匹配的头部 -> `401`\n- 服务器配置缺失（`INBOX_WEBHOOK_SECRET`）-> `503`\n\n### 手动设置（备用方案）\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>macOS \u002F Linux\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\n# 1. 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git\ncd claw-empire\n\n# 2. 通过 corepack 启用 pnpm\ncorepack enable\n\n# 3. 安装依赖\npnpm install\n\n# 4. 创建本地环境文件\ncp .env.example .env\n\n# 5. 生成随机加密密钥\nnode -e \"\n  const fs = require('fs');\n  const crypto = require('crypto');\n  const p = '.env';\n  const content = fs.readFileSync(p, 'utf8');\n  fs.writeFileSync(p, content.replace('__CHANGE_ME__', crypto.randomBytes(32).toString('hex')));\n\"\n\n# 6. 设置 AGENTS.md 协调规则（教会你的 AI 助手成为 Claw-Empire 的项目经理）\npnpm setup -- --port 8790\n\n# 7. 启动开发服务器\npnpm dev:local\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Windows (PowerShell)\u003C\u002Fb>\u003C\u002Fsummary>\n\n```powershell\n# 1. 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git\ncd claw-empire\n\n# 2. 通过 corepack 启用 pnpm\ncorepack enable\n\n# 3. 安装依赖\npnpm install\n\n# 4. 创建本地环境文件\nCopy-Item .env.example .env\n\n# 5. 生成随机加密密钥\nnode -e \"const fs=require('fs');const crypto=require('crypto');const p='.env';const c=fs.readFileSync(p,'utf8');fs.writeFileSync(p,c.replace('__CHANGE_ME__',crypto.randomBytes(32).toString('hex')))\"\n\n# 6. 设置 AGENTS.md 协调规则（教会你的 AI 助手成为 Claw-Empire 的项目经理）\npnpm setup -- --port 8790\n\n# 7. 启动开发服务器\npnpm dev:local\n```\n\n\u003C\u002Fdetails>\n\n打开浏览器：\n\n| URL                             | 描述                |\n| ------------------------------- | -------------------------- |\n| `http:\u002F\u002F127.0.0.1:8800`         | 前端（Vite 开发服务器） |\n| `http:\u002F\u002F127.0.0.1:8790\u002Fhealthz` | API 健康检查           |\n\n### AGENTS.md 设置\n\n`pnpm setup` 命令会将 **CEO 指令协调规则** 注入到你的 AI 助手的 `AGENTS.md` 文件中。这会教会你的 AI 编码助手（Claude Code、Codex 等）如何：\n\n- 解读以 `$` 为前缀的 **CEO 指令**，以便进行优先级任务分配\n- 调用 Claw-Empire REST API 来创建任务、分配助手并报告状态\n- 在隔离的 Git 工作树中工作，以实现安全的并行开发\n\n```bash\n# 默认：自动检测 AGENTS.md 位置\npnpm setup\n\n# 自定义路径\npnpm setup -- --agents-path \u002Fpath\u002Fto\u002Fyour\u002FAGENTS.md\n\n# 自定义端口\npnpm setup -- --port 8790\n```\n\n\u003Ca id=\"openclaw-integration\">\u003C\u002Fa>\n\n### OpenClaw 集成设置（Telegram\u002FWhatsApp\u002FDiscord\u002FGoogle Chat\u002FSlack\u002FSignal\u002FiMessage）\n\n`install.sh` 或 `install.ps1`（或 `scripts\u002Fopenclaw-setup.*`）会在可能的情况下自动检测并写入 `OPENCLAW_CONFIG`。\n\n推荐的 `.env` 格式：使用 `OPENCLAW_CONFIG` 的绝对路径（建议不加引号）。\n版本 `v1.0.5` 还会在运行时规范化周围的引号和开头的 `~`，以提高兼容性。\n\n默认配置路径：\n\n| 操作系统                | 路径                                    |\n| ----------------- | --------------------------------------- |\n| **macOS \u002F Linux** | `~\u002F.openclaw\u002Fopenclaw.json`             |\n| **Windows**       | `%USERPROFILE%\\.openclaw\\openclaw.json` |\n\n手动命令：\n\n```bash\n# macOS \u002F Linux\nbash scripts\u002Fopenclaw-setup.sh --openclaw-config ~\u002F.openclaw\u002Fopenclaw.json\n```\n\n```powershell\n# Windows PowerShell\npowershell -ExecutionPolicy Bypass -File .\\scripts\\openclaw-setup.ps1 -OpenClawConfig \"$env:USERPROFILE\\.openclaw\\openclaw.json\"\n```\n\n验证消息服务会话：\n\n```bash\ncurl -s http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Fgateway\u002Ftargets\n```\n\n\u003Ca id=\"dollar-command-logic\">\u003C\u002Fa>\n\n### `$` 命令 -> OpenClaw 聊天委派逻辑\n\n当聊天消息以 `$` 开头时，Claw-Empire 会将其视为 CEO 指令：\n\n1. 协调器会询问是否先召开团队负责人会议。\n2. 协调器会请求提供项目路径或上下文（`project_path` 或 `project_context`）。\n3. 然后将该指令连同 `$` 前缀及 `x-inbox-secret` 头部一起发送至 `POST \u002Fapi\u002Finbox`。\n4. 若跳过会议，则需包含 `\"skipPlannedMeeting\": true`。\n5. 服务器会将其存储为指令，并向全公司广播，随后委派给规划部门（以及所提及的相关部门）。\n\n如果缺少或匹配错误 `x-inbox-secret`，请求将被拒绝，并返回 `401` 错误。若服务器未配置 `INBOX_WEBHOOK_SECRET`，请求将被拒绝，并返回 `503` 错误。\n\n带会议示例：\n\n```bash\ncurl -X POST http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Finbox \\\n  -H \"content-type: application\u002Fjson\" \\\n  -H \"x-inbox-secret: $INBOX_WEBHOOK_SECRET\" \\\n  -d '{\"source\":\"telegram\",\"author\":\"ceo\",\"text\":\"$在周五前发布 v0.2，并获得 QA 签核\",\"project_path\":\"\u002Fworkspace\u002Fmy-project\"}'\n```\n\n不带会议示例：\n\n```bash\ncurl -X POST http:\u002F\u002F127.0.0.1:8790\u002Fapi\u002Finbox \\\n  -H \"content-type: application\u002Fjson\" \\\n  -H \"x-inbox-secret: $INBOX_WEBHOOK_SECRET\" \\\n  -d '{\"source\":\"telegram\",\"author\":\"ceo\",\"text\":\"$立即修复生产环境登录 bug\",\"skipPlannedMeeting\":true,\"project_context\":\"现有 climpire 项目\"}'\n```\n\n---\n\n## 环境变量\n\n将 `.env.example` 文件复制为 `.env`。所有密钥均保留在本地——切勿提交 `.env` 文件。\n\n| 变量                               | 必需                 | 描述                                                                                                                                  |\n| -------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| `OAUTH_ENCRYPTION_SECRET`              | **是**                  | 使用 AES-256-GCM 对 SQLite 中的 OAuth 令牌和消息通道令牌进行加密                                                                   |\n| `SESSION_SECRET`                       | 备用                 | 仅在未设置 `OAUTH_ENCRYPTION_SECRET` 时使用的旧版备用密钥                                                                      |\n| `PORT`                                 | 否                       | 服务器端口（默认：`8790`）                                                                                                                |\n| `HOST`                                 | 否                       | 绑定地址（默认：`127.0.0.1`）                                                                                                          |\n| `API_AUTH_TOKEN`                       | 推荐              | 用于非环回 API\u002FWebSocket 访问的 Bearer 令牌                                                                                           |\n| `INBOX_WEBHOOK_SECRET`                 | **对于 `\u002Fapi\u002Finbox` 是** | 在 `x-inbox-secret` 头部中所需的共享密钥                                                                                            |\n| `OPENCLAW_CONFIG`                      | 推荐用于 OpenClaw | 用于网关目标发现和聊天中继的 `openclaw.json` 的绝对路径                                                                |\n| `DB_PATH`                              | 否                       | SQLite 数据库路径（默认：`.\u002Fclaw-empire.sqlite`）                                                                                       |\n| `LOGS_DIR`                             | 否                       | 日志目录（默认：`.\u002Flogs`）                                                                                                            |\n| `OAUTH_GITHUB_CLIENT_ID`               | 否                       | GitHub OAuth 应用程序的客户端 ID                                                                                                                   |\n| `OAUTH_GITHUB_CLIENT_SECRET`           | 否                       | GitHub OAuth 应用程序的客户端密钥                                                                                                               |\n| `OAUTH_GOOGLE_CLIENT_ID`               | 否                       | Google OAuth 客户端 ID                                                                                                                       |\n| `OAUTH_GOOGLE_CLIENT_SECRET`           | 否                       | Google OAuth 客户端密钥                                                                                                                   |\n| `OPENAI_API_KEY`                       | 否                       | OpenAI API 密钥（用于 Codex）                                                                                                                   |\n| `REVIEW_MEETING_ONESHOT_TIMEOUT_MS`    | 否                       | 一次性会议超时时间，单位为毫秒（默认 `65000`；向后兼容：值 `\u003C= 600` 被视为秒）                      |\n| `UPDATE_CHECK_ENABLED`                 | 否                       | 启用应用内更新检查提示栏（默认为 `1`，设为 `0` 则禁用）                                                                          |\n| `UPDATE_CHECK_REPO`                    | 否                       | 用于更新检查的 GitHub 仓库 slug（默认：`GreenSheep01201\u002Fclaw-empire`）                                                             |\n| `UPDATE_CHECK_TTL_MS`                  | 否                       | 更新检查缓存的 TTL，单位为毫秒（默认：`1800000`）                                                                                  |\n| `UPDATE_CHECK_TIMEOUT_MS`              | 否                       | GitHub 请求超时时间，单位为毫秒（默认：`4000`）                                                                                     |\n| `AUTO_UPDATE_ENABLED`                  | 否                       | 当 `settings.autoUpdateEnabled` 缺失时的默认自动更新值（默认为 `0`）                                                         |\n| `AUTO_UPDATE_CHANNEL`                  | 否                       | 允许的更新渠道：`patch`（默认）、`minor`、`all`                                                                                    |\n| `AUTO_UPDATE_IDLE_ONLY`                | 否                       | 仅在没有 `in_progress` 任务或活动的 CLI 进程时应用（默认为 `1`）                                                                    |\n| `AUTO_UPDATE_CHECK_INTERVAL_MS`        | 否                       | 自动更新检查间隔，单位为毫秒（默认遵循 `UPDATE_CHECK_TTL_MS`）                                                           |\n| `AUTO_UPDATE_INITIAL_DELAY_MS`         | 否                       | 启动后首次自动更新检查前的延迟时间（默认 `60000`，最小 `60000`）                                                            |\n| `AUTO_UPDATE_TARGET_BRANCH`            | 否                       | 用于分支保护和 `git fetch\u002Fpull` 目标的分支名称（默认为 `main`）                                                               |\n| `AUTO_UPDATE_GIT_FETCH_TIMEOUT_MS`     | 否                       | 更新应用过程中 `git fetch` 的超时时间（默认为 `120000`）                                                                               |\n| `AUTO_UPDATE_GIT_PULL_TIMEOUT_MS`      | 否                       | 更新应用过程中 `git pull --ff-only` 的超时时间（默认为 `180000`）                                                                      |\n| `AUTO_UPDATE_INSTALL_TIMEOUT_MS`       | 否                       | 更新应用过程中 `pnpm install --frozen-lockfile` 的超时时间（默认为 `300000`）                                                          |\n| `AUTO_UPDATE_COMMAND_OUTPUT_MAX_CHARS` | 否                       | 在尾部截断之前，每个 stdout\u002Fstderr 流的最大内存捕获大小（默认为 `200000`）                                                  |\n| `AUTO_UPDATE_TOTAL_TIMEOUT_MS`         | 否                       | 单次应用运行的全局超时上限（默认为 `900000`）                                                                                      |\n| `AUTO_UPDATE_RESTART_MODE`             | 否                       | 自动应用后的重启策略：`notify`（默认）、`exit`、`command`                                                                       |\n| `AUTO_UPDATE_EXIT_DELAY_MS`            | 否                       | 在 `exit` 模式下进程退出前的延迟时间（默认为 `10000`，最小为 `1200`）                                                                       |\n| `AUTO_UPDATE_RESTART_COMMAND`          | 否                       | 当重启模式为 `command` 时使用的可执行文件及参数（拒绝使用 Shell 元字符和直接启动 Shell 的工具；以服务器权限运行） |\n\n当 `API_AUTH_TOKEN` 被启用时，远程浏览器客户端会在运行时输入该令牌。该令牌仅存储在 `sessionStorage` 中，并不会嵌入到 Vite 构建产物中。\n对于 `OPENCLAW_CONFIG`，建议使用绝对路径。在 `v1.0.5` 版本中，带引号的值和开头的 `~` 会被自动规范化。\n\n---\n\n\n\n## 运行模式\n\n```bash\n# 开发模式（仅限本地，推荐）\npnpm dev:local          # 绑定到 127.0.0.1\n\n# 开发模式（可被网络访问）\npnpm dev                # 绑定到 0.0.0.0\n\n# 生产环境构建\npnpm build              # TypeScript 检查 + Vite 构建\npnpm start              # 启动 API\u002F后端服务器（以生产模式提供 dist 目录）\n\n# 健康检查\ncurl -fsS http:\u002F\u002F127.0.0.1:8790\u002Fhealthz\n```\n\n### CI 验证（当前 PR 流水线）\n\n每次提交拉取请求时，`.github\u002Fworkflows\u002Fci.yml` 流水线会执行以下步骤：\n\n1. 隐藏\u002F双向 Unicode 检查，用于保护工作流文件\n2. `pnpm install --frozen-lockfile`\n3. `pnpm run format:check`\n4. `pnpm run lint`\n5. `pnpm exec playwright install --with-deps`\n6. `pnpm run test:ci`（包括 `test:web --coverage`、`test:api --coverage` 和 `test:e2e`）\n\n注意：`pnpm run test:e2e` 现在会启动一个独立的 `.tmp\u002Fe2e-runtime` 数据库，并在测试结束后将其清空。只有当你有意重复利用已运行的本地服务器（端口 `8810`）时，才应设置 `PW_REUSE_EXISTING_SERVER=1`。\n\n推荐的本地预 PR 检查流程如下：\n\n```bash\npnpm run format:check\npnpm run lint\npnpm run build\npnpm run test:ci\n```\n\n### 通信模块 QA 检查（v1.1.6）\n\n```bash\n# 单项检查\npnpm run test:comm:llm\npnpm run test:comm:oauth\npnpm run test:comm:api\n\n# 集成套件（也可通过旧版入口点访问）\npnpm run test:comm:suite\npnpm run test:comm-status\n```\n\n`test:comm:suite` 会将机器可读的证据写入 `logs\u002F` 目录，并生成一份 Markdown 格式的报告存放在 `docs\u002F` 目录下。\n\n### 项目路径 QA 烟囱测试（v1.1.6）\n\n```bash\n# 需要 API 认证令牌\nQA_API_AUTH_TOKEN=\"\u003CAPI_AUTH_TOKEN>\" pnpm run test:qa:project-path\n```\n\n`test:qa:project-path` 会验证路径辅助接口、项目创建流程、`project_path` 重复冲突响应以及清理行为。\n\n### 应用内更新提示栏\n\n当 GitHub 上发布了一个新版本时，Claw-Empire 会在 UI 的顶部显示一条提示栏，其中包含拉取代码的说明和发布说明链接。\n\n- Windows PowerShell：`git pull; pnpm install`\n- macOS\u002FLinux shell：`git pull && pnpm install`\n- 拉取并安装完成后，请重启服务器。\n\n### 自动更新功能（安全模式，需手动开启）\n\n你可以启用保守的自动更新行为来同步最新版本。\n\n- `GET \u002Fapi\u002Fupdate-auto-status` — 当前自动更新的运行\u002F配置状态（**需要认证**）\n- `POST \u002Fapi\u002Fupdate-auto-config` — 更新运行时的自动更新开关状态（`enabled`），无需重启（**需要认证**）\n- `POST \u002Fapi\u002Fupdate-apply` — 按需执行更新流程（支持 `dry_run`、`force` 和 `force_confirm` 参数，**需要认证**）\n  - `force=true` 会绕过大多数安全防护机制，因此必须同时设置 `force_confirm=true`\n  - `dirty_worktree` 和 `channel_check_unavailable` 等防护机制不可绕过，仍会阻止更新应用\n  - 无论自动还是手动更新，都会应用重启模式（`notify|exit|command`）\n  - 在 `notify` 模式下，成功应用更新时会包含 `manual_restart_required` 的原因\n\n默认情况下，此功能处于关闭状态（**OFF**）。启用后，如果服务器繁忙或仓库状态不符合干净的快进条件，安全模式下的防护机制将会阻止更新。\n\n如果 `AUTO_UPDATE_CHANNEL` 的值无效，服务器会记录警告信息，并回退到 `patch` 分支。\n\n#### 故障排除：`git_pull_failed` \u002F 本地分支分歧\n\n如果应用结果返回 `error: \"git_pull_failed\"`（或 `git_fetch_failed`），并且 `result.reasons` 中包含 `manual_recovery_may_be_required`，则可能需要人工干预。\n\n1. 通过 `GET \u002Fapi\u002Fupdate-auto-status` 查看最新的应用结果（`runtime.last_result` 和 `runtime.last_error`）。\n2. 在服务器仓库中检查分支分歧：\n   - `git fetch origin main`\n   - `git status`\n   - `git log --oneline --decorate --graph --max-count 20 --all`\n3. 将仓库状态调整为可以干净快进的状态（例如，变基本地提交或将本地分支重置为 `origin\u002Fmain`，具体操作取决于你的策略）。\n4. 再次执行 `POST \u002Fapi\u002Fupdate-apply`（可先尝试 `{\"dry_run\": true}`）。\n\n自动更新循环会按照设定的时间间隔持续运行，并在仓库恢复到安全状态后，在后续周期中再次尝试更新。\n\n⚠️ `AUTO_UPDATE_RESTART_COMMAND` 是以服务器权限执行的特权操作。命令解析器会拒绝所有 Shell 元字符（`;`、`|`、`&`、`` ` ``、`$`、`\u003C`、`>`），并阻止直接调用 Shell 解释器（如 `sh`、`bash`、`zsh`、`cmd`、`powershell`、`pwsh` 等）。请仅使用纯可执行文件加固定参数格式，不得使用 Shell 或解释器包装，也不得动态构造输入。\n\n---\n\n\u003Ca id=\"cli-provider-setup\">\u003C\u002Fa>\n\n## 提供商设置（CLI \u002F OAuth \u002F API）\n\n### 官方 API 预设\n\n在 **设置 > API** 选项卡中，现在包含四个官方的直接 API 预设：\n\n- `OpenCode Go (OpenAI)` -> `https:\u002F\u002Fopencode.ai\u002Fzen\u002Fgo\u002Fv1`\n- `OpenCode Go (Anthropic)` -> `https:\u002F\u002Fopencode.ai\u002Fzen\u002Fgo\u002Fv1`\n- `Bailian 编码计划 (OpenAI)` -> `https:\u002F\u002Fcoding-intl.dashscope.aliyuncs.com\u002Fv1`\n- `Bailian 编码计划 (Anthropic)` -> `https:\u002F\u002Fcoding-intl.dashscope.aliyuncs.com\u002Fapps\u002Fanthropic`\n\n注意事项：\n\n- Bailian 编码计划的 API 密钥必须以 `sk-sp-` 开头。\n- 这些预设会立即填充回退模型列表，以便在实时 `\u002Fmodels` 发现不可用或不完整时也能分配代理。\n- 分配模态框默认使用 `development` 作为基准，并且还包括已完成初始设置并已加载到运行时状态中的办公套件。\n- 直接 API 预设使用提供商端点的模型 ID，例如 `glm-5`、`kimi-k2.5` 和 `minimax-m2.5`。它们 **不** 使用 OpenCode CLI 的模型 ID，如 `opencode-go\u002F\u003Cmodel-id>`。\n- Bailian 编码计划的密钥适用于交互式编码工具流程。请在其他环境中重复使用这些密钥之前，先查阅提供商的相关文档。\n\nClaw-Empire 支持三种提供商接入方式：\n\n- **CLI 工具** — 安装本地编码 CLI 并通过本地进程运行任务\n- **OAuth 账户** — 通过安全的令牌交换连接支持的提供商（例如 GitHub\u002FGoogle 支持的流程）\n- **直接 API 密钥** — 在 **设置 > API** 中将代理绑定到外部 LLM API。\n\n对于 CLI 模式，至少需要安装以下其中之一：\n\n| 提供商                                                      | 安装                                  | 认证                           |\n| ------------------------------------------------------------- | ---------------------------------------- | ------------------------------ |\n| [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code) | `npm i -g @anthropic-ai\u002Fclaude-code`     | `claude`（按照提示操作）      |\n| [Codex CLI](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex)                  | `npm i -g @openai\u002Fcodex`                 | 在 `.env` 文件中设置 `OPENAI_API_KEY` |\n| [Gemini CLI](https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli)     | `npm i -g @google\u002Fgemini-cli`            | 通过设置面板进行 OAuth       |\n| [OpenCode](https:\u002F\u002Fgithub.com\u002Fopencode-ai\u002Fopencode)           | `npm i -g opencode`                      | 提供商特定的方式              |\n| [Kimi Code](https:\u002F\u002Fgithub.com\u002FMoonshotAI\u002Fkimi-cli)           | `uv tool install --python 3.13 kimi-cli` | `kimi auth login`              |\n\n请在应用内的 **设置 > CLI 工具** 面板中配置提供商和模型。\n\n或者，您也可以通过 **设置 > API** 选项卡将代理连接到外部 LLM API（无需安装 CLI）。API 密钥以加密形式（AES-256-GCM）存储在本地 SQLite 数据库中，而不是存储在 `.env` 文件或源代码中。\n目前，技能学习\u002F遗忘自动化功能专为支持 CLI 的提供商设计。\n\n---\n\n## 项目结构\n\n```\nclaw-empire\u002F\n├── .github\u002F\n│   └── workflows\u002F\n│       └── ci.yml             # PR CI（Unicode 检查、格式化、lint、测试）\n├── server\u002F\n│   ├── index.ts              # 后端入口文件\n│   ├── server-main.ts        # 运行时配置\u002F引导\n│   ├── modules\u002F              # 路由\u002F工作流\u002F引导生命周期\n│   ├── test\u002F                 # 后端测试设置\u002F辅助工具\n│   └── vitest.config.ts      # 后端单元测试配置\n├── src\u002F\n│   ├── app\u002F                  # 应用外壳、布局、状态编排\n│   ├── api\u002F                  # 前端 API 模块\n│   ├── components\u002F           # UI（办公\u002F任务板\u002F聊天\u002F设置）\n│   ├── hooks\u002F                # 轮询\u002FWebSocket 钩子\n│   ├── test\u002F                 # 前端测试设置\n│   ├── types\u002F                # 前端类型定义\n│   ├── App.tsx\n│   ├── api.ts\n│   └── i18n.ts\n├── tests\u002F\n│   └── e2e\u002F                  # Playwright 端到端场景\n├── public\u002Fsprites\u002F           # 像素风代理精灵图\n├── scripts\u002F\n│   ├── setup.mjs             # 环境\u002F引导设置\n│   ├── auto-apply-v1.0.5.mjs # 启动迁移辅助工具\n│   ├── openclaw-setup.sh     # 一键设置（macOS\u002FLinux）\n│   ├── openclaw-setup.ps1    # 一键设置（Windows PowerShell）\n│   ├── prepare-e2e-runtime.mjs\n│   ├── preflight-public.sh   # 发布前的安全检查\n│   └── generate-architecture-report.mjs\n├── install.sh                # scripts\u002Fopenclaw-setup.sh 的封装脚本\n├── install.ps1               # scripts\u002Fopenclaw-setup.ps1 的封装脚本\n├── docs\u002F                     # 设计与架构文档\n├── AGENTS.md                 # 本地代理\u002F编排规则\n├── CONTRIBUTING.md           # 分支\u002FPR\u002F评审政策\n├── eslint.config.mjs         # 扁平化 ESLint 配置\n├── .env.example              # 环境变量模板\n└── package.json\n```\n\n---\n\n## 安全性\n\nClaw-Empire 在设计时充分考虑了安全性：\n\n- **本地优先架构** — 所有数据均存储在本地 SQLite 数据库中，无需依赖外部云服务。\n- **加密的 OAuth + 消息传递令牌** — 用户特定的 OAuth 令牌和直接消息通道令牌仅存储在服务器端的 SQLite 数据库中，并使用 AES-256-GCM 加密保存，密钥为 `OAUTH_ENCRYPTION_SECRET`（备用为 `SESSION_SECRET`）。浏览器永远不会收到刷新令牌。\n- **内置 OAuth 客户端 ID** — 源代码中嵌入的 GitHub 和 Google OAuth 客户端 ID\u002F密钥是 **公共 OAuth 应用凭证**，而非用户机密。根据 Google 的文档，针对已安装\u002F桌面应用的客户端密钥“并不被视为机密”。这是开源应用的标准做法（VS Code、Thunderbird、GitHub CLI 等）。这些凭证仅用于识别应用本身——您的个人令牌始终单独加密存储。\n- **源代码中不存储个人凭证** — 所有用户特定的令牌（GitHub、Google OAuth）均以加密形式存储在本地 SQLite 数据库中，绝不会出现在源代码中。\n- **仓库中无敏感信息** — 全面的 `.gitignore` 文件会阻止 `.env`、`*.pem`、`*.key`、`credentials.json` 等文件被提交到版本库。\n- **发布前安全检查** — 在任何公开发布之前，请运行 `pnpm run preflight:public`，以扫描工作树和 Git 历史中是否存在泄露的密钥。\n- **默认仅限本地访问** — 开发服务器绑定到 `127.0.0.1`，不会暴露于网络。\n\n## API 文档与安全快速链接\n\n- **API 文档** — 使用 [`docs\u002Fapi.md`](docs\u002Fapi.md) 查看端点概览和使用说明，使用 [`docs\u002Fopenapi.json`](docs\u002Fopenapi.json) 进行模式\u002F工具集成。\n- **安全策略** — 请查看 [`SECURITY.md`](SECURITY.md) 了解披露和政策详情，并在公开发布前运行 `pnpm run preflight:public`。\n---\n\n## 贡献\n\n欢迎贡献！请按照以下步骤操作：\n\n1. 克隆仓库并创建分支\n2. 从 `dev` 分支创建特性分支（`git checkout -b feature\u002Famazing-feature`）\n3. 提交您的更改（`git commit -m '添加超赞功能'`）\n4. 在提交 Pull Request 之前，请在本地运行以下检查：\n   - `pnpm run format:check`\n   - `pnpm run lint`\n   - `pnpm run build`\n   - `pnpm run test:ci`\n5. 推送您的分支（`git push origin feature\u002Famazing-feature`）\n6. 向 `dev` 分支（贡献者的默认集成分支）发起 Pull Request\n7. 仅在维护者批准的紧急修复时使用 `main` 分支，随后将 `main` 合并回 `dev`\n\n完整政策：[`CONTRIBUTING.md`](CONTRIBUTING.md)\n\n---\n\n## 许可证\n\n[Apache 2.0](LICENSE) — 适用于个人和商业用途，免费。\n\n---\n\n\u003Cdiv align=\"center\">\n\n**用像素与热情打造。**\n\n_Claw-Empire — AI 代理的工作之地。_\n\n\u003C\u002Fdiv>","# Claw-Empire 快速上手指南\n\nClaw-Empire 是一款本地优先的 AI 智能体办公室模拟器。它将各种 AI 编程助手（如 Claude Code、Codex CLI、Gemini CLI 等）转化为一个虚拟软件公司的员工。作为 CEO，你可以通过像素风格的办公室界面指挥这些智能体协作、开会并交付任务。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **操作系统**：macOS、Linux 或 Windows\n*   **Node.js**：版本 >= 22 (必需)\n*   **包管理器**：推荐使用 `pnpm` (也可使用 npm 或 yarn)\n*   **AI 工具依赖**：需预先安装至少一种支持的 CLI 工具（如 `claude-code`, `codex-cli`, `gemini-cli` 等）或准备好相关 API Key。\n\n> **国内开发者提示**：\n> 如果下载 Node.js 或 npm 包速度较慢，建议使用国内镜像源：\n> *   Node.js 下载：[https:\u002F\u002Fnpmmirror.com\u002Fmirrors\u002Fnode\u002F](https:\u002F\u002Fnpmmirror.com\u002Fmirrors\u002Fnode\u002F)\n> *   设置 npm\u002Fpnpm 淘宝镜像：\n>     ```bash\n>     npm config set registry https:\u002F\u002Fregistry.npmmirror.com\n>     # 或\n>     pnpm config set registry https:\u002F\u002Fregistry.npmmirror.com\n>     ```\n\n## 安装步骤\n\n### 1. 克隆项目\n首先从 GitHub 克隆仓库到本地：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire.git\ncd claw-empire\n```\n\n### 2. 安装依赖\n使用 pnpm 安装项目依赖（推荐）：\n\n```bash\npnpm install\n```\n\n### 3. 配置 AI 提供商\n在启动前，你需要配置 AI 代理。Claw-Empire 支持多种连接方式：\n*   **CLI 模式**：确保已在全局安装对应的 CLI 工具（例如 `npm install -g @anthropic-ai\u002Fclaude-code`）。\n*   **API 模式**：在应用设置中直接填入 API Key。\n*   **OAuth 模式**：支持 GitHub 和 Google 登录授权。\n\n*(具体配置可在启动后的设置界面完成，或通过编辑配置文件进行)*\n\n### 4. 启动应用\n运行开发服务器启动像素办公室：\n\n```bash\npnpm run dev\n```\n\n启动成功后，浏览器会自动打开或在终端显示访问地址（通常为 `http:\u002F\u002Flocalhost:8810`）。\n\n## 基本使用\n\n启动后，你将看到一个像素风格的办公室界面。以下是核心操作流程：\n\n### 1. 初始化公司\n首次进入时，在 **Settings (设置)** 中配置公司名称、CEO 名称以及默认的 AI 提供商偏好（CLI\u002FOAuth\u002FAPI）。\n\n### 2. 选择办公包 (Office Pack)\n根据任务类型选择不同的工作流模板。在设置或新建项目时选择：\n*   `development` (DEV): 默认软件开发流程（规划\u002F开发\u002F测试\u002F运维）。\n*   `report` (RPT): 结构化报告与文档生成。\n*   `web_research_report` (WEB): 网络调研与事实核查。\n*   `novel` (NOV): 小说创作与世界构建。\n*   `video_preprod` (VID): 视频预制作（脚本\u002F分镜）。\n*   `roleplay` (RPG): 角色扮演对话。\n\n### 3. 下达指令 ($ Command)\n作为 CEO，你可以通过聊天窗口直接向团队下达指令。使用 `$` 符号触发高级指令：\n\n```text\n$ 请启动一个新的电商网站后端开发项目，使用 Node.js 和 PostgreSQL。\n```\n\n系统会自动分配任务给相应的部门（如开发部、设计部），智能体将在看板中移动状态（Inbox -> Planned -> In Progress -> Done）。\n\n### 4. 监控与协作\n*   **Dashboard (仪表盘)**：查看实时 KPI、智能体排名和部门状态。\n*   **Kanban (看板)**：拖拽管理任务生命周期，查看每个任务的详细进展。\n*   **Meeting Minutes (会议纪要)**：查看 AI 自动生成的会议总结和多方审核记录。\n\n### 5. 生成产出物\n任务完成后，你可以查看详细的报告，甚至一键生成 PPT 演示文稿（支持 `.pptx` 导出）。\n\n---\n*更多高级功能（如 Docker 部署、OpenClaw 集成、多消息平台对接）请参考官方完整文档。*","某全栈开发者需要同时利用 Claude Code、Gemini CLI 和 GitHub Copilot 多种模型，协作完成一个包含前端重构、后端 API 优化及数据库迁移的复杂微服务项目。\n\n### 没有 claw-empire 时\n- **多终端切换繁琐**：开发者需在多个终端窗口间频繁跳转，手动复制粘贴上下文，分别向不同 AI 下达指令，极易造成信息割裂。\n- **协作流程断裂**：各 AI 助手彼此孤立，无法自动感知其他模型的进度，导致前端代码修改后，后端适配往往滞后或出现接口不匹配。\n- **状态监控困难**：难以直观掌握哪个任务正在运行、哪个模型卡死或报错，缺乏统一的管理视图来统筹全局进度。\n- **隐私与配置负担**：管理众多 API Key 和本地 CLI 配置耗时耗力，且担心敏感代码在云端流转，缺乏本地优先的安全保障。\n\n### 使用 claw-empire 后\n- **统一指挥中枢**：开发者化身\"CEO\"，在唯一的像素风办公室界面中，即可向连接了 CLI、OAuth 及 API 的所有 AI 员工分发任务，无需切换窗口。\n- **自动化部门协作**：AI  agents 作为虚拟员工在隔离的 Git 工作区自主协作，前端组完成后自动触发后端组进行接口联调，模拟真实公司流水线。\n- **可视化透明管控**：通过直观的办公室视图，实时看到每个 AI 员工的忙碌状态、会议讨论及交付成果，任务阻塞或异常一目了然。\n- **本地私密运行**：所有数据与逻辑均在本地机器通过 SQLite 处理，既保留了多模型协同的强大能力，又确保了核心代码绝不外泄。\n\nclaw-empire 将分散的 AI 工具整合为一家高效的虚拟软件公司，让开发者从繁琐的调度工作中解放，专注于战略决策。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGreenSheep01201_claw-empire_04a40aeb.png","GreenSheep01201","GreenSheep","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FGreenSheep01201_d2008db7.jpg","Green Sheep",null,"https:\u002F\u002Fgithub.com\u002FGreenSheep01201",[83,87,91,95,99,103,107,111],{"name":84,"color":85,"percentage":86},"TypeScript","#3178c6",90.1,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",6.6,{"name":92,"color":93,"percentage":94},"CSS","#663399",1.8,{"name":96,"color":97,"percentage":98},"HTML","#e34c26",1.1,{"name":100,"color":101,"percentage":102},"Shell","#89e051",0.3,{"name":104,"color":105,"percentage":106},"PowerShell","#012456",0.2,{"name":108,"color":109,"percentage":110},"Dockerfile","#384d54",0,{"name":112,"color":113,"percentage":110},"Batchfile","#C1F12E",1012,204,"2026-04-03T15:54:33","Apache-2.0","macOS, Linux, Windows","未说明",{"notes":121,"python":119,"dependencies":122},"该工具是一个基于 Node.js 的本地优先 AI 代理办公室模拟器，主要通过 CLI、OAuth 或 API 连接外部 AI 服务（如 Claude Code, Gemini CLI 等），而非运行本地大模型，因此无特定 GPU 或 Python 版本要求。支持 Docker 部署。数据存储使用本地 SQLite 数据库。",[123,124,125],"Node.js >= 22","pnpm","SQLite",[45,15],[128,129,130,131,132,133,134],"openclaw","openclaw-agent","openclaw-extension","openclaw-plugin","agentic-workflow","agents","ochestration","2026-03-27T02:49:30.150509","2026-04-06T08:45:31.624138",[138,143,148,153,158,163],{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},13551,"分配 API 模型给 Agent 后没有反应或保存失败怎么办？","如果点击分配后界面无反应且控制台报错 500 (Internal Server Error)，通常是因为本地数据状态不一致。最有效的解决方法是：完全卸载并重新安装应用程序。用户反馈执行“完全删除后重新安装”后问题得到解决，功能恢复正常。","https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fissues\u002F31",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},13552,"使用 OpenCode + Kimi for Coding 时输出为空、显示 fallback 文案或暴露内部 JSON 怎么办？","这是一个已知的流解析（stream parsing）问题，会导致最终答案缺失或显示内部调试信息。维护者已在后续版本中修复此问题。请更新到最新版本（v1.1.6 之后或 v2.0.1+），即可稳定获取 Kimi 生成的最终用户回答，不再暴露内部 reasoning 或原始 JSON。","https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fissues\u002F34",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},13553,"如何启用 Discord Receiver？为什么接收器标签页只显示 Telegram？","Discord Receiver 功能在 v2.0.0 中可能尚未完全激活或存在配置遗漏。该问题已在 v2.0.1 版本中修复。请执行 `git pull` 更新到 v2.0.1 或更高版本。更新后，Discord Bot 应能正常上线并接收消息，无需额外复杂的启动步骤。","https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fissues\u002F47",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},13554,"首次聊天是否必须创建新项目？能否进行简单的非项目闲聊？","早期版本强制要求为每次对话创建新项目，体验不佳。该问题已通过热修复（Hotfix）解决。请拉取最新代码版本，现在支持在非项目环境（onboarding 模式）下进行简单闲聊（如打招呼），系统会直接回复而不会强制发起会议或创建新项目。","https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fissues\u002F38",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},13555,"如何原生支持 OpenCode Go 和 Alibaba Coding Plan (Bailian)？","从 v2.0.4 版本开始，Claw-Empire 已官方支持 OpenCode Go 和 Alibaba Coding Plan。无需手动配置自定义 Endpoint，只需在 `Settings > API` 中选择对应的官方预设（Official Preset）：\n1. OpenCode Go (支持 OpenAI\u002FAnthropic 协议)\n2. Bailian Coding Plan (支持 OpenAI\u002FAnthropic 协议)\n选择预设后，Base URL 和协议会自动应用，输入 API Key 即可直接使用 GLM-5, Kimi K2.5 等模型。","https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fissues\u002F61",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},13556,"是否支持 Kimi Code 或 Moonshot 模型以降低使用成本？","是的，为了支持低成本团队，项目已计划并逐步集成对 Kimi 和 Moonshot 的支持。这些模型通常通过兼容 OpenAI 协议的 Endpoint 接入。建议查看最新的 Release Notes 或 API 设置中的预设列表，确认是否已添加名为 'Kimi' 或 'Moonshot' 的官方 Provider 预设，如有则直接填入 API Key 即可使用。","https:\u002F\u002Fgithub.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fissues\u002F53",[169,174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264],{"id":170,"version":171,"summary_zh":172,"released_at":173},72378,"v1.1.9","# Claw-Empire v1.1.9 发行说明\n\n- 发布日期：2026年2月23日\n- 范围：针对 v1.1.8 之后的子代理状态同步、委派评审闸门暂停\u002F恢复行为以及决策收件箱评审轮跳过路由等问题的可靠性修复。\n\n## 亮点\n\n- **子代理状态同步加固**\n  - 当收到未知或乱序的 `agent_status` 数据载荷时，现在会触发规范化的实时同步，而不是直接将未知代理追加到状态中。\n  - 新增了有界的 Codex 线程绑定保护机制（TTL + 最大尺寸修剪），以防止陈旧线程映射不断增长。\n\n- **Codex 线程绑定在完成时清理**\n  - 当子代理被标记为完成时，相关的 Codex 线程绑定会立即移除。\n  - 避免延迟的流片段错误地最终化无关或陈旧的子代理条目。\n\n- **委派暂停\u002F恢复评审闸门热修复**\n  - 暂停的委派运行在正常中断退出时，不再将关联的子任务最终化为 `blocked` 状态。\n  - 关联的委派子任务现在会在运行完成后进行协调处理（成功时标记为 `done`，真正失败时标记为 `blocked`）。\n\n- **过时委派的评审完成自动修复**\n  - 在评审完成过程中，如果发现过时的 `blocked` 委派子任务，而其委派任务已达到 `review` 或 `done` 状态，则会自动恢复这些子任务。\n  - 一旦所有剩余的关联子任务都被解决，父级评审完成操作将自动重试。\n\n- **决策收件箱轮次跳过路由修复**\n  - 修复了 `review_round_pick -> skip_to_next_round` 使用的 `scheduleNextReviewRound` 的运行时配置。\n  - 防止出现虚假回复错误，并避免意外回退到项目级决策或团队负责人会议流程。\n  - 新增回滚保护：若下一轮调度失败，会议状态将回滚至 `revision_requested`，而非保持 `completed` 状态。\n\n## 更改文件\n\n### 前端\n- `src\u002FApp.tsx`\n\n### 后端\n- `server\u002Fmodules\u002Froutes\u002Fcollab.ts`\n- `server\u002Fmodules\u002Froutes\u002Fops\u002Fmessages.ts`\n- `server\u002Fmodules\u002Fruntime-helper-keys.ts`\n- `server\u002Fmodules\u002Fworkflow.ts`\n- `server\u002Fmodules\u002Fworkflow\u002Forchestration.ts`\n- `server\u002Ftypes\u002Fruntime-context.ts`\n\n### 文档\n- `README.md`\n- `README_ko.md`\n- `README_jp.md`\n- `README_zh.md`\n- `docs\u002Freleases\u002FREADME.md`\n- `docs\u002Freleases\u002Fv1.1.9.md`\n\n## 验证\n\n- `pnpm run test:api`\n  - `vitest --config server\u002Fvitest.config.ts` 测试通过（共 29 个测试）","2026-02-23T14:20:26",{"id":175,"version":176,"summary_zh":177,"released_at":178},72379,"v1.1.8","# Claw-Empire v1.1.8 Release Notes\n\n- Release date: 2026-02-23\n- Scope: Sub-agent orchestration reliability hardening (multi-model stream parsing + burst-safe UI sync) and Office\u002FAgentDetail sub-agent visualization updates.\n\n## Highlights\n\n- **Sub-agent Stream Parsing Expanded Across Models**\n  - Added normalized sub-agent event parsing for Claude, Codex, OpenCode, and Gemini tool-call stream shapes.\n  - Improved spawn\u002Fdone\u002Fthread-bind handling so sub-agent lifecycle UI is detected more consistently across providers.\n\n- **Burst-safe Sub-agent UI Tracking**\n  - Added per-task stream-tail buffering for CLI output parsing to reduce dropped sub-agent events during very large output bursts.\n  - Preserves split JSON lines across websocket chunks before parsing.\n\n- **State Sync Guardrails**\n  - Added extra-field comparison fallback in agent\u002Ftask equality checks to reduce missed UI refreshes when non-listed fields change.\n  - Changed unknown `agent_status` handling to trigger live sync instead of immediately appending unknown IDs, reducing temporary ghost-agent UI artifacts.\n\n- **Office Sub-agent Visual Overhaul**\n  - Switched sub-agent visuals from dark shadow clones to small character helpers.\n  - Added smoke-burst summon\u002Fdespawn effects and periodic celebratory fireworks.\n  - Tuned movement to a calmer “supporting from behind” motion and removed afterimage trails.\n  - Sub-agent helper character is now randomly assigned per sub-agent ID (no longer forced to parent-character clone).\n\n- **Agent Detail “Sub-agents” Tab Icon Sync**\n  - Replaced fixed sub-agent emoji icon with sprite avatar rendering.\n  - Uses the same sub-agent sprite selection rule as Office view for visual consistency.\n\n## Changed Files\n\n### Frontend\n- `src\u002FApp.tsx`\n- `src\u002Fcomponents\u002FOfficeView.tsx`\n- `src\u002Fcomponents\u002FAgentDetail.tsx`\n\n### Docs\n- `README.md`\n- `README_ko.md`\n- `README_jp.md`\n- `README_zh.md`\n- `docs\u002Freleases\u002FREADME.md`\n- `docs\u002Freleases\u002Fv1.1.8.md`\n\n## Verification\n\n- `pnpm run build`\n  - `vite build` passed\n","2026-02-23T12:14:53",{"id":180,"version":181,"summary_zh":182,"released_at":183},72380,"v1.1.7","# Claw-Empire v1.1.7 Release Notes\n\n- Release date: 2026-02-23\n- Scope: OpenCode stream-output hardening for Kimi-based runs (chat + task execution), explicit user-facing error handling for common failure paths, plus two post-v1.1.6 hotfixes (custom API version-path compatibility and setup frontend-port correction).\n\n## Highlights\n\n- **OpenCode\u002FKimi Final-Reply Stability**\n  - Stream parsing now prioritizes user-facing final text and suppresses internal\u002Fnoise events (`thinking`, `reasoning`, `tool_use`, `tool_result`, `step_finish`).\n  - Prevents raw stream JSON\u002Ftool payload fragments from leaking into final chat\u002Ftask output.\n\n- **Terminal Pretty Log: Reasoning Visibility Restored**\n  - `\u002Fapi\u002Ftasks\u002F:id\u002Fterminal?pretty=1` now includes OpenCode `thinking`\u002F`reasoning` traces again for operator debugging.\n  - Final user-facing reply paths still keep internal reasoning hidden.\n\n- **Explicit Failure Replies (No Silent Fallback for Known Cases)**\n  - Added explicit direct-reply error handling for:\n    - file-access permission block (`external_directory`, auto-reject)\n    - stale file write conflict (`File ... has been modified since it was last read`)\n    - `step_finish` ending with `reason=\"tool-calls\"` and no final assistant reply\n    - timeout and other generic CLI failures\n  - Improves operator visibility by returning clear, user-readable failure reasons instead of generic fallback text.\n\n- **OpenCode Progress-Hint Reliability**\n  - Terminal progress-hint parsing now supports `callID` \u002F `callId` \u002F `call_id` variants.\n  - Tracks repeated `tool_use` status transitions (`completed`\u002F`error`) so result hints are not dropped when the same call id reappears.\n\n- **Hotfix 1: Custom API Provider Non-`v1` Version Paths**\n  - OpenAI-compatible custom providers now preserve `\u002FvN` base paths (for example `\u002Fv4`) instead of forcing `\u002Fv1`.\n  - Fixes malformed double-path requests such as `\u002Fv4\u002Fv1\u002Fchat\u002Fcompletions` that caused 404 errors.\n\n- **Hotfix 2: Setup Frontend Port Output Correction**\n  - `scripts\u002Fopenclaw-setup.sh` and `scripts\u002Fopenclaw-setup.ps1` now print the correct frontend URL:\n    - `http:\u002F\u002F127.0.0.1:8800`\n  - Resolves onboarding confusion from the previous `5173` output.\n\n## Changed Files\n\n### Backend\n- `server\u002Fmodules\u002Froutes\u002Fops.ts`\n- `server\u002Fmodules\u002Fworkflow\u002Fcore.ts`\n- `server\u002Fmodules\u002Fworkflow\u002Fagents\u002Fproviders.ts`\n\n### Setup Scripts\n- `scripts\u002Fopenclaw-setup.sh`\n- `scripts\u002Fopenclaw-setup.ps1`\n\n### Docs\n- `README.md`\n- `README_ko.md`\n- `README_jp.md`\n- `README_zh.md`\n- `docs\u002Freleases\u002FREADME.md`\n- `docs\u002Freleases\u002Fv1.1.7.md`\n\n## Verification\n\n- `pnpm run test:api`\n  - api tests passed\n- `pnpm run build`\n  - `vite build` passed\n","2026-02-23T09:48:40",{"id":185,"version":186,"summary_zh":187,"released_at":188},72381,"v1.1.6","# Claw-Empire v1.1.6 Release Notes\n\n- Release date: 2026-02-22\n- Scope: GitHub project integration — dev-branch merge + automatic PR creation workflow, GitHub Import enhancements, base-branch support for worktrees, frontend bugfixes, and post-release hardening for subtask delegation\u002Fworktree merge safety.\n\n## Highlights\n\n- **GitHub Project Dev-Branch Merge + PR Flow**\n  - For GitHub-imported projects (`github_repo` set), completed tasks now merge into `dev` branch instead of `main`.\n  - After merging to `dev`, the branch is pushed to origin and a GitHub Pull Request (dev → main) is automatically created.\n  - If an open dev → main PR already exists, the push updates it automatically without creating a duplicate.\n  - Local-only projects (no `github_repo`) retain the existing direct-to-main merge behavior.\n\n- **`github_repo` Column & API Support**\n  - Added `github_repo TEXT` column to the `projects` table (nullable, format: `owner\u002Frepo`).\n  - `POST \u002Fapi\u002Fprojects` and `PATCH \u002Fapi\u002Fprojects\u002F:id` now accept and persist `github_repo`.\n  - Frontend `createProject()` and `updateProject()` API functions support `github_repo` parameter.\n  - `Project` TypeScript type includes `github_repo?: string | null`.\n\n- **GitHub Import Panel Enhancements**\n  - GitHub Import now automatically sets `github_repo` to the repository's `full_name` when creating a project.\n  - Fixed `process is not defined` error — removed browser-incompatible `process.env` references; `~` path resolution now handled server-side.\n  - Fixed `[object Object]` project ID error — `createProject()` return value is now correctly unwrapped to `project.id`.\n\n- **Server-Side `~` Path Resolution for Clone**\n  - `POST \u002Fapi\u002Fgithub\u002Fclone` now resolves `~` and `~\u002F...` paths server-side, matching `normalizeProjectPathInput` behavior.\n\n- **Base-Branch Support for Worktrees**\n  - `createWorktree()` now accepts an optional `baseBranch` parameter.\n  - Task execution in orchestration uses `base_branch` from the task record when creating worktrees.\n  - `POST \u002Fapi\u002Ftasks` now accepts and persists `base_branch` field.\n\n- **Workflow: `mergeToDevAndCreatePR()` Function**\n  - New function in `workflow\u002Fcore.ts`: ensures `dev` branch exists, merges task branch with `--no-ff`, pushes to origin, and creates\u002Fupdates GitHub PR asynchronously.\n  - Uses `getGitHubToken()` to retrieve active GitHub OAuth token from DB for push authentication and API calls.\n  - On merge conflict, aborts merge, returns to `main`, and reports conflicting files.\n  - Wired through `RuntimeContext` → `WorkflowCoreExports` → `workflow.ts` → `orchestration.ts`.\n\n- **Orchestration: GitHub-Aware Finalization**\n  - `finalizeApprovedReview()` now checks `project.github_repo` before merging.\n  - GitHub projects → `mergeToDevAndCreatePR()` with multilingual \"(dev merge + PR)\" note.\n  - Local projects → existing `mergeWorktree()` with \"(merged)\" note (unchanged).\n\n- **Subtask Batch Delegation: Worktree Enforcement Across Providers**\n  - Batched delegated subtasks now use isolated Git worktrees across all supported execution providers:\n    - CLI: `claude`, `codex`, `gemini`, `opencode`\n    - OAuth\u002FAPI: `copilot`, `antigravity`, `api`\n  - Delegated runs now execute from `agentCwd` (`worktreePath || projectPath`) consistently, not only for selected providers.\n  - For delegated Claude runs, `CLAUDE.md` is mirrored into the created worktree.\n  - CEO start notifications now include isolated branch context for delegated batch runs.\n  - HTTP\u002FAPI delegated runs now use a shared `getNextHttpAgentPid()` allocator to guarantee globally unique fake PID assignment across route\u002Forchestration modules.\n\n- **Delegated Task Cancellation Safety**\n  - `POST \u002Fapi\u002Ftasks\u002F:id\u002Fstop` now performs delegated-workflow cleanup when cancelling:\n    - clears delegation callback\u002Fmaps (`delegatedTaskToSubtask`, `subtaskDelegationCallbacks`, `crossDeptNextCallbacks`)\n    - clears per-parent queue flags (`subtaskDelegationDispatchInFlight`, `subtaskDelegationCompletionNoticeSent`) only when no other delegated child task is still active\n    - appends parent-task delegation-stop audit logs\n    - executes pending delegated batch callback before callback-map deletion so parent `runQueue(index+1)` continues even when a delegated HTTP\u002FAPI task is cancelled\n  - Linked subtasks are moved to `blocked` only for non-terminal states; already `done`\u002F`blocked`\u002F`cancelled` subtasks are preserved.\n  - Prevents stale callback continuation and queue-state leakage after cancelled delegated runs.\n  - HTTP-provider delegation callback now has a cancelled\u002Fpending guard to prevent late callback races from mutating subtask state after cancellation.\n  - Cancelled\u002Fskipped delegation callbacks now always call `originalCallback` (queue advancer) to prevent permanent stall of remaining department batch queues.\n  - `cancelDelegatedWorkflowState` fires the pending delegation callback before deleting it, ensuring the parent task's serial dispatch queue advances even on cancellation.\n\n- *","2026-02-22T14:43:35",{"id":190,"version":191,"summary_zh":192,"released_at":193},72382,"v1.1.5","# Claw-Empire v1.1.5 Release Notes\n\n- Release date: 2026-02-22\n- Scope: Task\u002Fproject creation UX overhaul, project-path safety tooling, orchestration worktree hardening (including non-Git project bootstrap), CLI spawn stability hardening, Decision Inbox review governance (round 1\u002F2), project-level decision consolidation gating\u002Faudit trail, and report popup de-duplication.\n\n## Highlights\n\n- **Project-Name Input + Click Dropdown**\n  - In `+ New Task`, project selection now starts with a text input (`Project Name`) and click-to-open suggestion list.\n  - Keyboard navigation (`ArrowUp\u002FArrowDown\u002FEnter\u002FEscape`) is supported for fast selection.\n\n- **Inline New-Project Branching**\n  - When no project matches typed input, the modal now shows `Create as a new project?` with a right-aligned high-contrast `Yes` action.\n  - The previous `No matching project` dead-end flow was replaced with a direct branch.\n\n- **Create Project + Task Together**\n  - In new-project mode, submitting the form now creates the project first and then the task in one flow.\n  - `Description` is required in this mode and is persisted as the project `core_goal`.\n  - New project path entry (`project_path`) is displayed only when new-project mode is enabled and is validated before submission.\n\n- **Desktop\u002FMobile Layout + Overflow Fix**\n  - Desktop: create modal expands to a 1:1 two-column layout when new-project mode is active, with animated right-side reveal for `Priority` and `Assignee`.\n  - Mobile: retains vertical scroll behavior to prevent clipping\u002Foverflow issues on long forms.\n  - Clicking outside the create modal no longer closes it, preventing accidental data loss during path editing.\n\n- **Draft Autosave and Recovery UX**\n  - Added local draft persistence (`climpire.taskCreateDrafts`) with autosave on explicit close (`X`, `Cancel`).\n  - Added `[Temp(n)]` submodal for inspecting, loading, and deleting temporary drafts.\n  - Replaced legacy confirmation dialogs with a styled recovery submodal.\n  - Recovery prompt now shows only the latest 3 drafts and allows selecting one before loading.\n\n- **Project Path Finder Suite (Task + Project Manager)**\n  - Added three path helper actions: `In-App Folder Browser`, `Auto Path Finder`, and OS-native `Manual Path Finder`.\n  - The same path helper controls are now available in Project Manager under `Project Path`.\n  - In Project Manager, path helper controls are visible only while creating\u002Fediting a project.\n\n- **Project Path Guardrails (API + DB Flow)**\n  - Added path utility APIs:\n    - `GET \u002Fapi\u002Fprojects\u002Fpath-check`\n    - `GET \u002Fapi\u002Fprojects\u002Fpath-suggestions`\n    - `GET \u002Fapi\u002Fprojects\u002Fpath-browse`\n    - `POST \u002Fapi\u002Fprojects\u002Fpath-native-picker`\n  - Added path normalization (`~`, `~\u002F...`, `\u002FProjects\u002F...`, `\u002Fprojects\u002F...`) for consistent matching.\n  - `POST \u002Fapi\u002Fprojects` and `PATCH \u002Fapi\u002Fprojects\u002F:id` now support `create_path_if_missing` with explicit confirmation flow.\n  - `POST \u002Fapi\u002Fprojects`, `PATCH \u002Fapi\u002Fprojects\u002F:id`, and `GET \u002Fapi\u002Fprojects\u002Fpath-check` now reject out-of-scope paths with `project_path_outside_allowed_roots` when path-root restrictions are configured.\n  - Duplicate project paths are now blocked at create\u002Fupdate time with explicit `project_path_conflict` responses.\n\n- **Path Helper Compatibility + Error UX Hardening**\n  - Task creation and Project Manager now handle missing helper APIs (`404`) gracefully and fall back to manual path entry.\n  - Legacy `alert\u002Fconfirm` prompts in task creation flow were replaced with in-modal feedback\u002Fsubmodals for a consistent UX.\n  - Headless or unavailable OS-native folder-picker environments now show explicit guidance and disable unavailable actions.\n\n- **Task API Project Mapping Hardening**\n  - Frontend now passes `project_id` and `project_path` during task creation.\n  - Backend now resolves a project by `project_path` when `project_id` is absent, improving project linkage reliability.\n\n- **CLI Spawn ENOENT Resilience**\n  - Runtime now appends platform-specific fallback bin directories to `PATH` before provider spawn.\n  - This reduces `spawn codex ENOENT` \u002F `spawn claude ENOENT` failures in mixed shell launch environments.\n\n- **Project-Scoped Worktree Enforcement (Orchestration Path)**\n  - Restored worktree creation in orchestration `startTaskExecutionForAgent`.\n  - Runtime now executes API\u002FHTTP\u002FCLI launches from `agentCwd` (`worktreePath || projectPath`) and logs isolated branch context.\n  - Claude runs now ensure `CLAUDE.md` inside worktree via `ensureClaudeMd(projectPath, worktreePath)`.\n  - If the target `project_path` is not a Git repo, runtime now auto-bootstraps one (`git init` + initial commit) before worktree creation.\n  - Project-path resolution now prefers canonical `projects.project_path` by `project_id` before task\u002Fmessage\u002Fcwd fallbacks.\n\n- **Decision Inbox Review Governance (Round 1 + Round 2)**\n  - Review rounds 1 and 2 now both pause in Decision Inbox when `revision_requested` is issued.\n  - CEO can cherry-pick multiple team-lead remediation ","2026-02-22T09:55:56",{"id":195,"version":196,"summary_zh":197,"released_at":198},72383,"v1.1.4","# Claw-Empire v1.1.4 Release Notes\n\n- Release date: 2026-02-22\n- Scope: Auto-update governance hardening for existing installs (legacy-safe defaults, runtime toggle control, and one-time upgrade notice).\n\n## Highlights\n\n- **Global Auto Update Toggle in Settings**\n  - Added `Auto Update (Global)` in **Settings > General**.\n  - This controls auto-update behavior at server scope (not per-user).\n\n- **Immediate Runtime Apply for Toggle Changes**\n  - Added `POST \u002Fapi\u002Fupdate-auto-config`.\n  - Toggle changes now apply at runtime without requiring process restart.\n\n- **Legacy Upgrade Detection + One-Time Notice**\n  - Added new settings keys:\n    - `autoUpdateEnabled`\n    - `autoUpdateNoticePending`\n  - During migration:\n    - existing installs (upgraded from `v1.1.3` or lower) are initialized with `autoUpdateEnabled=false` and `autoUpdateNoticePending=true`\n    - new installs are initialized with `autoUpdateEnabled=false` and `autoUpdateNoticePending=false`\n  - Existing users see a one-time in-app notice about the new Auto Update toggle.\n\n- **Safe-Mode Policy Hardening (Fail-Closed)**\n  - Added `channel_check_unavailable` guard.\n  - If release metadata is unavailable while channel policy must be enforced, apply is blocked (non-overridable).\n  - This prevents force-mode channel-policy bypass in metadata-loss scenarios.\n\n- **Status Payload Clarity**\n  - `\u002Fapi\u002Fupdate-auto-status` now reports:\n    - configured\u002Fdefault state\n    - settings state\n    - effective runtime state\n    - scheduler readiness\n\n## Changed Files (Major)\n\n### Frontend\n- `src\u002FApp.tsx`\n- `src\u002Fcomponents\u002FSettingsPanel.tsx`\n- `src\u002Fapi.ts`\n- `src\u002Ftypes\u002Findex.ts`\n\n### Backend\n- `server\u002Fmodules\u002Froutes\u002Fcore.ts`\n- `server\u002Fserver-main.ts`\n\n### Docs\n- `README.md`\n- `README_ko.md`\n- `README_jp.md`\n- `README_zh.md`\n- `docs\u002Freleases\u002FREADME.md`\n- `docs\u002Freleases\u002Fv1.1.4.md`\n\n## Verification\n\n- `pnpm test`\n  - web: 11 passed\n  - api: 29 passed\n\n## Notes\n\n- Existing installations remain safe by default (`autoUpdateEnabled=false`) after upgrade.\n- Operators can enable auto-update from Settings when ready.\n","2026-02-22T03:35:23",{"id":200,"version":201,"summary_zh":202,"released_at":203},72384,"v1.1.3","# Claw-Empire v1.1.3 Release Notes\n\n- Release date: 2026-02-21\n- Scope: Project-centric workflow rollout (Project Manager + directive\u002Ftask project binding), OpenClaw upgrade enforcement hardening, and light-mode action-button visibility polish.\n\n## Highlights\n\n- **Project-First Chat Flow (Task\u002FDirective)**\n  - `ChatPanel` now requires a project branch before sending task instructions:\n    - existing project vs new project selection\n    - existing project list: latest 10, selectable by number (`1-10`) or project name\n    - new project creation: `name + project_path + core_goal`\n  - For `$` directives, the directive text is auto-used as the new project's `core_goal`.\n  - Confirmation step now shows project metadata + round-goal preview before send.\n\n- **Project Manager in Task Board**\n  - Added **Project Manager** button next to `New Task` in the work-management header.\n  - Added\u002Fexpanded project CRUD UX:\n    - project search + pagination\n    - create\u002Fedit\u002Fdelete project\n    - right-side project info panel with mapped task\u002Freport history\n\n- **Mapped Task\u002FReport History in Project Manager**\n  - Task history is grouped by root task with child subtask counts.\n  - Clicking a task-history card opens detailed report modal.\n  - Report modal includes:\n    - agent avatar + owner metadata\n    - planning-lead consolidated summary\n    - team tabs, linked subtasks, progress logs\n    - paginated source documents for long outputs\n\n- **Server-Side Project Linkage Hardening**\n  - Directive\u002Ftask delegation now persists `project_id` + `project_path` + `project_context` into task lifecycle.\n  - Round-goal text generation now includes project core goal context.\n  - Cross-department collaboration tasks inherit parent project linkage.\n  - Added fallback project resolution in delegation flow:\n    - by `project_id`\n    - by normalized `project_path` candidates\n    - by `project_context` hints (including existing-project latest fallback)\n\n- **OpenClaw AGENTS Upgrade Enforcement (Default ON)**\n  - `\u002Fapi\u002Fdirectives` and `\u002Fapi\u002Finbox` now enforce project binding for directives by default.\n  - Missing required project binding on directives returns:\n    - `HTTP 428`\n    - `error=agent_upgrade_required`\n    - install metadata (installer files, absolute installer paths, target AGENTS path, recommended command, user prompt)\n  - Enforcement toggle for temporary debugging:\n    - `ENFORCE_DIRECTIVE_PROJECT_BINDING=0`\n\n- **Light-Mode Visibility Fix**\n  - Improved contrast of the TaskBoard **Project Manager** action button in light theme.\n  - Added dedicated button class and light\u002Fdark hover styles to avoid washed-out appearance.\n\n- **Browser Stability & Memory Optimization (Chrome STATUS_ACCESS_VIOLATION fix)**\n  - **WebSocket Broadcast Batching** — High-frequency events (`cli_output` 250ms, `subtask_update` 150ms) are now batched with a cooldown window and flushed together, reducing browser-side message flooding. Capped at 60 queued items per batch with try\u002Fcatch fault isolation in flush loop.\n  - **Tab Visibility-Aware Polling** — All `setInterval` polling (App 5s, TerminalPanel 1.5s, AgentStatusPanel 5s, usePolling hook) now pauses when the browser tab is hidden via `visibilitychange` event. Polling resumes immediately with a fresh sync when the tab regains focus.\n  - **GPU Memory Leak Fix (Pixi.js)** — Added `destroyNode()` function that calls `.destroy({ children: true })` for one-shot sprites (speech bubbles, completed delivery animations). Reusable sprites (scene-rebuild preserved deliveries) continue to use the original `detachNode()` to avoid breaking in-flight animations.\n  - **State Array GC Pressure Reduction** — Replaced double-spread `appendCapped` with `slice` + `push` pattern, eliminating redundant intermediate array allocations on every WebSocket message across 5 state arrays (messages 600, subtasks 2000, subagents 600, deliveries 240, CEO calls 480).\n  - **ChatPanel Message Filter Memoization** — Wrapped `visibleMessages` computation in `useMemo` with stable primitive dependencies (`selectedAgentId`, `selectedTaskId`), preventing re-filtering of up to 600 messages on every render cycle.\n\n- **Task Creation Agent Assignment Fix**\n  - Task creation form now passes `assigned_agent_id` through to the `POST \u002Fapi\u002Ftasks` endpoint. Previously the selected agent in the \"New Task\" modal was silently discarded, causing newly created tasks to always appear as unassigned in the inbox.\n\n- **Agent-Required Run Guard UX**\n  - Clicking the \"Run\" button on a task card without an assigned agent now shows an inline validation instead of a console-only `no_agent_assigned` error: the AgentSelect dropdown receives a red ring border with a shake animation, and a \"Please assign an agent!\" message appears below it for 3 seconds. Selecting an agent immediately clears the warning.\n\n- **Dashboard Header Action Buttons Redesign**\n  - Refactored header action buttons into `header-action-btn-primary` (blue gradient, emphasized CTA for Tasks) and `header-action-b","2026-02-21T17:29:59",{"id":205,"version":206,"summary_zh":207,"released_at":208},72385,"v1.1.2","# Claw-Empire v1.1.2 Release Notes\n\n- Release date: 2026-02-21\n- Scope: Design system unification for dark\u002Flight themes, office visual polish, and readability improvements in learning flows.\n\n## Highlights\n\n- **Theme System + Toggle**\n  - Added app-level `ThemeProvider` with persistent `dark\u002Flight` mode storage.\n  - Added top-bar theme toggle button for instant switching.\n  - Kept language preference stable across server restarts by tightening auto-language assignment conditions.\n\n- **Design Tokens and Global Light-Mode Mapping**\n  - Introduced semantic theme tokens (`--th-*`) for background, surface, border, text, modal overlay, and scrollbar.\n  - Applied broad light-mode token mapping to Tailwind utility classes for consistent contrast behavior.\n\n- **Dashboard \u002F Sidebar \u002F Terminal Visual Refresh**\n  - Migrated key UI surfaces to theme-token-based colors for better cross-theme readability.\n  - Improved typography contrast for headings, labels, status chips, and metadata in light mode.\n  - Standardized panel backgrounds and borders to reduce washed-out UI states.\n\n- **Office View Theme Adaptation**\n  - Added dedicated light\u002Fdark palettes for office rendering (departments, CEO office, break room, hallway, shell).\n  - Office scene now adapts room\u002Ffurniture\u002Fbase ambience by active theme for clearer visual separation.\n\n- **Learning Modal + Unlearn Readability Fix (Light Mode)**\n  - Improved contrast for Skills Library learning popup text\u002Fbackground.\n  - Enhanced `Unlearn` controls and unlearn-center effect card readability in Skill Memory\u002FHistory sections.\n  - Reduced pastel blur perception by strengthening actionable text and button states.\n\n- **Office Screenshot Asset Update (Text-only Note)**\n  - Updated `Sample_Img\u002FOffice.png` to the latest office design snapshot.\n  - This release note intentionally keeps screenshot changes as text-only documentation (no embedded comparison image).\n\n## Changed Files (Major)\n\n### Frontend\n- `src\u002FApp.tsx`\n- `src\u002Fmain.tsx`\n- `src\u002FThemeContext.tsx`\n- `src\u002Findex.css`\n- `src\u002Fcomponents\u002FOfficeView.tsx`\n- `src\u002Fcomponents\u002FDashboard.tsx`\n- `src\u002Fcomponents\u002FSidebar.tsx`\n- `src\u002Fcomponents\u002FTerminalPanel.tsx`\n- `src\u002Fcomponents\u002FSkillsLibrary.tsx`\n- `src\u002Fcomponents\u002FSkillHistoryPanel.tsx`\n\n### Docs\n- `docs\u002Freleases\u002FREADME.md`\n- `docs\u002Freleases\u002Fv1.1.2.md`\n- `README.md`\n- `README_ko.md`\n- `README_jp.md`\n- `README_zh.md`\n\n## Notes\n\n- This release focuses on visual consistency and readability; behavior changes are limited to theme toggling and language\u002Ftheme persistence.\n- Office image refresh is documented as a text note per release policy for this update.\n","2026-02-21T09:30:22",{"id":210,"version":211,"summary_zh":212,"released_at":213},72386,"v1.1.1","# Claw-Empire v1.1.1 Release Notes\n\n- Release date: 2026-02-21\n- Scope: Office experience overhaul, room-theme persistence\u002Fdefault rollout, report readability upgrades, and post-release hotfix stabilization.\n\n## Highlights\n\n- **Office Manager + Room Theme Control**\n  - Added `Office Manager` action in top bar and a dedicated side panel for room color control.\n  - Theme editing scope now includes all departments plus `CEO Office` and `Break Room`.\n  - Added real-time room highlight while changing room settings so users can see exactly which area is being edited.\n\n- **Smarter Theme Presets (Tone-first)**\n  - Presets now operate as tone presets derived from current main color.\n  - Selecting a preset adjusts tone only and keeps the main color stable.\n  - Preset palette automatically recalculates against the current main color for consistent tonal recommendations.\n\n- **CEO\u002FBreak Room Visual Clarity**\n  - Improved `CEO OFFICE` label layering and contrast so text stays readable above decorative elements.\n  - Enhanced break-room status readability (`Break Room` away label) with stronger contrast treatment.\n\n- **Report Viewer Pagination**\n  - Added paginated document browsing in task report popup (`Prev`\u002F`Next` + page indicator).\n  - Large document bundles now load in smaller chunks for better scanability during review.\n\n- **Theme Persistence + Deployment Defaults**\n  - Room themes are now persisted in both local storage and backend settings (`roomThemes`).\n  - Added automatic sync flow to backfill DB theme settings when only local values are present.\n  - Added server seed default for `roomThemes`, enabling new deployments to boot with curated office colors.\n\n- **Hotfix: In-progress Recovery + Sync Load Control (2026-02-21)**\n  - Prevented false watchdog recovery to `inbox` when an active task still has recent terminal\u002Flog activity.\n  - Added coalesced live task sync in the app to avoid WS-triggered `\u002Fapi\u002Ftasks` request storms (`ERR_INSUFFICIENT_RESOURCES`).\n\n## Example Screenshots\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fv1.1.1\u002FSample_Img\u002FOffice.png\" alt=\"Office view with room themes\" width=\"49%\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fv1.1.1\u002FSample_Img\u002FOffice_Manager.png\" alt=\"Office manager panel\" width=\"49%\" \u002F>\n\u003C\u002Fp>\n\n## Changed Files (Major)\n\n### Frontend\n- `src\u002FApp.tsx`\n- `src\u002Fcomponents\u002FOfficeView.tsx`\n- `src\u002Fcomponents\u002FOfficeRoomManager.tsx`\n- `src\u002Fapi.ts`\n- `src\u002Ftypes\u002Findex.ts`\n- `package.json`\n\n### Backend\n- `server\u002Fserver-main.ts`\n- `server\u002Fmodules\u002Flifecycle.ts`\n\n### Docs\n- `docs\u002Freleases\u002FREADME.md`\n- `docs\u002Freleases\u002Fv1.1.1.md`\n- `README.md`\n- `README_ko.md`\n- `README_jp.md`\n- `README_zh.md`\n\n## Notes\n\n- Default deployment themes are now controlled through `settings.roomThemes`.\n- Existing users keep local custom themes; missing DB values are backfilled automatically.\n","2026-02-21T07:22:04",{"id":215,"version":216,"summary_zh":217,"released_at":218},72387,"v1.1.0","# Claw-Empire v1.1.0 Release Notes\n\n- Release date: 2026-02-21\n- Scope: PR #19 merge consolidation, Task Board visibility controls expansion, and Skills Learn\u002FUnlearn workflow hardening across UI and backend.\n\n## Highlights\n\n- **Task Board Hide + View Controls**\n  - Added a toolbar `Hide` button to the left of `New Task` for quick status-based hiding.\n  - Bulk hide now supports `Done`, `Pending (Hold)`, and `Cancelled` statuses in one action.\n  - Added a compact `Active \u002F All` visibility toggle (localized as `진행중 \u002F 모두보기`) so hidden tasks can be included or excluded instantly.\n  - Hidden state remains persisted and is filtered safely when task statuses change.\n\n- **Skills Learn UX Upgrades**\n  - Skill cards now display up to four learned providers in a compact 2x2 indicator (CLI icon + representative agent avatar).\n  - Learn modal shows `Learned` for already learned providers (without trailing period).\n  - Already learned providers are unchecked by default to prevent duplicate learning runs.\n  - Modal close\u002FESC protection while learning is running to prevent accidental interruption.\n\n- **Skills Memory + Unlearn Experience**\n  - Learning Memory tab now shows the latest 3 records by default with expand\u002Fcollapse for full history.\n  - Added unlearn actions in both history and available-skill lists.\n  - Added playful unlearn feedback animation (pot\u002Fhammer hit + `Bonk!` center overlay).\n  - Unlearn refresh sync keeps skills cards and memory lists aligned after removal.\n\n- **Cross-Platform Unlearn Execution Hardening**\n  - Added\u002Fupdated `POST \u002Fapi\u002Fskills\u002Funlearn` flow with provider\u002Frepo validation and structured CLI attempt metadata.\n  - Uses platform-aware command dispatch (`npx` on macOS\u002FLinux, `npx.cmd` on Windows).\n  - Adds filesystem-based verification for linked skill state before considering unlearn complete.\n  - Deletes succeeded learning-history records only after successful CLI unlearn outcome.\n\n- **Documentation Alignment (CLI\u002FOAuth\u002FAPI)**\n  - Updated README language packs (EN\u002FKO\u002FJP\u002FZH) so intro\u002Fprovider sections match current multi-provider architecture.\n  - Clarified that skills learn\u002Funlearn automation currently targets CLI-capable providers.\n\n- **Post-Release Operational Patch (2026-02-21)**\n  - Added in-app update notification banner that checks GitHub latest release and prompts users to pull updates.\n  - Banner guidance is OS-aware:\n    - Windows PowerShell: `git pull; pnpm install`\n    - macOS\u002FLinux shell: `git pull && pnpm install`\n  - Added optional runtime controls for update check behavior:\n    - `UPDATE_CHECK_ENABLED`\n    - `UPDATE_CHECK_REPO`\n    - `UPDATE_CHECK_TTL_MS`\n    - `UPDATE_CHECK_TIMEOUT_MS`\n\n## Example Screenshots (Skills Learn\u002FRemove)\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fv1.1.0\u002FSample_Img\u002FSkills_Learning_Memory.png\" alt=\"Skills learning memory\" width=\"32%\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fv1.1.0\u002FSample_Img\u002FSkill_Learn.png\" alt=\"Skill learn modal\" width=\"32%\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FGreenSheep01201\u002Fclaw-empire\u002Fv1.1.0\u002FSample_Img\u002FSkill_Remove.png\" alt=\"Skill remove action\" width=\"32%\" \u002F>\n\u003C\u002Fp>\n\n## Changed Files (Major)\n\n### Frontend\n- `src\u002Fcomponents\u002FTaskBoard.tsx`\n- `src\u002Fcomponents\u002FSkillsLibrary.tsx`\n- `src\u002Fcomponents\u002FSkillHistoryPanel.tsx`\n- `src\u002Fcomponents\u002FSkillsLibrary.esc-close.test.tsx`\n- `src\u002Fcomponents\u002FSkillHistoryPanel.unlearn.test.tsx`\n- `src\u002Fapi.ts`\n- `src\u002Findex.css`\n- `src\u002FApp.tsx`\n\n### Backend\n- `server\u002Fmodules\u002Froutes\u002Fops.ts`\n- `server\u002Fmodules\u002Froutes\u002Fcore.ts`\n\n### Docs\n- `docs\u002Freleases\u002FREADME.md`\n- `docs\u002Freleases\u002Fv1.1.0.md`\n- `README.md`\n- `README_ko.md`\n- `README_jp.md`\n- `README_zh.md`\n\n## Notes\n\n- Task bulk-hide targets are mapped to status values `done`, `pending`, and `cancelled`.\n- If a provider has no locally verifiable skill directory, unlearn can return a skipped success with explanatory CLI metadata.\n- `skills-lock.json` remains tracked by design for skill-state coordination.\n","2026-02-21T04:15:50",{"id":220,"version":221,"summary_zh":222,"released_at":223},72388,"v1.0.9","# Claw-Empire v1.0.9 Release Notes\n\n- Release date: 2026-02-20\n- Scope: Report-request workflow hardening for PPT generation, single-pass design checkpoint flow, terminal UX\u002Flive-hint improvements, terminal history retention, and multilingual documentation updates.\n\n## Highlights\n\n- **Report Request Workflow (PPT\u002FMD) Improvements**\n  - Added explicit report-flow markers in report task descriptions to control orchestration state transitions.\n  - Added stricter PPT workflow guidance: web research first, mandatory `ppt_team_agent` skill paths, and pinned submodule usage.\n  - Added HTML-first PPT flow guidance and explicit final regeneration rule after design handoff.\n  - Added report-request routing preference for Claude Code-capable assignees with department priority.\n\n- **PPT Design Checkpoint Pipeline (One Pass)**\n  - Added one-pass design checkpoint delegation to Design team for PPT report tasks.\n  - Parent PPT task now pauses to `pending` during checkpoint, then resumes original assignee for final regeneration.\n  - After final regeneration, report tasks close directly without additional review meeting (as requested for documentation\u002Freport workflows).\n  - Non-PPT report\u002Fdocumentation tasks also skip review meeting and close directly on successful completion.\n\n- **Terminal UX and Progress Visibility**\n  - Terminal pretty mode now keeps human-readable output while exposing tool-progress hints separately.\n  - Added stream parser support for Claude `stream_event` tool-use\u002Finput-json deltas so hints appear during long tool executions.\n  - Added persistent bottom hint panel above status bar (tool-in-progress + recent hint lines + OK summaries).\n  - Progress hints are now returned even when terminal text exists (previously hidden when text was non-empty).\n\n- **Terminal History Retention**\n  - Changed task-run log streams from overwrite (`w`) to append (`a`) for CLI\u002FOAuth\u002FAPI task execution paths.\n  - Added per-run log separators (`task run start ...`) so repeated runs keep readable session boundaries.\n  - Increased terminal tail retrieval limits in API\u002FUI for better long-run trace visibility.\n\n- **Documentation \u002F README Updates**\n  - Added new screenshot examples for report detail and PPT generation output (`Report.png`, `PPT_Gen0\u002F1`).\n  - Added `docs\u002Freports\u002FSample_Slides` source links (HTML\u002FCJS\u002FMJS) and `docs\u002Freports\u002FPPT_Sample.pptx` reference links.\n  - Added explicit usage instruction in docs: **Chat window > Report Request button** (Korean: **채팅창 > 보고 요청 버튼**).\n  - Updated multilingual README release references and badges to `v1.0.9`.\n\n## Changed Files (Major)\n\n### Backend\n- `server\u002Fmodules\u002Froutes\u002Fcollab\u002Fcoordination.ts`\n- `server\u002Fmodules\u002Fworkflow\u002Forchestration.ts`\n- `server\u002Fmodules\u002Froutes\u002Fops.ts`\n- `server\u002Fmodules\u002Fworkflow\u002Fagents.ts`\n- `server\u002Fmodules\u002Fworkflow\u002Fagents\u002Fproviders.ts`\n\n### Frontend\n- `src\u002Fcomponents\u002FTerminalPanel.tsx`\n- `src\u002Fapi.ts`\n\n### Docs \u002F Assets\n- `README.md`\n- `README_ko.md`\n- `README_jp.md`\n- `README_zh.md`\n- `docs\u002Freleases\u002FREADME.md`\n- `docs\u002Freports\u002FSample_Slides\u002F*`\n- `docs\u002Freports\u002FPPT_Sample.pptx`\n- `Sample_Img\u002FReport.png`\n- `Sample_Img\u002FPPT_Gen0.png`\n- `Sample_Img\u002FPPT_Gen1.png`\n\n## Notes\n\n- Report\u002FPPT workflow now assumes report initiation via **chat window report request button**.\n- Terminal hint panel is UI-only and excluded from generated report content.\n- Existing historical logs that were overwritten in older versions cannot be reconstructed retroactively.\n","2026-02-20T13:31:49",{"id":225,"version":226,"summary_zh":227,"released_at":228},72369,"v2.0.4","# Claw-Empire v2.0.4 发行说明\n\n- 发布日期：2026年3月12日\n- 范围：一流的 Docker 部署支持、过时工作代理恢复、官方直接 API 预设入职流程、Kimi Code 提供商支持，以及在所有已初始化办公包中默认分配开发 API。\n\n## 亮点\n\n### 1. Docker 部署现为一流路径\n\n- 新增面向生产的 `Dockerfile`、`.dockerignore` 和 `docker-compose.yml`。\n- 容器运行时现在使用非 root 用户，并采用标准化的可写数据存储位置。\n- 更新了运行时路径解析，使数据库和日志路径在 Docker 部署中能够正确工作。\n- 在英文、韩文、日文和中文版本的 README 中添加了部署指南。\n\n### 2. 过时的 `working` 代理现可自动恢复\n\n- 启动和生命周期扫描现在会检测那些虽然当前任务缺失或不再处于 `in_progress` 状态，但仍被标记为 `working` 的代理。\n- 这些代理将被重置为 `idle` 状态，并将 `current_task_id` 设置为 `NULL`。\n- 结果是：服务器重启和中断的运行不会再在 UI 中留下误导性的“仍在工作”代理。\n\n### 3. 官方直接 API 预设减少手动设置的繁琐\n\n- **设置 > API** 现在包括以下官方预设：\n  - `OpenCode Go (OpenAI)`\n  - `OpenCode Go (Anthropic)`\n  - `Bailian Coding Plan (OpenAI)`\n  - `Bailian Coding Plan (Anthropic)`\n- 预设现在：\n  - 锁定并管理预期的 Base URL\n  - 立即填充回退模型列表\n  - 保持刷新\u002F重试的明确性，而不是在失败后默默进入重试循环\n  - 直接在提供商卡片上显示预设身份\n- 现有的提供商卡片模型搜索功能仍然可用，因此即使缓存了大量模型列表，也可以轻松筛选后再进行分配。\n\n### 4. Kimi Code 现已被视为一流提供商\n\n- Kimi Code 现在通过 CLI 执行路径与现有的本地编码提供商一起得到支持。\n- 集成已在以下方面完成：\n  - 提供商选择和显示标签\n  - 任务执行和提供商验证\n  - 提示技能渲染\n  - 技能学习\u002F遗忘的提供商路由\n  - 视频预生产环境的重新部署启动\n  - 现有数据库模式和运行时迁移路径中的提供商检查\n- 结果是：Kimi 不再仅仅是标签层面的部分新增，而是从执行到技能流程端到端地被完整集成。\n\n### 5. API 模型分配现以开发模式开始，并包含已初始化的办公包\n\n- 分配流程现在始终加载 `development` 办公作为默认基线。\n- 如果用户已经完成了其他办公包的初始设置，并且这些包已经被注入到运行时状态中，那么它们的代理和部门也会出现在分配模态框中。\n- 办公包部分现在被安全地分组，因此重复使用相同部门 ID 的办公包不会再在模态框中相互合并。\n- 结果是：默认的开发分配仍然可预测，而已经初始化的办公包也可以从相同的设置流程中直接获得 API 模型映射。\n\n### 6. 本地 E","2026-03-12T17:02:57",{"id":230,"version":231,"summary_zh":232,"released_at":233},72370,"v2.0.3","# Claw-Empire v2.0.3 发行说明\n\n- 发布日期：2026年3月8日\n- 范围：精选 PR #54 的修复内容、任务工作树验证可见性、报告可靠性修复，以及可选的自托管操作参考。\n\n## 亮点\n\n### 1. 合并前最终分支验证结果现可查看\n\n- 新增 `GET \u002Fapi\u002Ftasks\u002F:id\u002Fverify-commit` 接口，允许应用在合并前检查任务的工作树状态。\n- 该接口会评估提交数量、更改文件和未提交文件，并返回以下判定结果：\n  - `ok`\n  - `no_worktree`\n  - `no_commit`\n  - `dirty_without_commit`\n  - `commit_but_no_code`\n- 内部辅助文件（如 `.claude\u002Fskills`）将被排除在代码变更判定之外，以避免非代码支持文件导致误判。\n\n### 2. 差异模态现显示最终分支验证结果\n\n- 任务差异模态现在会在显示 Git 差异的同时加载工作树验证信息。\n- 您可以看到：\n  - 最终验证结果\n  - 比较基准引用\n  - 提交数量\n  - 更改文件\n  - 未提交文件数量\n- 结果：合并或丢弃的决策现在基于明确的工作树证据，而不再仅依赖原始的差异文本。\n\n### 3. 完成报告现保留最终验证证据\n\n- 手动合并流程会在合并前追加一条系统日志，例如 `Final branch verification: passed (...)`。\n- 完成报告弹窗会在计划摘要视图中展示这些验证日志。\n- 结果：已完成的任务报告现在会保留合并前已对最终分支进行检查的证明。\n\n### 4. 报告头像不再因缺少活跃代理而回退为表情符号\n\n- 报告历史和任务完成弹窗中的头像不再仅依赖当前活跃的 office-pack 代理列表。\n- 当报告引用的分配人不在当前 `agents` 数组中时，UI 现在会根据报告负载构建一个报告范围内的备用代理，并仍渲染精灵头像。\n- 结果：即使活跃代理名单发生变化，已完成的报告行和弹窗仍会显示代理头像，而不会降级为表情符号。\n\n### 5. 员工状态审计清理工具\n\n- 新增 `scripts\u002Fcleanup-staff.mjs` 工具。\n- 该工具可以：\n  - 将处于 `break` 状态的员工重置为 `idle`\n  - 报告角色分布\n  - 检测重复姓名\n- 如果提供了 `DB_PATH`，则优先使用该路径，使其可在不同本地环境中使用。\n\n### 6. 可选的自托管部署参考\n\n- 在 `deploy\u002F` 目录下新增了可选的部署参考文件：\n  - `deploy\u002FREADME.md`\n  - `deploy\u002F.env.production.template`\n  - `deploy\u002Fclaw-empire@.service`\n  - `deploy\u002Fnginx\u002Fclaw-empire.conf`\n- 这些是针对自托管部署的参考模板，并非必需的运行时迁移内容。\n\n## PR 归属\n\n- 本次发布包含了来自 `PR #54` 的部分修复内容，仅限于符合当前产品架构的独立运营和文档改进方案。\n- 其中不包含 PR #54 中更广泛的任务模型、管理控制台、本地服务器或工作阶段相关提案。\n\n## 本次更新的文件\n\n- `deploy\u002F.env.production.","2026-03-07T18:11:28",{"id":235,"version":236,"summary_zh":237,"released_at":238},72371,"v2.0.2","# Claw-Empire v2.0.2 发行说明\n\n- 发布日期：2026年3月7日\n- 范围：扩展 CI\u002FE2E 覆盖、更新面向贡献者的 API 文档以保持一致，以及为主分支实现可重复的 OpenAPI 验证。\n\n## 亮点\n\n### 1. CI 现在会阻止 OpenAPI 合约漂移\n\n- `test:ci` 现在会在执行 E2E 测试之前运行 `openapi:check`。\n- 这样一来，未记录或过时的 OpenAPI 路径将在 CI 中直接失败，而不是等到后续的手动审查阶段才被发现。\n- 结果：API 文档、生成的 OpenAPI 定义以及实际部署的路由现在作为一个统一的发布门禁进行检查。\n\n### 2. 新增针对运营 API 路径的 CI E2E 测试覆盖\n\n- 为执行控制和编排关键路径新增了 CI 专用的 E2E 测试覆盖：\n  - `POST \u002Fapi\u002Ftasks\u002F:id\u002Frun`\n  - `POST \u002Fapi\u002Ftasks\u002F:id\u002Fstop`\n  - `POST \u002Fapi\u002Ftasks\u002F:id\u002Finject`\n  - `POST \u002Fapi\u002Ftasks\u002F:id\u002Fresume`\n  - `GET \u002Fapi\u002Ftasks\u002F:id\u002Fterminal`\n  - `GET \u002Fapi\u002Ftasks\u002F:id\u002Fmeeting-minutes`\n- 为 `POST \u002Fapi\u002Finbox` 添加了指令 Webhook 的测试覆盖，以便在 CI 中验证任务路由和公告录入流程。\n- 增加了项目路径和诊断相关接口的测试覆盖，包括：\n  - `GET \u002Fapi\u002Fprojects\u002Fpath-check`\n  - `GET \u002Fapi\u002Fprojects\u002Fpath-suggestions`\n  - `GET \u002Fapi\u002Fprojects\u002Fpath-browse`\n  - `GET \u002Fapi\u002Fcli-status`\n  - `GET \u002Fapi\u002Fcli-usage`\n  - API 提供商预设及 CRUD 路由。\n\n### 3. 文档和公共 API 表面现已在 CI 中得到验证\n\n- 新增了对实时文档路由的 CI 检查：\n  - `GET \u002Fapi\u002Fdocs`\n  - `GET \u002Fapi\u002Fdocs\u002Fswagger-bootstrap.js`\n  - `GET \u002Fapi\u002Fopenapi.json`\n- 对面向贡献者的工具类和运维类路由也增加了公共表面验证，从而在检测路由回归的同时捕捉文档内容的偏差。\n- 目前的测试覆盖已拆分为专门的 CI 规范，分别用于：\n  - 运营 API 流程\n  - 文档与运维路由的可用性\n  - 公共 API 表面的预期行为。\n\n### 4. API 文档已恢复至与路由一致的状态\n\n- 更新了 `docs\u002Fapi.md` 和 `docs\u002Fopenapi.json` 文件，以涵盖那些此前落后于实现进度的面向贡献者的路由。\n- 新增或澄清的文档内容涉及以下类别：\n  - 任务报告与任务执行控制\n  - 项目详情、分支及路径辅助路由\n  - 子任务与代理创建流程\n  - 公告与指令管理\n  - GitHub 状态、仓库及克隆相关辅助路由\n  - OAuth 状态与账号生命周期路由\n  - 技能学习、历史记录及自定义路由\n  - 精灵图处理与注册\n  - 自动更新状态、应用及配置相关路由\n- 结果：主分支上的文档现已准确描述了贡献者和 CI 所使用的实际 API 表面。\n\n### 5. E2E 收件箱验证不再依赖本地密钥\n\n- CI 中的收件箱 Webhook 测试覆盖现在使用专为 E2E 测试设计的密钥，而非开发人员本地 `.env` 文件中的密钥。\n- 这样既能确保测试在 CI 环境中可复现，又能防止真实的本地 Webhook 密钥意外泄露到受版本控制的测试用例中。\n\n## 发布后仍包含在 v2.0.2 中的补充内容\n\n### 6. PR #49 后续：Discord 频道文档与测试清理\n\n- 从生成的 OpenAPI 输出中移除了 `POST \u002Fapi\u002Fmessenger\u002Fdiscord\u002Fchannels` 接口中不存在的 `409` 响应。\n- 添加了 `mockReset()","2026-03-07T15:40:17",{"id":240,"version":241,"summary_zh":242,"released_at":243},72372,"v2.0.1","# Claw-Empire v2.0.1 发行说明\n\n- 发布日期：2026年3月3日\n- 范围：Discord 直接消息双向可靠性更新，以及办公套件的补水感知部门优先级和首次安装引导安全机制。\n\n## 附加更新（2026年3月3日）\n\n### 0. 办公套件部门优先级现已具备补水感知能力\n\n- 对于非开发类办公套件，部门合并优先级现在取决于补水状态：\n  - 补水前：优先显示套件配置文件标签\u002F图标。\n  - 补水后：数据库元数据成为事实来源。\n- 这一调整可防止首次安装用户在数据库完成补水之前丢失套件配置的默认设置。\n\n### 0.1 UI 配线已更新以实现确定性行为\n\n- `AppMainLayout` 现在会在解析部门显示之前计算 `isHydratedOfficePack`。\n- `resolvePackDepartmentsForDisplay` 接收 `preferPackProfile: !isHydratedOfficePack` 参数，使过渡过程更加明确且具有确定性。\n\n### 0.2 增加了对合并语义的回归测试覆盖\n\n- 新增测试覆盖范围包括：\n  - 补水前的套件配置文件优先级；\n  - 补水后的数据库优先级；\n  - 非开发类套件中对外部套件种子代理的过滤逻辑。\n\n## 亮点\n\n### 1. 通过令牌自动发现 Discord 频道\n\n- 新增 `POST \u002Fapi\u002Fmessenger\u002Fdiscord\u002Fchannels` 接口，支持直接通过 Bot 令牌解析 Discord 频道。\n- 令牌规范化现同时接受原始令牌和 `Bot \u003Ctoken>` 格式的输入。\n- 发现流程依次读取：\n  - `\u002Fusers\u002F@me\u002Fguilds`（服务器列表）；\n  - `\u002Fguilds\u002F:id\u002Fchannels`（每个服务器下的频道列表）。\n- 频道候选列表将筛选出支持文本功能的 Discord 类型（`0`、`5`、`10`、`11`、`12`），并进行去重和排序，按服务器名称顺序排列，以确保 UI 渲染的一致性。\n- 错误映射现已明确：\n  - `discord_token_required`（400）；\n  - `discord_auth_failed`（401\u002F403）；\n  - `discord_rate_limited`（429）；\n  - `discord_channel_lookup_failed`（502）。\n\n### 2. Discord 会话设置的 UX 升级\n\n- 在“消息中心设置 > 添加\u002F编辑聊天”中，Discord 令牌输入现会触发带有防抖功能的频道查找。\n- 新增自动检测的 Discord 频道选择器：\n  - 可选格式为：“服务器 \u002F #频道 (channelId)”；\n  - 选择后会自动填充 `targetId` 字段，并在显示名称为空时使用默认值。\n- 针对不同语言环境（韩语、英语、日语、中文）增加了查找状态的多语言提示：\n  - 加载指示器；\n  - 自动加载的频道数量；\n  - 无可用频道的提示信息（包含权限或服务器成员资格相关说明）；\n  - 详细的认证、限流及失败错误信息。\n\n### 3. 增加 Discord 接收器（入站消息转发至收件箱）\n\n- 新增 Discord 轮询接收器运行时模块 (`server\u002Fmessenger\u002Fdiscord-receiver.ts`)，并将其接入生命周期启动\u002F停止流程。\n- 接收器从设置中解析启用的 Discord 会话路由，并使用各路由独立的游标轮询频道消息。\n- 人工发送的文本消息将连同路由上下文转发至 `\u002Fapi\u002Finbox`：\n  - `source`：`discord`；若使用多个令牌，则会附带令牌提示。\n  - `chat`：`channel:\u003CchannelId>`。\n  - `author`：经过规范化的 Discord 显示名或用户身份信息。\n- 机器人生成的消息以及内容为空的消息","2026-03-03T04:45:36",{"id":245,"version":246,"summary_zh":247,"released_at":248},72373,"v2.0.0","# Claw-Empire v2.0.0 发行说明\n\n- 发布日期：2026年2月28日\n- 范围：工作流包\u002F办公包的运营上线，以及直接消息路由稳定性更新，涵盖基于包的办公配置、坐席\u002F部门同步、多令牌消息隔离，以及收件箱\u002F会话处理的强化。\n\n## 亮点\n\n### 1. 工作流包平台上线\n\n- 新增了一流的工作流包定义和运行时 API，用于支持感知包的编排。\n- 内置的包键现在包括：\n  - `development`\n  - `report`\n  - `web_research_report`\n  - `novel`\n  - `video_preprod`\n  - `roleplay`\n- 新增了 `\u002Fapi\u002Fworkflow-packs` 路由及模式和运行时支持，用于管理包元数据和启用状态。\n- 消息机器人会话设置现支持每会话的 `workflowPackKey`，从而实现基于渠道-会话的任务风格路由。\n\n### 2. 办公包 UX 与真实数据隔离\n\n- 将办公包选择器移至顶部导航栏，以便更快地切换上下文，同时保持办公画布的焦点不变。\n- 添加了针对不同包的办公预设（房间主题、部门命名、员工命名\u002F角色种子），并配有多语言标签。\n- 对非开发包实现了包级配置文件隔离，使每个包都拥有独立的坐席\u002F部门数据集。\n- 坐席\u002F部门管理现在会在隔离的包中对所选的包配置执行 CRUD\u002F重新排序操作，而开发包则继续保持现有的数据库支持行为。\n- 修复了办公头像渲染的一致性问题，确保非开发包的角色使用正确的精灵图头像，而非回退到表情符号。\n\n#### v2.0.0 中新增的办公包配置文件\n\n- `development` (`DEV`)：默认的工程基线配置文件（向后兼容的数据库行为）。\n- `report` (`RPT`)：结构化报告制作配置文件，包含编辑策划、研究引擎、文档设计和审核台。\n- `web_research_report` (`WEB`)：以证据为先的网络调查配置文件，包含研究策略、爬虫团队和事实核查工作流。\n- `novel` (`NOV`)：叙事创作配置文件，专为世界构建、角色一致性及语气质量保证而优化。\n- `video_preprod` (`VID`)：视频前期制作配置文件，专注于概念\u002F剧本\u002F分镜头脚本\u002F剪辑备注等环节的高质量交接。\n- `roleplay` (`RPG`)：角色扮演配置文件，旨在提升角色间对话的沉浸感，并确保角色质量和安全的一致性。\n\n### 3. 消息多令牌路由隔离\n\n- 针对同一服务商下的多会话场景，强化了路由解析逻辑，避免在不同机器人令牌之间出现 `targetId` 重叠的情况。\n- 新增了基于令牌提示的路由键（`\u003Cchannel>#\u003CtokenKey>`），用于内部来源区分，且无需暴露原始令牌。\n- 会话路由匹配现在会同时验证 `targetId` 和令牌键上下文（如存在）。\n- Telegram 接收端现支持按令牌处理路由，并为每个令牌维护独立的偏移量，以避免跨令牌轮询冲突。\n- 结果是：当多个 Telegram 机器人指向同一个聊天或频道 ID 时，回复将被路由回正确的发起机器人\u002F会话。\n\n### 4. 收件箱会话重置与项目漂移","2026-03-02T07:34:06",{"id":250,"version":251,"summary_zh":252,"released_at":253},72374,"v1.2.3","# Claw-Empire v1.2.3 发行说明\n\n- 发布日期：2026年2月27日\n- 范围：即时通讯集成与决策路由稳定化更新，涵盖多渠道会话用户体验、渠道隔离的中继行为、消息内决策回复以及项目绑定安全加固。\n\n## 亮点\n\n### 1. 统一内置消息渠道\n\n- 新增跨运行时、路由、网关和 UI 层共享的消息渠道目录。\n- 内置渠道现已统一为：\n  - `telegram`\n  - `whatsapp`\n  - `discord`\n  - `googlechat`\n  - `slack`\n  - `signal`\n  - `imessage`\n- 运行时渠道配置持久化存储于 SQLite 数据库（`settings.messengerChannels`），并由服务器网关和 UI 一致读取使用。\n\n### 2. 设置页 UX 重新设计（聊天会话）\n\n- 替换原有按渠道分散的编辑流程，采用统一的“添加聊天”\u002F“编辑聊天”模态框交互。\n- 现在可在一处完成会话的创建、编辑和删除操作，支持选择渠道、令牌、目标、名称、启用标志及映射客服等信息。\n- 在模态框中确认即可立即保存设置，无需额外的全局保存步骤。\n- 聊天列表现会在每个会话旁显示映射客服的头像和姓名，便于运营人员快速获取上下文信息。\n- 在“渠道消息”选项卡顶部新增明确的操作提示，引导用户正确注册消息渠道\u002F令牌\u002F目标 ID\u002F对话客服。\n\n### 3. 渠道隔离的任务中继\n\n- 任务中继仍通过 `[messenger-route] \u003Cchannel>:\u003Ctarget>` 固定在原始路由上。\n- 中继策略从仅限完成报告扩展至任务广播消息，包括：\n  - `report`\n  - `chat`\n  - `status_update`\n- 结果是：会议启动\u002F进展\u002F完成消息仅发送至发起渠道的路由，避免跨渠道扩散。\n- 增加了内存路由缓存保护机制（TTL + 最大容量限制），以提升路由查找的稳定性。\n\n### 4. 决策收件箱消息桥接\n\n- 决策请求现将发送至与任务\u002F项目上下文关联的同一消息渠道路由。\n- 新增持久化的去重预留和已发送标记，防止在重试或重启过程中重复触发决策通知。\n- 用户可直接在消息应用中通过数字回复作出决策：\n  - 单选：`1`\n  - 多选（评审环节）：`1,3` 或 `1 3`\n- 决策回复解析具备多语言支持且与路由关联，随后通过现有决策处理逻辑执行。\n- 回复确认（ACK）或错误（ERR）将回传至同一消息渠道的目标端。\n- 强化了数字多选解析功能，当存在待处理决策时，类似 `1,2,3,4` 的纯数字回复将被视为决策回复。\n- 若无待处理决策，则纯数字聊天内容仍将作为常规客服对话流处理，不会强制拦截为决策回复。\n\n### 5. 决策消息可读性提升\n\n- 决策请求消息经过重新格式化，以提升消息应用中的阅读体验：\n  - 简洁摘要文本\n  - 精炼选项预览\n  - 明确的数字回复指引\n- 移除了默认的复杂技术性提示（高级令牌回复行），避免干扰普通运营人员查看。\n- 同时保留基于令牌的显式回复解析功能。","2026-02-27T04:36:13",{"id":255,"version":256,"summary_zh":257,"released_at":258},72375,"v1.2.2","# Claw-Empire v1.2.2 发行说明\n\n- 发布日期：2026年2月26日\n- 范围：v1.2.1 之后的功能性版本，引入中断注入工作流（暂停会话提示注入），并加强任务控制安全性，同时在 Office Agent Detail 中新增按代理的 CLI 模型覆盖控制。\n\n## 亮点\n\n### 中断注入功能上线\n\n- **新的暂停会话提示注入端点**：新增 `POST \u002Fapi\u002Ftasks\u002F:id\u002Finject`，用于将经过安全处理的中断提示排队，以供暂停中的运行使用。\n- **会话防护的控制路径**：\n  - 新增任务中断控制令牌验证（`x-task-interrupt-token` 或请求体中的 `interrupt_token`）。\n  - 为基于 Cookie 认证的任务变更操作（停止、恢复、注入）增加了 CSRF 验证机制。\n- **排队注入的持久化**：\n  - 新增 `task_interrupt_injections` 流程辅助函数（清理、哈希、排队、消费）以及提示哈希审计日志。\n  - 终端 API 现在会返回中断证明负载（`session_id`、`control_token`、`requires_csrf`），以支持安全的 UI 恢复和注入流程。\n- **TerminalPanel 操作体验优化**：\n  - 新增中断\u002F注入面板，提供仅暂停、注入后恢复和仅恢复三种操作选项。\n  - 添加了待处理证明获取的短时重试策略，并提供了清晰的多语言操作提示信息。\n- **验证覆盖率提升**：\n  - 新增了针对中断令牌处理、CSRF 限制及注入队列行为的路由和工作流单元测试。\n  - 新增 HTTP 压力测试脚本：`scripts\u002Fqa\u002Finterrupt-inject-http-smoke.mjs`。\n\n### 代理级 CLI 模型覆盖（Office）\n\n- **代理相关 Schema\u002FAPI 扩展**：\n  - 新增 `agents.cli_model` 和 `agents.cli_reasoning_level`。\n  - 扩展了 `\u002Fapi\u002Fagents\u002F:id` 的补丁验证规则，并完善了与提供商相关的清理逻辑。\n- **Agent Detail 编辑器升级**：\n  - CLI 提供商（`claude`、`codex`、`gemini`、`opencode`）现在可以直接在 Office 中为每个代理设置主模型覆盖。\n  - Codex 新增了按代理的推理力度覆盖选项（`low`、`medium`、`high`、`xhigh`），并支持默认回退机制。\n  - 当设置为默认时，运行时仍会沿用全局 Settings 中的模型配置。\n  - 子代理的模型选择仍然由全局 Settings 决定（`providerModelConfig.subModel`），而非代理级别的覆盖。\n- **运行时覆盖传播**：\n  - 应用于所有主要执行入口：\n    - 任务运行\n    - 恢复\u002F启动编排路径\n    - 一次性执行器\n    - 直接启动\n    - 委托子任务批次\n    - 跨部门协作\n\n### 规划负责人无工具快速路径\n\n- **团队领导会议继续执行无工具政策**：\n  - 计划审批和评审共识的一次性轮次将以 `noTools: true` 模式执行，以加快流程完成速度。\n- **决策收件箱规划整合现为无工具模式**：\n  - 项目级评审规划整合（`project_review_ready`）以 `noTools: true` 模式运行。\n  - 评审轮次规划整合（`review_round_pick`）以 `noTools: true` 模式运行。\n- **最终报告整合现为无工具模式**：\n  - 规划负责人的最终整合归档生成以 `noTool","2026-02-26T14:54:31",{"id":260,"version":261,"summary_zh":262,"released_at":263},72376,"v1.2.1","# Claw-Empire v1.2.1 发行说明\n\n- 发布日期：2026年2月26日\n- 范围：v1.2.0 之后的加固与可维护性版本，重点提升 CI 可靠性、运行时安全性、减少类型债务，并增强文档和 API 的可发现性。\n\n## 亮点\n\n### 核心修复\n\n- **任务路由拆分恢复**：通过在主路由配置中恢复模块化拆分（`crud`、`execution`、`subtasks`）后缺失的核心任务路由注册，修复了生产构建\u002F运行时中断问题。\n- **工作流 Unicode 防护**：在 `.github\u002Fworkflows\u002F*.yml` 文件中添加了针对隐藏或双向 Unicode 字符的 CI 保护机制，以缓解类似“特洛伊源”攻击的风险。\n\n### CI 和工具链加固\n\n- **pnpm 版本对齐**：移除了工作流与 `packageManager` 之间冲突的 pnpm 版本声明，解决了 `ERR_PNPM_BAD_PM_VERSION` 类型的失败问题。\n- **触发覆盖率更新**：CI 现在会在 `push` 到 `main` 分支、`pull_request` 以及手动触发时运行。\n- **最小权限原则**：为 CI 工作流显式应用了 `permissions: { contents: read }` 权限设置。\n- **明确的构建门控**：\n  - `pnpm exec tsc -p tsconfig.json --noEmit`\n  - `pnpm run build`\n- **格式化强制可靠性**：在整个仓库范围内统一使用 Prettier 格式化工具，以确保 CI 中的 `format:check` 操作能够确定性地通过。\n\n### Lint 基线与逐步收紧\n\n- 推出 ESLint Flat Config 配置，并在 CI 中覆盖 TypeScript 和 React Hooks。\n- 对运行时\u002F编排热点区域进行了安全警告清理（如空代码块、可安全移除的无用转义字符，以及相关的非行为性 lint 债务）。\n- 引入了基于 `lint-staged` 的增量严格化路径，用于暂存文件的质量门控，从而实现有针对性的代码质量提升，而无需引发整个代码库的频繁改动。\n\n### RuntimeContext 和类型债务重构\n\n- 在各个路由模块中减少依赖面，以降低巨大的运行时上下文耦合度，并提升代码审查的可读性。\n- 统一决策收件箱类型：\n  - 移除了重复的 `DecisionInboxRouteItem` 声明。\n  - 通过 `decision-inbox\u002Ftypes.ts` 合并共享类型使用。\n- 提取应用编排逻辑：\n  - 添加了 `src\u002Fapp\u002FuseAppBootstrapData.ts`，用于初始引导数据的获取与同步逻辑。\n  - 添加了 `src\u002Fapp\u002FuseLiveSyncScheduler.ts`，用于实时同步调度及去重逻辑。\n  - 在不改变用户界面行为的前提下，降低了 `src\u002FApp.tsx` 中的逻辑密度。\n\n### 会议超时可靠性和清晰度\n\n- **明确的超时单位默认值**：\n  - 在文档和迁移默认值中将 `REVIEW_MEETING_ONESHOT_TIMEOUT_MS` 默认值标准化为 `65000` 毫秒，以避免单位歧义。\n- **向后兼容性**：\n  - 现有的 `65` 等值仍被接受，并按秒解释（`\u003C= 600` -> 秒），从而保留了用户的原有配置。\n- **超时容错能力**：\n  - 增加了一次性会议超时重试路径，在评审\u002F审批阶段采用精简提示，以降低长时间规划讨论中的中断风险。\n\n### 测试运行时安全性\n\n- **测试数据库\u002F运行时隔离加固**：\n  - 加强了测试运行时数据与生产环境数据之间的隔离。","2026-02-26T06:12:37",{"id":265,"version":266,"summary_zh":267,"released_at":268},72377,"v1.2.0","# Claw-Empire v1.2.0 发行说明\n\n- 发布日期：2026年2月25日\n- 范围：代理管理（雇佣\u002F编辑\u002F删除）、部门增删改查、部门管理标签页、全新像素角色精灵图 (#13)、项目级手动代理分配、手动项目的会议参与者筛选、移动端响应式项目经理、自定义技能上传系统、错误修复，以及发布后的加固和工程质量更新合并至 v1.2.0。\n\n## 亮点\n\n### 代理管理（CRUD）\n\n- **雇佣新代理** - 代理管理器中提供完整的代理创建界面，包含姓名（多语言支持：英\u002F韩\u002F日\u002F中）、所属部门、角色（团队负责人\u002F高级\u002F初级\u002F实习生）、CLI 提供商、精灵编号、头像表情符号和性格字段。\n- **编辑代理** - 所有代理字段均可内联编辑，包括提供商和模型的重新分配。\n- **删除代理** - 安全删除机制，结合工作状态校验；同时将任务、子任务、会议纪要、报告存档及评审决策状态中的相关引用置为空。\n- 后端：`POST \u002Fapi\u002Fagents`、`PATCH \u002Fapi\u002Fagents\u002F:id`、`DELETE \u002Fapi\u002Fagents\u002F:id` 端点，并通过 WebSocket 广播 `agent_created` 和 `agent_deleted` 事件。\n\n### 部门增删改查\n\n- **创建部门** - 完整的部门创建功能，支持 ID 校验（a-z0-9 模式）、多语言名称、图标、颜色选择器、描述和提示信息。\n- **编辑部门** - 所有部门属性均可内联编辑。\n- **删除部门** - 移除时会检查并处理关联的代理和任务。\n- 后端：`POST \u002Fapi\u002Fdepartments`、`PATCH \u002Fapi\u002Fdepartments\u002F:id`、`DELETE \u002Fapi\u002Fdepartments\u002F:id` 端点，并广播 `departments_changed` 事件。\n\n### 部门管理标签页\n\n- 在代理管理器中新增子标签切换功能（“代理 | 部门”）。\n- 部门列表视图包含排序顺序、图标、名称、颜色、代理数量、描述和 ID。\n- 支持通过箭头按钮和拖放方式编辑排序顺序，并可批量保存。\n- 后端：`PATCH \u002Fapi\u002Fdepartments\u002Freorder` 端点使用临时高值 `sort_order` 字段，以避免在重新排序过程中触发 UNIQUE 约束冲突。\n- 增加路由守卫，确保 `\u002Fapi\u002Fdepartments\u002Freorder` 不会被 `\u002Fapi\u002Fdepartments\u002F:id` 捕获。\n\n### 全新角色精灵图（精灵 #13）\n\n- 添加了一个全新的像素角色，包含完整的方向精灵集（D-1\u002FD-2\u002FD-3、L-1、R-1）。\n- 新增了精灵生成流水线脚本。\n- 更新了 AgentAvatar 和 OfficeView，以支持精灵 #13。\n\n### 项目手动代理分配\n\n- 项目现支持 `assignment_mode` 参数，取值为 `auto`（默认）或 `manual`。\n- 在手动模式下，可通过多选复选框 UI 分配特定代理，界面显示代理的精灵头像及所属部门和角色标签。\n- 新数据库表结构：`projects` 表新增 `assignment_mode` 列，同时引入 `project_agents` 关联表。\n- 后端 CRUD：`POST \u002Fapi\u002Fprojects` 和 `PATCH \u002Fapi\u002Fprojects\u002F:id` 接受 `assignment_mode` 和 `agent_ids` 参数。\n- `GET \u002Fapi\u002Fprojects` 和 `GET \u002Fapi\u002Fprojects\u002F:id` 返回各项目的已分配代理 ID 列表。\n\n### 会议参与者筛选（手动模式）\n\n- 当项目使用 `assignment_mode: manual` 时，启动会和评审会仅包含：","2026-02-25T18:44:53"]