# Release Log

## v0.6.8

无边框 UI 大改版；Team/Agent 页面重设计；Mailbox 深度审议决策；持久 Shell 会话；MCP 自动重连与进程回收；Bocha 搜索后端；多格式交付物输出；审批按钮重构；语义重试循环检测；大量 UX 与稳定性修复。

### New Features

- **无边框 UI 改版** — 全局无边框设计语言，DAG 布局改进，动态 handle 位置
- **Agent 概览/文件编辑器/侧边栏重设计** — Agent 页面视觉重构，面板分割器优化
- **Team 页面重设计** — L2 面板布局，扁平化标签页，行内编辑，完善 i18n
- **DM 聊天统一布局** — DM 聊天采用频道式布局，输入框样式优化
- **Mailbox 深度审议决策** — mailbox 决策升级为完整审议流程，修复 notify_user 可见性与场景提示
- **多格式交付物输出** — 支持 Markdown、HTML、JSON 等多种交付物格式
- **Bocha 搜索后端** — 新增 Bocha 搜索引擎，移除效果不佳的 Bing 搜索；搜索 API Key 可在设置中配置
- **LLM 自动降级开关** — 新增模型自动 fallback 切换控制
- **语义重试循环检测** — 新增 sameToolBurst 检测器，捕获 Agent 语义重试死循环

### Bug Fixes

- **修复持久 Shell 会话** — Shell 会话持久化，清理工具输出中的 LLM 污染内容，修复前端 OOM
- **修复 MCP 断连自动重连** — 工具调用发现 MCP 断连时自动重连；Agent 会话结束时回收 MCP 进程
- **修复审批按钮逻辑** — 重构审批按钮：修复自由文本输入始终走审批通过的 bug，任务/需求增加结构化审批模式
- **修复人工审核回调** — 防止 human review HITL 回调将已完成任务回退到 in_progress
- **修复 notify_context 泄漏** — 聊天消息中剥离 HTML 注释，正确显示通知徽章
- **修复 Report 页面指标** — 使用真实模型定价计算成本，移除不可靠的计费数据
- **修复 notify/escalation 事件转发** — 正确转发事件，启动时等待健康检查后再打开浏览器
- **修复聊天流式卡住** — 修复 thinking 状态卡死，Dashboard UX 改进，目录交付物预览
- **修复 inline-completed 语义** — 修正内联完成项语义，补充缺失的活动日志
- **修复亮色模式可读性** — Markdown 和表格在亮色模式下样式修复

### Improvements

- **侧边栏/通知/团队聊天列表优化** — 视觉与交互细节改进
- **面板布局优化** — 详情面板全宽填充，滚动按钮位置调整避免遮挡发送按钮
- **通知/审批内容展示** — 移除 Markdown 内容最大高度限制
- **公告/规范编辑器** — 编辑器填满整个视口高度
- **Desktop 布局呼吸感** — 面板间距统一，Team L2 浮动模式，Work 标签宽度一致

### Stats

- 92 files changed, +5,246 / −1,556 lines

---

## v0.6.7

统一安装工具体系；Package Tools 延迟绑定修复；Dashboard UX 改进（成功率修正、部署弹窗、排名、移动端导航）；工具分类优化。

### Refactoring

- **统一安装工具** — 移除旧版 builder_install / builder_list，替换为统一的 package tools，所有 Agent 均可使用安装能力

### Bug Fixes

- **修复 Package Tools 不可用** — 延迟绑定 package tools 注册时机，确保在服务装配前完成注册；修复非 Manager Agent 无法访问 package tools 的问题
- **修复 no-submit 重试竞态** — 修复任务提交重试与无提交场景的竞态条件
- **修复 Dashboard 成功率计算** — 修正成功率统计逻辑，新增部署弹窗、Agent 排名展示，完善 i18n 翻译，优化移动端导航
- **修复工具分类展示** — Agent Profile 工具分类分组优化，MCP Hub 工具归入 Packages & Hub 类别
- **修复 manager-tools 测试** — 更新测试适配 PackageToolsContext 延迟绑定改动

### Stats

- 30 files changed, +947 / −553 lines

---

## v0.6.6

Dashboard 重设计；Markdown 本地图片渲染；Midnight/Mono 主题替换；MCP 浏览器断连自动重连；定时任务与 Mailbox 执行触发保护；大量 UI 与稳定性修复。

### New Features

- **Dashboard 重设计** — 全新现代布局，任务概览移至活动流上方，信息层级优化
- **Markdown 本地图片渲染** — 支持在 Markdown 消息中渲染本地图片路径
- **Midnight/Mono 主题** — 用 Midnight 调色板替换旧 dark 主题，新增 Mono（黑白）主题

### Bug Fixes

- **修复 MCP 浏览器断连** — 外部关闭浏览器标签页时 MCP 自动重连
- **修复已归档任务出现在活动流** — Dashboard 活动流排除已归档任务
- **修复定时任务调度 bug** — 修复 cron 调度异常，改进定时任务审批 UX；修复通用 task PUT 路由拦截 `/schedule` 等子路径请求
- **修复 Mailbox 执行触发被误丢弃** — 保护 execution-trigger 类型的 mailbox 项不被 triage 丢弃/延迟
- **修复心跳空巡逻** — heartbeat idle skip 导致空巡逻记录和静默活动日志
- **修复 Agent 遗忘 task_submit_review** — 重试时注入针对性上下文提示
- **修复 SiliconFlow 模型目录缺失** — 将 SiliconFlow 模型加入 BUILTIN_MODEL_CATALOG
- **修复桌面快捷方式重复启动** — 服务已运行时直接打开浏览器而非再次启动
- **修复 Builder 页面列表范围** — 仅列出 builder-artifacts 目录下的产物
- **修复 Markdown 渲染** — 单换行符正确渲染（remark-breaks）；暗色模式下列表标记、删除线等元素样式修复
- **修复 i18n 标签** — Agent Profile Mind Tab 国际化及 memory_consolidation / requirement_action 活动标签修正

### Stats

- 39 files changed, +1,312 / −703 lines

---

## v0.6.5

新用户初始化注册流程；非交互式启动修复；群聊可见性隔离；评论回复强制机制改进；Agent 思考活动实时指示器；LLM Key 预览。

### New Features

- **初始化注册页面** — 新增 `InitialSetup` 组件和 `/api/auth/init`、`/api/auth/status` 端点，首次使用时展示管理员注册页面（用户名/邮箱/密码/头像上传），替代旧的默认密码登录方式
- **Secretary 新用户欢迎** — 新用户完成注册后，Secretary 自动发送引导消息帮助上手，通过 `isFirstConversation` 标记透传到 Mailbox
- **评论思考活动指示器** — Work 页任务/需求评论区 Agent 思考时实时展示工具调用步骤（`ActivityIndicator`），替代纯 bouncing dots

### Bug Fixes

- **修复启动 stdin 阻塞** — `quickInit` 改为 `nonInteractive: true`，避免在 concurrently / CI / systemd 等无 TTY 环境下挂起
- **修复群聊可见性** — 非管理员用户只能看到自己参与的群聊和团队聊天，新增 `listByMember` 查询
- **修复评论不回复检测** — `comment_response` 场景改用 `[NO_REPLY_NEEDED]` 显式标记替代文本长度启发式判断，避免 Agent 决定不回复时被强制重试
- **修复用户 identity 不同步** — 注册/登录后立即调用 `syncHumanIdentity` 同步内存用户身份，Agent 即时看到真实用户名
- **修复 proactive message 目标用户错误** — `notify_user` 通知消息发送到正确的 `targetUserId` 而非默认用户
- **修复首次 intro 消息重复发送** — 全局 Set 防护同一页面会话内重复发送自我介绍消息

### Improvements

- **LLM API Key 预览** — Settings 和 Onboarding 页面显示 API Key 掩码预览（`sk-ab...cd12`），区分 config / env / oauth 来源
- **角色感知 intro 消息** — Secretary 和普通 Agent 使用不同的首次对话消息，不再按语言硬编码多国文案
- **Onboarding 智能跳步** — InitialSetup 已完成 profile 信息时，Onboarding 自动跳过 Profile 步骤
- **首登引导流程** — 登录/注册接口返回 `needsOnboarding` 标志，首次登录自动进入 Onboarding

### Stats

- 21 files changed, +728 / −160 lines

---

## v0.6.4

新 Logo；聊天上下文大幅扩容；审批通知优化；Agent 记忆编辑 UX 改进；thinking 气泡及时清除。

### New Features

- **新 Logo** — 替换项目 Logo，体积从 5MB 缩减至 96KB
- **聊天历史扩容** — 群聊上下文从 20 条扩展到 80 条，Agent 工具获取上限从 30→80 条（max 200），消息截取从 500→2000 字符，Agent 获得更完整的对话上下文
- **Agent 无回复事件** — 新增 `chat:agent_no_response` WebSocket 事件，Agent 决定不回复时前端即时清除 thinking 气泡

### Bug Fixes

- **修复审批通知标题冗余前缀** — 移除 "Approval needed:" / "Task approval:" / "Requirement approval:" 等前缀，直接显示任务/需求标题
- **修复审批请求中 Agent 名显示为 ID** — requirement-service / task-service 中解析 Agent 显示名称替代原始 ID
- **修复切换任务/需求时 thinking 气泡残留** — 切换 task/requirement 时重置 thinkingAgents 状态
- **修复 Team 页 i18n key 前缀缺失** — `page.viewProfileArrow` → `team:page.viewProfileArrow`

### Improvements

- **Agent 记忆编辑 UX** — 日报/长期记忆改为常驻 textarea，脏数据时才显示保存按钮，最小高度 50vh
- **通知铃铛增强** — NotificationBell 组件改进，工具分组覆盖 memory_delete / recall_context / recall_activity

### Stats

- 15 files changed, +175 / −67 lines

---

## v0.6.3

中文 Agent 名兼容修复；记忆搜索语义 fallback；Agent 初始化自动创建系统文件；CLI 工具整合精简；团队聊天稳定性修复；二进制安装包签名与托盘控制器。

### New Features

- **系统托盘控制器** — 桌面快捷方式启动后在菜单栏/系统托盘显示 Markus 图标，提供 Open Web UI / Start / Stop / Quit 操作（macOS/Windows/Linux），tray 启动失败自动回退到直接启动服务器
- **Agent 初始化自动创建系统文件** — 新 Agent 启动时自动生成 MEMORY.md / HEARTBEAT.md 等系统文件，MEMORY.md 超长时自动压缩
- **便携归档包** — 除平台原生安装包外，同时生成 .tar.gz/.zip 便携归档

### Bug Fixes

- **修复中文名 Agent 目录定位失败** — findMemberDir 改用多轮 member-to-directory 映射匹配，支持非 ASCII Agent 名
- **修复中文名 Agent slug 生成 bug** — 统一使用 kebab() + 唯一索引 fallback，避免空 slug
- **修复 memory_search 返回 0 结果** — 语义搜索 fallback + dist 重建
- **修复团队聊天停止按钮/会话上下文丢失/空气泡** — 三个前端交互 bug 一并修复
- **修复被抢占任务不自动恢复** — 高优先级任务完成后，被抢占的低优先级任务自动恢复执行
- **修复已完成/失败任务不可见** — 任务列表默认隐藏已关闭状态，但保留已完成和失败状态可见
- **修复二进制安装包 Apple 公证失败** — codesign 扫描所有 Mach-O 文件（含 systray2 的 Go 二进制），修复权限过滤遗漏

### Refactoring

- **CLI 工具整合精简** — 删除 5 个冗余 CLI skill 模板（agent-cli/cli/project-cli/skill-cli/team-cli），合并到 markus-admin-cli；新增测试覆盖

### Stats

- 43 files changed, +1,888 / −671 lines

---

## v0.5.0

记忆系统重构（Tulving 三层认知分类）；评论多模态图片支持（上传/拖拽/粘贴/预览）；内置 Agent 模板大规模升级（重写 5 + 新建 5）；弹窗错误 UX 优化；Hub 地址修正；文档全面对齐。

### New Features

- **评论图片上传与渲染** — CommentInput 支持图片上传、拖拽、粘贴；MarkdownMessage 支持图片懒加载、加载骨架屏、错误占位、点击全屏预览（ImagePreviewModal）；新增通用 FileStorageProvider 抽象（本地存储默认，可切换 S3/GCS），POST /api/uploads 端点
- **内置 Agent 模板升级** — 重写 5 个低质量模板（hr/finance/support/marketing/operations），从仅 ROLE.md 升级为完整套件（ROLE.md + HEARTBEAT.md + POLICIES.md + agent.json）；新建 5 个实用角色模板（data-engineer、ai-engineer、architect、scrum-master、sre）

### Bug Fixes

- **修复需求状态历史 Agent 名字缺失** — updateRequirementStatus 新增 actorType 参数，修复 agent 更新状态时 changedByType 被错误记录为 'human'
- **修复含空格名字 @mention 渲染** — 重写 @mention 渲染逻辑为全名前缀匹配策略，正确处理多词 Agent 名字
- **修复弹窗错误 UX** — 错误信息移入弹窗内联展示（非页面级 flash），服务端返回结构化错误码（task_limit_reached 等），人类创建的 pending 任务显示"取消"而非"拒绝"
- **修复 Hub 地址指向本地开发服务器** — 默认 Hub URL 从 localhost:8059 改为 markus.global 生产地址

### Refactoring

- **记忆系统 Tulving 三层分类重构** — 基于 Tulving 认知分类重新设计记忆架构（Semantic/Episodic/Procedural），在现有 MemoryStore 上标注分类层级；新增 memory-store.test.ts（32 tests）；清理废弃的 EnhancedMemorySystem + 双重存储代码
- **文档全面对齐** — MEMORY-SYSTEM.md 全面重写（553→235 行，四层→三层）；ARCHITECTURE.md / MAILBOX-SYSTEM.md / PROMPT-ENGINEERING.md / README 同步更新术语

### Stats

- 75 files changed, +4,457 / −1,456 lines

---

## v0.4.26

模型提供商设置极简化（点击+粘贴 API Key 即用）；添加智能体/新建团队弹窗支持秘书协助模式；聊天输入框自动伸缩修复；侧边栏下拉图标优化。

### New Features

- **模型提供商一键激活** — 主流提供商（Anthropic、OpenAI、Google Gemini 等）无需填写 Base URL、上下文窗口、定价或模型名称，点击提供商后粘贴 API Key 即可使用，内置模型目录自动提供所有元数据；保留"Add Provider"入口供自定义提供商
- **添加智能体/新建团队方式选择** — 点击"添加智能体"或"新建团队"时弹出选择弹窗，用户可选择让秘书帮忙（推荐）或手动操作；下拉菜单顺序调整为：添加智能体 → 新建团队 → 添加成员 → 新建群聊

### Bug Fixes

- **修复聊天输入框不自动伸缩** — 提取 textarea 高度调整为可复用回调 + useEffect，输入框随长内容自动增高，清空或发送后自动缩回

### Enhancements

- 侧边栏下拉菜单与方式选择弹窗图标优化

### Stats

- 7 files changed, +180 / −33 lines

---

## v0.4.25

多用户系统全面上线（RBAC、邀请流程、会话隔离）；群聊成员管理与侧边栏重设计；人类用户可作为任务审阅者与 @mention 目标；Agent 思考指示器；任务/需求状态变更历史；Ollama 本地自动发现；API 安全加固；大量 UX 与稳定性修复。

### New Features

- **多用户系统（Phase 6-8）** — RBAC 权限 UI、邀请注册流程、用户软删除、会话隔离、DM 隐私、审批按用户过滤（targetUserId）；Onboarding 与 Login 页面重构
- **群聊成员管理** — 群聊侧边栏重设计，支持添加/移除成员，创建者自动加入，用户名从 DB 恢复
- **人类用户 @mention** — 任务/需求评论中支持 @提及人类用户，触发通知铃铛提醒
- **人类用户作为任务审阅者** — 支持将人类用户指定为 task reviewer
- **Agent 思考指示器** — Chat、任务、需求评论场景显示 Agent 思考动画，直到实际回复到达
- **任务/需求状态变更历史** — 记录并展示 task 和 requirement 的每次状态转换历史
- **任务关联活动会话** — 检测并展示与任务相关的 Agent 活动 session
- **Ollama 本地自动发现** — Settings 页自动检测本地 Ollama 服务
- **Git 审批智能跳过** — Agent 在自己的工作区内操作时跳过 git 命令审批
- **CI 测试流水线** — CI pipeline 新增 `pnpm test` 步骤

### Bug Fixes

- **修复多用户认证与隔离** — 修复 auth、session 隔离、DM 隐私、null user_id 迁移等多用户系统 bug
- **修复通知铃铛 DM/群聊消息** — 支持点击导航，Agent 通知目标精准化，邀请按钮清理
- **修复停止流式时 6 秒延迟** — 用户在 team chat 中停止 Agent 流式输出时消除阻塞延迟
- **修复 Agent 瞬态错误显示为持久错误** — 短暂错误以可恢复警告展示而非永久 error 状态
- **修复通知声音重播** — 侧边栏折叠/展开不再重放通知音效
- **修复人类创建任务初始状态** — 人类创建的任务正确以 pending 状态开始
- **修复需求详情面板关闭** — approve/reject 操作后保持面板打开
- **修复通知自动已读** — 对任务/需求执行操作时自动标记相关通知为已读
- **修复 Deliverables URL 处理** — URL 类型交付物正确处理，侧边栏简化
- **修复执行日志内容** — 正确发送 thinking 和 text 内容到执行日志，允许工作区外只读搜索
- **修复下拉菜单溢出与重复图标** — 任务创建 UI 中下拉溢出和重复加号图标
- **修复 Mailbox 抢占** — 所有非 human-chat 场景可被更高优先级 mailbox 项抢占
- **修复 Windows PowerShell 安装** — Start-Process 运行 npm 失败

### API Security & Hardening

- **405 Method Not Allowed** — 不支持的 HTTP 方法返回 405 而非 404
- **Agent 名称 XSS 防护** — 创建 Agent 时清理名称防止 XSS 注入
- **POST null body → 400** — 空请求体返回 400 Bad Request
- **缺少 Content-Type → 415** — 缺少 Content-Type 头返回 415
- **GET /api/keys 认证** — 添加 requireAuth 中间件
- **DELETE 不存在 Agent → 404** — 返回正确的 404 而非 200
- **Agent 名称长度限制** — 100 字符上限校验

### Refactoring

- **统一用户 ID 生成** — `userId()` 工具函数替代硬编码 'default' user ID
- **用户软删除** — 用户和 Agent 删除改为软删除，支持即时刷新

### Stats

- 97 files changed, +7,668 / −1,640 lines

---

## v0.4.24

新增 DeepSeek 一级模型支持；reasoning_content 全链路透传；中文文件名路径编码修复；LLM 路由禁用提供商感知与自动切换；通知铃铛 notify_user 修复；不可重试错误短路；测试补全。

### New Features

- **DeepSeek 一级模型支持** — 新增 DeepSeek 作为一级模型提供商，Settings 页支持连接测试，MODEL_CATALOG 同步更新
- **reasoning_content 全链路透传** — DeepSeek reasoning_content 在子 Agent 工具循环和最终 assistant 回复路径中正确保留，避免推理内容丢失

### Bug Fixes

- **修复中文文件名路径编码异常** — `publishDeliverablesToShared` 中文文件名写入失败，修复路径编码处理，DRY 重构文件操作逻辑
- **修复 LLM 路由不尊重禁用提供商** — 禁用的模型提供商仍被路由选中，现在正确跳过并自动切换默认模型
- **修复通知铃铛不显示 notify_user 通知** — NotificationBell 组件过滤逻辑遗漏 notify_user 类型，同步修复 UI 细节
- **修复不可重试错误仍在重试** — TaskService 对不可重试的错误（如配置错误）不再无限重试
- **修复工具名称重复注册** — tool-selector 去重处理，避免同名工具多次注册
- **修复 sqlite-storage 测试外键约束** — 补全测试中缺失的 agent FK 初始化

### Stats

- 29 files changed, +510 / −115 lines

---

## v0.4.23

Web UI 完整国际化（中英双语）；群聊增强（A2A 回复链、@mention、recall_context）；web_search 代理与降级；LaTeX 数学渲染；Requirement 审批生命周期修复；Mailbox 与 Agent 生命周期 bug 修复。

### New Features

- **Web UI 国际化（i18n）** — 完整的中英双语支持，覆盖所有页面和组件（Home / Work / Team / AgentProfile / AgentBuilder / Settings / Store / Reports / Deliverables / Onboarding 等），新增 i18n 基础设施（i18next + react-i18next）和语言切换
- **群聊增强** — A2A 回复链支持，@mention 修复，新增 `recall_context` 工具供 Agent 检索群聊上下文；群聊中强制任务追踪；Builder 技能增加 HEARTBEAT.md
- **LaTeX 数学渲染** — MarkdownMessage 支持 LaTeX 数学公式渲染（行内 `$...$` 和块级 `$$...$$`）

### Bug Fixes

- **修复 web_search 代理与降级** — web_search 工具支持 HTTP 代理，增加超时控制，DuckDuckGo 搜索失败时自动降级重试
- **修复流式气泡结束后空白** — 流式输出结束后消息气泡显示空白内容，修复 SSE 事件处理
- **修复 Requirement 审批生命周期** — 审批通过后正确触发 Agent 执行，移除需求自动完成逻辑
- **修复 Mailbox drop 与 Agent 生命周期** — 修复 mailbox 项丢弃 bug，Agent stop/pause 生命周期正确处理，LLM 中断判断优化
- **修复侧边栏活动标签 "Chat from undefined"** — 活动标签中发送者名称缺失显示 undefined
- **修复 Team 页 Agent 状态标签 i18n** — 缺少 i18n 命名空间前缀导致状态标签显示翻译 key
- **修复 AgentProfile 和 Work 页 TypeScript 错误**

### Stats

- 86 files changed, +7,594 / −1,645 lines

---

## v0.4.22

自演化路径增强（ROLE.md / HEARTBEAT.md）；Hub 发布 CORS 修复与 API 代理；Agent 创建 roleName 可选；Store 卡片链接 Hub 详情页。

### New Features

- **ROLE.md / HEARTBEAT.md 直接自演化路径** — Agent 可通过编辑 ROLE.md 和 HEARTBEAT.md 进行自我演化；新增 `reloadHeartbeat()` 热加载，HEARTBEAT.md 修改即时生效；降低 ROLE.md 更新门槛，单条经验即可触发；自演化技能文档同步更新决策矩阵
- **Hub 详情页链接** — Store 页面（Agents / Teams / Skills）的 Hub 卡片标题和页脚链接到 Hub 详情页（`/{username}/{slug}`），新标签页打开

### Bug Fixes

- **修复 Hub 发布 CORS 与鉴权失败** — 新增通用 `/api/hub/*` 本地代理路由，所有 Hub API 调用走服务端转发，规避 Vercel 307 重定向导致的浏览器 CORS 拦截和 Authorization header 丢失（401 根因）
- **修复 Agent 创建自定义 ROLE.md 被模板覆盖** — `roleName` 改为可选，`'custom'` 表示无模板；新增 `skipTemplateCopy` 标志防止自定义角色文件被覆盖；健壮的成员目录查找（`findMemberDir`）支持多种回退策略；统一 `kebab()` slug 函数消除保存与安装流程间的 slug 不匹配
- **修复 AgentBuilder 分享时误显 "Uninstalling..."** — 按操作类型追踪 busy 状态，区分分享与卸载

### Stats

- 19 files changed, +353 / −115 lines

---

## v0.4.21

Markdown 文件路径可点击预览；MarkdownMessage 拷贝菜单；多模态附件降级；markitdown 技能；审批输入修复；UI 组件优化。

### New Features

- **Markdown 文件路径点击预览** — 行内代码中的文件路径自动识别，存在的文件高亮可点击：Markdown 文件弹窗预览（支持无限嵌套弹窗），其他类型在文件管理器中打开；不存在的文件显示删除线样式
- **MarkdownMessage 拷贝菜单** — 所有 Markdown 渲染区域显示拷贝按钮，支持复制 Markdown 源码、HTML (Light)、HTML (Dark) 三种格式
- **多模态附件降级** — 不支持视觉的模型自动通过 markitdown 将图片/文档转为文本附件，支持 PDF/DOCX/XLSX/PPTX/图片等格式
- **markitdown 技能** — 新增 Agent 技能模板，可安装 markitdown 用于文档格式转换
- **Avatar 组件** — 提取独立 Avatar 组件，支持 Agent 头像与状态指示器复用

### Bug Fixes

- **修复审批输入框串联** — 多个审批卡片的自由文本输入框共享同一 state，在一个输入框打字所有输入框同步显示；改为按审批 ID 独立维护状态
- **修复文件路径在表格中不换行** — 长文件路径在表格窄列中不断行，添加 break-all 允许任意位置换行
- **修复文件路径图标与文字分离** — 表格中图标被挤到单独一行，用 whitespace-nowrap span 确保图标与路径首字符不分离

### Enhancements

- Sidebar 布局与样式优化
- Onboarding 引导流程增强
- Chat 气泡样式更新
- Deliverables 页重构：复用 MarkdownMessage 和共享拷贝工具，移除冗余代码
- 文档更新（CONTRIBUTING、README、GUIDE、ARCHITECTURE、REMOTE-ACCESS）

### Stats

- 38 files changed, +1,472 / −457 lines

---

## v0.4.20

多 Agent 认知架构（CPP 四阶段管线）；自演化记忆生命周期重构；notify_user/escalation 转为聊天消息；recall_activity 工具；服务端 turn-boundary 流式提交；审批持久化与 requirement 审批统一；6 项运行时 bug 修复；浏览器自动化设置。

### New Features

- **认知准备管线（CPP）** — 四阶段流水线 Appraise → Retrieve → Reflect → Assemble，按刺激类型分级认知深度（D0–D3），替代机械式记忆检索，统一知识模型（单一 insight 标签 + MEMORY.md 注入）
- **recall_activity 工具** — Agent 可查询自身执行历史（活动列表、工具调用详情），支持关键字搜索和活动摘要索引
- **notify_user / escalation 转聊天消息** — 通知写入 Agent 聊天会话（非隐藏活动日志），通过 WS 广播 + 通知铃铛 + taskId 路由展示
- **服务端 turn-boundary 流式提交** — SSE 按 turn 缓冲 thinking，在工具边界和消息结束时发出 `thinking_commit` / `text_commit` 事件，客户端分离已提交段与实时 delta
- **浏览器自动化设置** — Settings 页新增 Browser Automation 区域（bringToFront / autoCloseTabs / remoteDebuggingPort），配置持久化到 MarkusConfig，消除 Chrome 逐次权限弹窗
- **team_update / agent_update 管理工具** — Manager 角色可动态修改团队和 Agent 配置
- **聊天 Resume 按钮** — 最后一条 Agent 消息显示 Resume，移除末尾 assistant 输出后从断点继续 LLM 生成

### Bug Fixes

- **修复审批拒绝始终通过** — task approval callback 将 result 对象当布尔值（始终 truthy），被拒任务错误转入 in_progress
- **修复审批重启后丢失** — 审批持久化到 SQLite，服务端重启时 fallback 直接执行状态转换
- **修复 6 项运行时 bug** — responsePromise.reject 反序列化丢失；heartbeat 误触异常完成重试循环；LLM router 429 惊群（新增 30s 短路冷却 + 并发追踪）；工具循环仅警告不中断（改为强制 break）；browser new_page 竞态；启动 heartbeat 突发（最小延迟 + 抖动）
- **修复聊天 Resume** — 保留已有 session context，避免重复用户消息，裁剪不完整 segments 而非丢弃整个 Agent 气泡
- **修复活动日志污染聊天** — 隐藏 heartbeat / review / mention 等活动日志条目，保留在 Agent Profile Mind tab
- **修复 TS 构建错误** — CLI 包 NotificationPriority 类型转换与导出

### Refactoring

- **自演化记忆重构** — 明确记忆生命周期：memories.json 为摄入缓冲、MEMORY.md 为策展知识；SOP patch 模式增量更新；MEMORY.md 硬限制（3000 字符/段、15000 总量）；dream cycle 护栏（cap removes 10、merges 5）
- **Requirement 审批统一** — Agent 提出的需求进入 HITL 审批队列（approve/reject 按钮），Work 页和通知铃铛双向同步
- **通知类型精简** — 移除 bounty_posted / agent_alert / mention 等未使用类型，移除整个 bounty 系统
- **统一 session 压缩** — 单一策略（trigger@60、keep 30），信息密度评分驱动智能压缩

### Enhancements

- Agent 配置 inline diff：word-level 高亮 + hunk 折叠；Smart Sync LLM 合并模板变更与自定义（支持 undo）
- 分诊优化：pre-triage 自动清理 >4h 旧信息项；mini 工具循环支持只读工具；上下文扩展到 20 条 × 2000 字符
- 活跃 lesson 检索：按关键字匹配任务描述自动注入相关经验
- 每 30 次工具迭代插入中段反思 nudge
- 每段消息附带 createdAt 时间戳，ThinkingRow 显示内容预览
- Legacy 消息迁移：启动时解析旧 XML 格式消息为 segments 结构
- FilePathLink 组件、MarkdownMessage XML 标签清理
- 日 token 预算强制（maxTokensPerDay）+ Agent 自动暂停
- DEFAULT_MAX_TOOL_ITERATIONS 从 Infinity 改为 200，heartbeat 上限 30
- 委派上下文（notes / acceptanceCriteria / deadline）透传任务创建
- 新增 COGNITIVE-ARCHITECTURE.md 文档

### Stats

- 64 files changed, +5,247 / −1,240 lines

---

## v0.4.19

Mailbox 可靠性与 LLM 分诊系统；新增 `request_user_approval` 阻塞审批工具；结构化活动日志与持久认知；执行时间线 thinking 解析修复；移动端聊天 UI 优化。

### New Features

- **Mailbox 可靠性** — 完成标记系统（`<<HANDLE_COMPLETE>>`），异常检测自动重试（最多 2 次）；原始 XML 工具调用消毒（sanitizeLLMReply）；DB 新增 `retry_count` 列
- **LLM 分诊系统** — 多项邮箱队列 LLM 驱动分诊决策，同实体（相同 task/requirement）预合并；分诊推理作为持久认知（persistent cognition）注入后续所有 LLM 调用
- **`request_user_approval` 工具** — 替代 `request_user_chat`，支持自定义选项按钮、自由文本输入，阻塞等待用户响应；审批等待使用 24h 超时而非 5 分钟
- **结构化活动日志** — 活动内容为干净摘要，metadata 携带 activityType / outcome / mailboxItemId / taskId 等，前端按类型渲染图标和分类卡片，支持点击展开和导航
- **npm 更新检查器** — CLI 启动时检查新版本（24h 缓存），健康端点同步暴露
- **Windows PowerShell 安装脚本** — 新增 `install.ps1`
- **自动归档服务** — 可配置阈值的自动归档

### Bug Fixes

- **修复执行时间线 thinking 标签泄漏** — 状态化字符级解析器替代正则，跨工具调用边界正确追踪 `<think>` 状态，合并分散的文本片段
- **修复移动端聊天 UI** — 操作按钮（Copy/Retry/Reply）移动端默认显示；Retry/Re-ask 限制为最新 Agent 消息；重试传递 `isRetry` 标志，服务端裁剪失败交互避免污染 LLM 上下文
- **修复移动端滚动自动加载历史** — 替代手动"加载更早消息"按钮，滚动到顶部自动触发，浮动加载指示器不受滚动位置影响
- **修复活动时间线文本溢出** — 长通知内容截断显示，短内容完整展示；移除 `notify_user` outcome 200 字符截断限制

### Enhancements

- 人类优先优先级模型：`human_chat` 为唯一 p0 用户交互类型，`system_event` / `task_comment` / `requirement_comment` 降为 p1
- Mailbox 恢复增强：重启时重载排队项、过期 >3d 旧项、心跳折叠与评论合并去重
- 任务恢复优化：优先级排序启动恢复、重试抖动（±20%）避免惊群、抢占重排队延迟
- 活动类型重分类：Chat（human_chat、a2a_message）、Comment（task_comment、requirement_comment）、Mention（mention）
- EventBus 转发（`forwardAgentEvents`）：agent 事件总线桥接到 manager 层
- 评论逻辑集中到 TaskService，API Server 去重
- 新增 `getRequirement` / `getTaskComments` Agent 工具
- 睡眠看门狗（observational）与宽松处理超时，系统休眠后优雅恢复

### Stats

- 42 files changed, +3,043 / −731 lines

---

## v0.4.18

紧急修复 LLM 路由错误处理崩溃与流式气泡动画跨浏览器兼容问题。

### Bug Fixes

- **修复 LLM router enrichError 崩溃** — 部分 SDK Error 子类（OpenAI、Anthropic）将 `message` 定义为 getter-only 属性，直接赋值导致 "Cannot set property message of which has only a getter" 崩溃；改为包装新 Error 对象
- **修复流式气泡边框动画跨浏览器兼容** — 替换 `mask-composite` 方案（Windows/Chrome 下失效）为 double-background 技术（padding-box 纯色填充 + border-box conic-gradient），无需 mask 支持即可工作

### Stats

- 2 files changed, +17 / −25 lines

---

## v0.4.17

移除 PostgreSQL 支持，全面精简存储层；新增 Main Session 活动上下文与子 Agent 执行可见性；Mailbox 恢复与通知级联抑制；团队创建 UX 与流式动画优化；用户聊天可抢占后台处理。

### New Features

- **Main Session 活动上下文** — 新增 `is_main` 会话概念，非聊天类 mailbox 处理完成后自动注入活动摘要到主会话，Agent 跨任务执行保持叙事连续性
- **子 Agent 执行可见性** — Work 页任务执行日志展示嵌套子 Agent 时间线，ToolDetailModal 渲染子 Agent 详情，Chat 流式路径透传 subagentLogs
- **团队创建 UX 优化** — 创建团队后自动滚动高亮，空团队状态优化，Create Team 弹窗增加 Secretary 高级创建提示
- **流式气泡动画** — Chat 气泡在 Agent 流式输出时显示流动渐变边框动画
- **Heartbeat 支持创建任务/需求** — heartbeat 场景下允许调用 `task_create` 和 `requirement_propose`

### Bug Fixes

- **修复用户聊天无法抢占后台处理** — `handleMessage` 对自发场景（heartbeat、memory_consolidation、system_event、daily_report）支持抢占，human_chat 消息在下一个 yield point 中断后台工作
- **修复 notify_user 时序 bug** — `setUserNotifier` 追溯推送给所有已存在 Agent，缺少 notifier 时优雅降级而非硬错误
- **修复 discover_tools 参数混乱** — 合并 `name` 和 `tool_names` 为单一 `name` 参数，消除 LLM 参数混淆导致的技能激活失败
- **修复 Hub artifact manifest 写入错误** — `downloadAndInstall` 写入正确的类型文件名（agent.json/team.json/skill.json）而非通用 manifest.json
- **修复 main session 排序问题** — `getSessionsByAgent` 按 `is_main DESC` 排序，避免多会话 Agent 主会话被淹没
- **修复评论内容为 undefined** — task_comment/requirement_comment 增加内容校验
- **抑制审核通知级联** — 活跃审核期间抑制 reviewer→worker/creator 的冗余通知
- **Mailbox 启动恢复** — 重启时将卡在 processing 状态的 mailbox 项标记为 dropped
- **修复 agent_broadcast_status schema 枚举不匹配**
- **修复移动端 Profile 导航缺失 `enterMobileDetail` 调用**

### Refactoring

- **移除 PostgreSQL/Drizzle 支持** — 删除全部 Drizzle schema、repos、migrations 和 PgVectorStore，存储层仅保留 SQLite
- **存储类型整合** — 新增独立 `types.ts`，定义 `TaskRow` 等类型接口，移除 repo 的 `[key: string]: unknown` 索引签名
- **合并 A2A 工具组** — `structured-a2a` 和 `group-chat` 合并为 `a2a-extended`
- **静默状态转换** — blocked↔in_progress 转换不再触发冗余通知
- **集中 shell 超时限制** — 统一 shell 命令超时配置

### Enhancements

- FSM 感知的 TagPicker，高亮合法状态转换
- Mailbox 状态过滤器与 requirement_comment 类型支持
- WebSocket task:update handler 始终刷新看板
- 消息预览过滤未闭合 `<think>` 标签和工具调用 XML
- Secretary prompt 更新团队优先创建最佳实践
- Prompt 工程增加内置工具优先与禁止自动安装规则
- Manager 招聘指导扩展为 CREATE/INSTALL 两阶段工作流
- 安装脚本更新

### Stats

- 84 files changed, +1,632 / −4,911 lines

---

## v0.4.16

修复 Agent 动态创建全链路问题（白屏崩溃→数据丢失→事件断路）；修复 pause/resume 实际无效的 bug；移除 token 预算自动暂停机制；新增 heartbeat 完成任务复盘与 SOP 自动注入。

### Bug Fixes

- **修复秘书雇佣员工白屏崩溃** — LLM 调用 `team_hire_agent` 时可能不传 `name`，导致前端 `toLowerCase()` 崩溃；在工具层、`createAgent` 核心层和前端 API 层三重防御
- **修复新建 Agent 邮箱历史为空** — `start.ts` 监听的事件名 `agent:registered` 与实际 emit 的 `agent:created` 不匹配，导致动态创建的 Agent 未接入 mailbox 持久化
- **修复新建 Agent 重启后丢失** — 通过 `team_hire_agent` 创建的 Agent 未持久化到 DB，新增 `agent:created` 事件监听写入数据库
- **修复新建 Agent 无法发送主动消息** — `setUserMessageSender` 和 `setChatSessionsFetcher` 仅在启动时为已有 Agent 注册，重构为事件驱动，动态 Agent 也能即时接入
- **修复 pause/resume 实际无效** — `pause()` 只改状态标签但不停止 heartbeat、attention controller 和 memory timer，Agent 照常工作；现在真正停止/重启后台进程
- **修复 `builder_install` / `hub_install` 缺少参数校验** — 与 `team_hire_agent` 同类问题，补充运行时参数验证

### New Features

- **Heartbeat 完成任务复盘** — Agent heartbeat 时自动检查近期完成的任务，提取最佳实践并注入 SOP 上下文
- **11 个事件消费者接入 WS 广播** — `agent:removed/paused/resumed/started/stopped`、`task:completed/failed`、`system:pause-all/resume-all/emergency-stop/announcement` 全部通过 WebSocket 推送到前端
- **全局暂停状态 WS 同步** — 侧边栏 Pause/Resume 按钮监听 WS 事件实时同步，多客户端状态一致

### Refactoring

- **移除 token 预算自动暂停机制** — 删除 `maxTokensPerDay` 超限自动 pause 和午夜自动 resume 逻辑，保留 token 计数器供展示
- **清理冗余事件** — 移除 `agent:status-changed`（与 `stateChangeCallback` 重复）和 `agent:decision`（与 `attention:decision` 重复）
- **工作区安全策略重构** — 白名单策略替换为 deny-only 跨 Agent 隔离
- **API 路由加固** — 集中 agent-facing limits，统一前置条件校验

### Stats

- 43 files changed, +706 / −674 lines

---

## v0.4.15

Secretary 统一建设者角色，新增分级 Git 审批机制；Task FSM 重构为声明式状态机；移除 worktree 耦合，prompt 工程全面清理；修复 dream cycle 幻觉与 UI 问题。

### New Features

- **Secretary 统一建设者角色** — 合并原 builder agents 为 Secretary，集成 hiring / install / hub-tools 能力，新增 `builder-service` 和 hub 工具集 (#10)
- **分级 Git 命令审批** — 实现 tiered git command approval 机制，shell_execute 支持 HITL 审批回调，`ApprovalCallback` 返回 `{ approved, comment }`

### Refactoring

- **Task FSM 声明式状态机** — 用声明式 transition matrix 替代散落的状态判断，引入 phased side-effect pipeline，统一任务生命周期管理
- **合并 task_assignment 到 task_status_update** — 消除独立的 `task_assignment` 消息类型，通过 `triggerExecution` 标志复用 `task_status_update`，修复被抢占任务的自动恢复
- **移除 worktree 耦合** — 核心 prompt 工程与 worktree 概念解耦，`TaskWorkspace.worktreePath` 重命名为 `repoPath`
- **Prompt 工程全面审查** — 清理冗余 prompt、统一术语、优化上下文注入策略

### Bug Fixes

- 修复 dream cycle（memory_consolidation）幻觉 — 新增独立 `memory_consolidation` scenario，避免 sleep 周期误触 task 工具
- 改进审批通知面板 UI
- 修复 Work 页面切换后筛选条件丢失

### Enhancements

- 移动端 UI 优化
- Reports / AgentBuilder / AgentProfile 页面细节改进

### Stats

- 43 files changed, +1,865 / −1,013 lines

---

## v0.4.14

前端全面 UI 优化：统一状态颜色体系、新增 Cyberpunk/Midnight 主题、通知着色、卡片视觉重设计；修复执行日志误显 Completed 问题；清理 CLI 与仓库垃圾文件。

### Enhancements

- **统一 agent 状态配色** — 全局 working=蓝色、idle=绿色、error=红色、paused=琥珀，涉及 Home / Work / Team / AgentProfile / TeamProfile / TeamModals / ChatTeamSidebar / Reports 共 12 个文件
- **新增 Cyberpunk & Midnight 主题** — `useTheme.ts` 扩展主题模式，`index.css` 新增 oklch 配色变量，Onboarding / Settings 同步更新
- **首页团队卡片优化** — 团队描述移至名称下方，flex-wrap 适配移动端
- **Work 页负责人状态着色** — assignee 名字颜色随 agent 状态动态变化
- **通知事件着色** — NotificationBell 按事件类型（completed/failed/alert/chat 等）显示不同颜色图标
- **Store 页图标清理** — 移除侧边栏和所有卡片中的装饰性图标，仅保留名称和副标题
- **卡片视觉升级** — agent/team 卡片增加悬浮阴影、顶部渐变线、hover 高亮等现代效果

### Bug Fixes

- 修复 Chat 页 working 状态显示为橘色（amber）而非蓝色
- 修复 CompactExecutionCard 在无明确完成状态时误显"✅ Completed"

### Removed

- Settings 页暂时移除 OAuth Authentication 区域
- 清理仓库垃圾文件：`concurrent-task-system-design.md`、`coverage-output.txt`、`test-heartbeat-issue.md`、`test-openclaw-config.md`、`temp-replace.ts`

### Stats

- 21 files changed, ~400 lines net

---

## v0.4.13

### Highlights

全新邮箱系统（Mailbox）取代旧的 A2A Bus，统一 agent 间通信与用户通知；新增 CLI 管理命令（model / channel / auth / doctor），大幅提升开箱体验；启动流程加入动画进度展示。

### New Features

- **Mailbox 系统** — 退役 A2ABus，所有 agent 间消息路由统一走 mailbox，新增集中式类型注册和统一 Mind Tab 展示
- **用户通知体系** — 新增 `notify_user` + `request_user_chat` 双模式 agent-用户通信，持久化通知存储（SQLite），支持 actionable deep-link 通知
- **CLI 命令扩展** — 新增 `markus model`、`markus models`、`markus channel`、`markus auth`、`markus doctor` 命令，用于管理 LLM 提供商和通道
- **启动动画进度** — TTY 感知的动画渲染启动进度条，启动后自动打开浏览器
- **评论上下文协议** — agent 回复 task/requirement 评论前，强制先拉取完整状态和历史评论，避免无上下文的空泛回复
- **通知深度链接** — 点击通知可直接跳转到对应的 task、requirement 或 chat session

### Refactoring

- **移除 ephemeral session** — 统一所有 LLM 调用为持久化 session，消除 ~30 个 `isEphemeral` 分支判断，简化核心代码路径
- **统一导航配置** — 集中路由配置到 `routes.ts`，页面重命名（Dashboard → Home, Projects → Work, Chat → Team），修复 UI 问题

### Enhancements

- Slack / 飞书 / WhatsApp adapter 富消息支持增强
- 用户交互（human_chat / task_comment）提升为优先级 0（critical），始终抢占非用户任务
- LLM judge prompt 展示完整 mailbox 队列，供智能决策
- 新增共享模型定义 MODEL_CATALOG

### Bug Fixes

- 修复通知点击导航 — 支持 task、requirement、chat session 的 deep-link
- 修复启动时空行问题：`write()` 丢弃渲染内容 & logger 在动画进度期间未抑制控制台输出
- 修正 ASCII banner 拼写（MARKUS）

### Stats

- 77 files changed, +8,433 / −1,672 lines

---

## v0.4.12

- Minor fixes and updates

## v0.4.11

- Minor fixes and updates

## v0.4.10

- Minor fixes and updates

## v0.4.9

- Update package dependencies

## v0.4.8

- feat: use node sqlite

## v0.4.7

- Update release notes and install script
