更新日志
每个版本的新功能、修复与改进
Jarvis 更新日志
本文件记录 Jarvis 的所有显著变更。格式基于 Keep a Changelog。
[Unreleased]
新功能
agent-profile: Phase 0+1 改进 — Bug 修复、模板充实、对话创建、自动应用 (#1262)
chat: @ 提及会话功能(Chat Composer) (#1242)
coding-session: 快照模式补齐单向指令下发框(复用 dispatch 后端) (#1240)
prompt: 主脑系统提示词加「定时任务优先用 Jarvis 原生 cron 工具」(#1251)
scheduler: 主脑原生 Cron 定时任务能力(后端持久化调度器 + MCP 工具)(#1247)
Bug 修复
chat: @ mention 全面加固——根因修复 + 产品缺口补齐 (#1264)
chat: 远程/隧道场景 WS 断线后聊天列表永久冻结加自愈兜底 (#1200) (#1235)
codex: Hooks -c overrides 改 TOML literal string 修 Windows ConPTY 启动失败
codex: 修复残留 url 格式 MCP 配置导致 Codex 启动报错 (#1243)
coding-session: Muted-dirs 归一化改平台感知,保留 Linux 大小写敏感性
coding-session: Muted-dirs 匹配/存入/删除三端归一化(#1238)
coding-session: 侧栏 cwd 分组键归一化盘符大小写/分隔符(#1238)
coding-session: 侧栏指示灯改排除法,修 unavailable 会话误显灰色未知 (#1258)
coding-session: 快照下发门控改排除法,补齐 waiting_for_instruction (#1248)
coding-session: Runtime_health 降级原因去重
coding-session: Codex 活动状态解析移出事件循环
db: #1230 ActionRequestStore 同库连接补 busy_timeout,止住瞬态 database is locked (#1254)
db: #1189 WAL 积压周期 TRUNCATE checkpoint + worker uplink 写路径 busy 自愈 (#1252)
ios: 修复 TestFlight 前端构建解析
process-utils: 加固 is_process_alive 永不抛 + 清理死代码 (#1241)
runtime: Shutdown 改用 signal.raise_signal 对齐 controller_watchdog (#1241)
scheduler: Cc-brain 主脑挂上 Cron 工具(补 MAIN_BRAIN_TOOL_WHITELIST)(#1250)
session-os: 修外部会话 status 拉锯致 resumed/stale_detected 堆积 (#1256)
session-os: Reaper/coding_sessions/takeover 探活统一委托 process_utils.is_process_alive (#1241)
[0.6.21] - 2026-07-02
新功能
brain-source: Phase 0 brain_source 抽象,主脑 source_type 守卫泛化(cx-brain 铺路)
coding-session: 外部会话接管入口按钮(顶栏,live 派生)(#1155) (#1229)
coding-session: 桌面端加「终端渲染/会话快照」显式切换开关 (#1198) (#1199)
coding-session: SIGHUP 进程内优雅 re-exec——后端更新零中断 (#1139 Stage 2)
coding-session: PTY handoff 核心原语——re-exec 保留 master fd (#1139 Stage 1)
frontend: 增加启动期运行面预检
release: Stable 软约束 hook + 回退脚本(软保护 + 可回退)(#1226)
remote: 桌面离线时显示单屏恢复页
remote: 增加桌面离线能力门控
remote: 增加桌面离线全局状态横幅
security: 支持本机控制密钥轮换恢复
security: 展示本机控制密钥配对状态
security: 本地签名远程配对入口
security: 记录桌面签名配对挑战
security: 增加桌面本地控制密钥
security: 接入iOS原生设备签名
security: 增加iOS安全设备密钥插件
security: 抽象移动端设备签名提供者
security: 校验移动端P256命令签名
security: 记录移动设备密钥算法
security: 显示远程高危控制状态
security: 接通远程终端授权请求
security: 显示远程审批授权拒绝
security: 显示远程终端授权拒绝
security: 记录远程终端授权审计
security: 记录远程命令授权审计
security: 增加远程控制安全审计
security: 增加远程终端本地授权入口
security: 签名远程终端控制帧
security: 接入移动端签名命令状态
security: 接通移动端本地设备配对
security: 增加远程设备管理桌面入口
security: 增加移动端命令签名基础能力
security: 识别 Clerk 代管会话并限制高危控制
security: 增加远程高危能力本地授权
security: 强制远程控制签名信封授权
security: 增加远程命令签名信封校验
security: 暴露远程设备配对接口
security: 增加本地配对设备数据层
security: 接通 Worker Access 服务令牌路径
security: 校验 Cloudflare Access 源站 JWT
session-os: Launch_session 暴露 per-launch worktree 隔离开关 (#1177)
session-os: Cx-brain — 官方 Codex 当主脑端到端落地(Phase 1+2,#1123)
Bug 修复
account: 拆分本地退出与远程访问断开语义
account: 拆分本地退出与远程访问断开语义 (#1137)
auth: 修复桌面 Clerk 状态轮询
auth: 恢复桌面端 Clerk 内嵌登录
auth: 修复桌面端重新登录闭环
auth: 修复桌面退出登录状态误导 (#1216)
auth: 修复移动端注册后回到 App
backend: 保留回滚后的迁移历史
backend: 修复 PID 复用误判 lease 活着——instance_owner 加进程身份校验 (#1146) (#1151)
chat: LoadHistory() 合并保护,修复手机端发消息不回显 (#1193) (#1197)
chat: 增加桌面离线降级态
ci: 补齐前端可选依赖锁记录
ci: 修复站点部署前端锁文件
coding-session: 后端重启 auto-resume 托管 cc·codex 会话(#1112)
frontend: 修复点击活跃会话时任务列表瞬间跳到首位(#1222) (#1223)
frontend: 任务列表 worktree 子目录归并到仓根显示 (#1176)
frontend: Studio ChatComposer 补 desktop-down 必填 prop 并清理失效 :deep 选择器
frontend: Studio 副驾驶对话换用 ChatComposer 对齐主会话设置
frontend: 修复 iPhone 移动端安全区布局
frontend: 识别终端无效 token 关闭原因
frontend: 统一鉴权与移动布局运行面判定
frontend: 启动时安装运行面预检
frontend: 隐藏账户页待处理浮层 (#1136)
mobile: 声明 Tauri API 依赖并更新预检 checkpoint
mobile: 统一 Tauri 能力探针
mobile: 按预检能力显示扫码入口
mobile: 统一 Tauri 能力探针
pwa: 自动更新托管App缓存
remote: 允许桌面令牌更新隧道配置
remote: 统一托管端登录入口 (#1187)
remote: 修正 Clerk 登录后返回 /app (#1185)
remote: 使用 Clerk 原生账户入口加固托管移动端 UX (#1184)
remote: 避免托管账户入口挂载聊天路由 (#1179)
remote: 统一托管端运行时识别
remote: 过期托管会话进入账户入口
remote: 以托管端标记兜底运行时识别
remote: 使用注入运行时识别托管端
remote: 托管端禁用桌面隧道生命周期
remote: 按连接状态阻止移动端桌面路由 (#1170)
remote: 阻止无可用登录令牌时进入桌面路由
remote: 加固移动端登录即远程访问 UX
remote: 限制桌面离线预检只作用于托管端 (#1164)
remote: 桌面离线预检阶段禁止启动面板轮询
remote: 桌面离线时暂停前端后台噪声
remote: 前端映射530为桌面离线
remote: 规范530桌面离线错误
remote: 规范桌面离线错误契约
remote: 按启动期能力降级远程控制入口
remote-access: 未登录时暂停桌面隧道 (#1224)
remote-access: 防止移动端瞬时 tunnel_down 踢回离线页
remote-access: 修复移动端登录后误弹 API Key
remote-access: 稳定 iOS 托管连接状态
security: 加固远程控制账户边界
security: 降级远程控制本地签名层
security: 校验桌面签名配对挑战
security: 迁移移动端临时私钥存储
security: 校验 Clerk JWT 绑定策略
security: 加固远程控制所有者边界
session-os: Cc-brain 上下文占用把 Sonnet 5 误判为 200k 窗口 (#1196)
session-os: Worker 任务结束/归档自动回收 worktree + 周期 sweep 兜底 (#1178)
session-os: Codex worker MCP uplink 改用 stdio relay(修复 url 注入工具不可见)
session-os: Cx-brain 修复 codex native-id 捕获为空与 MCP readiness 永不就绪 (#1123)
session-os: Cx-brain 修复 main_brain 标志被启动链路中间层吞掉导致主脑无回复 (#1123)
session-os: ① 启动 auto-resume 排除已被 #1139 优雅 re-exec adopt 的存活会话
session_os: Worktree worker 被外部续接复活时重认领回 managed 而非翻 external
settings: 桌面离线时显示恢复态
settings: 增加桌面离线远程状态
settings: 修正移动端远程访问账户入口
workspace: 区分桌面离线与空工作区
重构
- frontend: CurrentModel 提升为模块级单例
[0.6.20] - 2026-06-29
新功能
account: 增加账户中心与安全管理入口
account: 添加 Clerk session 管理封装
chat: 自主监督前端补冷启「开启」入口 (#1092) (#1102)
chat: 主脑自主监督前端指示器 + 停止开关 (#1092) (#1099)
chat: 普通 LLM 主脑路径也支持自主监督开关工具 (#1092) (#1097)
profile: Conversational onboarding + customizable user/assistant names (#1062)
prompt: 主脑默认派活 + 全自主长程监督多 worker (#1087)
remote-control: Telegram 出站文件 + 主会话发文件工具(双向文件闭环)
remote-control: Telegram 通道入站文件落 inbox(等价浏览器拖拽)
session-os: 暴露主脑自主监督状态 GET/POST API(前端支持)(#1092) (#1098)
session-os: 自主监督无 worker 自动收敛 + 上限/收敛主聊天通知 (#1092) (#1096)
session-os: 主脑全自主跨轮无人值守监督 Phase 1 (#1092) (#1094)
session-os: Worker 会话自动注入 search_kb 工具并加入主动查 KB 意识 (#1067)
settings: 设置页可接通 Telegram 通道(下载用户无需改 .env)
settings: 增加账户摘要入口
workspace: 桌面三栏支持隐藏/恢复任务列表与控制塔 (#1078)
Cc-brain 模式 UI 实时显示主脑 context 占用 (#1064)
Bug 修复
account: 修复账户页滚动与操作层级
account: 打通添加账户入口路由
android: IME inset 改主动轮询+onResume 兜底,根治冷启动竞态致键盘遮挡 (#1056) (#1057)
backend: 修复 Windows 桌面端重启黑屏——instance_owner 进程探测崩溃 (#1105) (#1106)
composer: 控制塔输入框草稿切换视图后保留 (#1113) (#1114)
frontend: 修复共享移动包依赖解析
frontend: 修复 iPhone 顶部安全区布局
frontend: 修复 iPhone 移动端安全区布局
frontend: 移动端 context 占比条移到远程指示灯右侧并与同行控件等高对齐 (#1066)
frontend: WS 工作区移动端单列折叠改 JS class 驱动,根治安卓 wry 偶发双栏 (#1058) (#1059)
mobile: 会话快照介入提醒折叠/紧凑化/自动消退(#1069) (#1070)
mobile-web: 移动端输入框草稿切 tab 后保留 (#1119) (#1121)
mobile-web: #1110 落地 barcode 依赖 + 修正 Tauri 壳扫码检测探针 (#1117)
mobile-web: 未绑定网页端首屏引导——NO_BINDING 断路打通 + /claim 同屏绑定引导 (#1085)
nav: 明确账户入口语义
session-os: Cc worker provider 凭据写入 --settings env 块,防止被用户全局 settings 覆盖 (#1129) (#1130)
session-os: 正忙的 cc worker 不再被残留 observe-only permission_notify 误显「待授权」(#1127) (#1128)
session-os: Inject configured kb_path into worker prompt at launch time (#1071)
session-os: 脱敏 worker KB 提示词中的用户私有路径和工具信息 (#1068)
session-os: Decouple cc registry reconcile from process-snapshot early-return (#1054) (#1055)
session_os: Cc-brain 未选目录时 worker 不再回退到主脑隔离目录(修复身份混淆) (#1103)
session_os: Pin MCP relay stdio to UTF-8 so Windows GBK locale cannot mojibake CJK dispatch prompts (#1073)
session_os: 修复 cc-brain 1M 上下文窗口检测,占比不再虚高约 5 倍 (#1084)
settings: 修正移动端远程访问账户入口
site: 修复手机端 app 深链路路由 (#1126)
studio: 桌面 Studio 待处理浮动卡不再遮挡顶栏右上角按钮 (#1111) (#1118)
54LH 裸机/边缘鉴权自托管三连修复(#1034 deploy + #1032 Clerk + #1033 docs) (#1063)
Route all 4 MCP uplink tools to bot notification channels (#1053)
[0.6.19] - 2026-06-26
新功能
frontend: 手机端顶部整理——顶栏隐藏、入口下移与并入设置
frontend: 工作区会话列表面板标题改为「任务列表」
frontend: Worker MCP 报告展开后增加「打开工作终端」按钮 (#1024)
frontend: #1020 终端鉴权失败改为清晰可操作的错误面板
session-os: 任务列表会话名优先用 worker 自报 title(set_session_title)
Bug 修复
agent-links: .claude/.codex settings.json 改提交镜像,修复 Windows symlink 退化致 Settings Error
coding-session: #1020 终端 WS 支持可信 Origin 白名单 + 结构化失败提示
frontend: 待处理菜单手机端自适应弹出方向(dropup)
frontend: 「打开工作终端」改为进入 focus 三栏工作区并选中会话 (#1024)
release: 桌面 target=all 重建 downloads.json 时保留 android-arm64
session-os: #1008 Windows 接管会话退出后用无控制台 helper 子进程补发鼠标 reset
session_os: 修复 Windows 孤立代理项致 MCP relay UTF-8 编码崩溃 (#1023)
重构
- frontend: #1020 抽出 TerminalAuthErrorPanel 独立组件
[android-v0.6.18] - 2026-06-26
新功能
ios: 收敛到远端 App 壳
prompt: 主脑派活时设清 worker 汇报点 (#1012 item 2)
runtime: 加固桌面运行时 CLI 发现
session_os: Stop hook 闭环——worker 卡住未求助时兜底推送+主动 nudge (#1012 item 3/4)
session_os: 强化 worker uplink prompt——blocked/ask_human 改命令式 (#1012 item 1)
session_os: 并发 worker 自动 git worktree 隔离防互踩 (#1000)
Bug 修复
mobile: 修复 iOS 主聊天流式响应重复 (#1016)
session-os: 修复 MCP hardening rebase 后测试门禁
session-os: 修复 Codex worker MCP 注入缺口
session-os: 修复被接管的 idle 会话 backend 重启后变孤儿 #1018
session-os: #1008 Windows 接管会话退出后补发终端鼠标 reset(Console API 路径)
session_os: Resume 接管的 cc worker 一致注入 MCP uplink (#982)
session_os: Worktree 隔离自审修复 TOCTOU 与归档误删 (#1000)
[0.6.18] - 2026-06-26
新功能
backend: 增加桌面 runtime handoff 控制接口
desktop: 实现 backend 版本 handoff 与原子 updater
workspaces: 目录浏览 API + 移动端目录浏览器替代本机原生选择 (#976)
Bug 修复
android: 注入软键盘 IME inset 修复输入框被键盘遮挡 (#975)
chat: 控制塔输入框流式期间保持可输入 + type-ahead 排队自动发送 (#999)
chat: 覆盖出站 OpenAI 客户端 UA,绕过 WAF 拦官方 SDK 默认 UA
ci: 部署入口补装 packages/shared-mobile 修前端构建漂移 (#974)
desktop: 避免 handoff 请求在 Tauri runtime 内 panic
net: 信任 OS 系统证书库,修企业 TLS-MITM 代理下出站 HTTPS 全失败
packaging: Cc-brain relay 改用 collect_submodules('src.cli') 全收懒加载子命令
packaging: Add missing main_brain_relay_cmd to PyInstaller hiddenimports
packaging: 显式打包 truststore,修桌面版 CA 修复在打包态失效
release: 兼容 Apple p8 secret 格式
session_os: 修复外部 cc 会话 takeover 后反复秒退死循环 (#998)
session_os: Cc-brain 用户选定的工作目录优先于主脑猜测的绝对 cwd (#990 跟进)
session_os: Cc-brain 模式把用户选的工作目录注入 worker 启动,修目录选择被忽略
update-checker: 修复 web 端下载链接 404 与 date 字段恒空 (#996)
workspaces: 目录浏览面板改用 pointerdown 判定点外部关闭,修移动端点「浏览」面板直接关闭 (#976)
workspaces: 目录浏览等 workspaces 调用走 hostedFetch 适配 hosted/手机鉴权 (#976)
[0.6.17] - 2026-06-25
新功能
coding-sessions: 提升 runtime host 长会话可靠性
coding-sessions: 暴露 agent_state 读侧合同
ios: IOS UX 打磨——登录修复 + 调试工具链 + auto-tunnel (#936)
mobile: 共享移动前端提取 + iOS 实测通过 (#949)
mobile: 移动端 Companion 共享页面脚手架——Shell + 4 页面 + 路由接入 (#946)
mobile/chat: #872 Phase3 前端——状态条/手机快照显示"待拍板"(选项卡)
remote: 零摩擦远程控制 + 认证链路加固 (#907)
session-os: #901 会话快照透出 runtime/模型/上下文占用 + 手机端一键复制会话编码
session-os: #901 会话快照透出 runtime/模型/上下文占用 + 手机端一键复制会话编码
session-os: #872 Phase3 续——主会话 capsule 直接带出选项卡问题/选项
session-os: #872 Phase3——待拍板(选项卡)纳入跃迁推送(Telegram/状态条)
session-os: #872 Phase3——介入态分出"待拍板"(选项卡) + 空闲不再误显待授权
session-os: #872 Phase2——cc 选项卡(option_card)结构化判别 + intervention kind 细分
site: 下载页加安卓 APK + 中转 R2 工作流
worker: 桌面端 KV 同步端点 /tunnel/sync-binding (#913)
worker: 零摩擦远程控制 — Worker auto-connect 端点 + 手机自动连接 (#906)
Bug 修复
acceptance: 对齐临时 API key 脚本默认 DB
auth: 登录后直接回跳 /app/ 而非营销主页(#895)
ci: 共享移动目录添加 tsconfig 阻止 Vite 继承桌面配置
ci: IOS CI vue-tsc——共享文件模块解析 symlink
coding-session: 切换会话连上 live 终端后抖一下尺寸强制整屏重画(修底部残缺)
coding-session: Idle 活会话前端自动接管 live 终端恢复键盘输入
coding-session: Idle 活会话恢复 live 终端键盘输入
desktop: Windows 桌面壳健壮性——log 插件不再因 log 目录不可解析而 panic + 清理 dead_code (#912)
desktop: 修复 cloudflared 打包路径检测
desktop: 防止复用旧版本 backend owner
frontend: 修复桌面窄屏 Studio 入口误隐藏
frontend: #900 修复手机端「待处理」下拉菜单溢出屏幕左边界被裁切
ios: CI npm ci 修复——补齐 ws 可选依赖到 lock file
ios: 同步 iOS package-lock.json 修复 TestFlight 构建锁文件不一致 (#951)
packaging: 修复 frozen 主脑秒退——补 OpenConsole.exe 进打包 (#911)
packaging: 仅在 Windows 打包 tzdata hidden import
portability: Windows 后端 critical gate 全绿(编码/POSIX 假设治理,#938) (#942)
release: 桌面发布构建前端前先装 packages/shared-mobile 依赖
scripts: IOS/desktop 构建脚本加固——依赖安装 + assets 目录自动创建 (#945)
session-os: Cc-brain 经 relay 自调 launch_session 时注入控制塔齿轮设置(修编码模型失效)
session-os: Cc-brain 首条消息等 MCP 就绪再下发 (#776) (#948)
session-os: Frozen 构建经 CLI 子命令拉起 cc-brain MCP relay (#918) (#920)
session-os: #872 恢复大会话自动选"Resume from summary"——不再卡选项卡(方案A)
session-os: #872 修 awaiting_input 误吞非 cc 授权——只 cc idle_prompt 归 awaiting_input
session-os: #872 托管 cc 会话 busy/idle 跟注册表——修恢复后卡选项卡/空闲不提醒
session-os: #901 快照修复模型名缺失 + 上下文占比按真实窗口(1M/200k)
session-os: #901 快照修复模型名缺失 + 上下文占比按真实窗口(1M/200k)
session-os: #899 接管外部会话退出后向其原终端补发 DEC mouse-mode reset
start: Restart 构建前自动安装 packages/shared-mobile(修 #967 回归)
tunnel: Worker 认证解耦 + auth/tunnel 日志加固 (#944)
worker: IOS/web 认证流程解耦 (#915)
worker: Safari 登录后立即返回 iOS App,不再卡在浏览器 (#914)
worker: 中间件为 /tunnel/auto-connect 透传 clerkToken (#908)
重构
cleanup: 退役 SkillHub 模块
cleanup: 退役 ToolCoach 模块
frontend: 删除终端「顶部/底部」死按钮(alt-screen TUI 恒 no-op)
frontend: 精简桌面端编码工作区 UI(压层/终端控件/删隐藏面板)
minimal-core: 退役 JCL 与 MemAgora 运行时代码
minimal-core: 退役 JCL 与 MemAgora 运行时代码
mobile: 共享移动端独立为 packages/shared-mobile workspace 包
tools: 退役 get_weather 工具
tools: 退役 web_search 工具
[android-v0.6.15] - 2026-06-24
新功能
android: 安卓壳应用 Jarvis 品牌图标
android: Apps/Android/jarvis-android Tauri v2 原生壳(#826 穿刺验证)
chat: Worker MCP 推送在主会话折叠为"可读但低调"卡片
chat: 主会话多模态文件输入 P2 后端 — 上传收件箱 + 周期 sweep
chat: 主会话多模态文件输入 P1 后端 — 原生选文件→绝对路径中转
coding-session: Per-launch 放权模式 + cc effort 透传,cc 放权免确认键
dev: 手机调试模式(cloudflared 隧道 + 二维码 + 热更新)
frontend: 主会话多模态文件输入 P3 — Tauri 桌面壳拖拽拿真路径
frontend: 主会话多模态文件输入 P2 前端 — 上传/粘贴/拖拽 + 触屏适配
frontend: 主会话多模态文件输入 P1 前端 — 附文件按钮 + 路径 chip
frontend: 控制塔 Worker 设置归拢单一入口(目录/工具/模型/放权/effort)
ios: 统一 iOS 端英文文案 + 删除 AccountSheet 死代码
ios: 统一连接状态 composable + 断连 banner
ios: 重写 Gate 页配对 UX(QR 扫码 + 确认 + 错误引导)
ios: 添加 tauri-plugin-barcode-scanner 插件支持
mobile: 只读快照轻量自动刷新——可见且活跃才轮询、终态停
mobile: 手机快照对"待授权/待介入"加只读提醒(cc 原生权限不可按钮回复)
mobile: 只读快照动作面板——待授权高亮介入按钮 + HTTP 急停
mobile: 终端只读方案 C — 手机端只读镜像 + 动作条,不再搞乱桌面端
mobile: 移动适配细化(切换/滚动/顶栏/终端/设置)+ apps/Android 交付层归属
mobile: P0 底部全局导航(控制塔/工作区/终端/设置)解开移动端导航死路
model-pool: [1m] cc 专用模型主会话隐藏/coding agent 保留 + 下拉减负
model-pool: 添加模型支持常用供应商预设(选预设只填 key)
model-pool: 模型池一键导出/导入(含明文 key 跨机器迁移)
packaging: PyInstaller Windows .ico 图标 + version info 资源
platform: Backend controller watchdog——壳强杀/崩溃不再漏孤儿 backend
platform: Native_pty 接入 Windows ConPTY 路径(P1-1/P1-2)
platform: Native_pty 加 WinPtyTransport(pywinpty ConPTY 后端)
prompt: Worker MCP 工具用法指引 + 主会话"侦测待处理并介入"指引
security: Safe_chmod 在 Windows 用 ACL 真正锁定 owner-only 敏感文件
Bug 修复
api: 终端 WS 支持 Clerk JWT 认证(X-Clerk-Token),手机经隧道可连终端
chat: /chat 放开 model/coding_model 的 [1m] 方括号(修 422 全挂)+ 设置页模型池按供应商分组
chat: Slash 命令为完整精确命令时回车放行提交执行
ci: IOS TestFlight 使用 macos-26 runner(Xcode 26 + iOS 26 SDK) (#861)
deps: 约束后端验证依赖版本
desktop: Windows spawn backend 加 CREATE_NO_WINDOW,消除双击弹出的终端窗口 (#854)
desktop: 闭环 macOS watchdog 孤儿进程验收
discovery: Launch 宽限改按诞生时刻判定,修连续活跃外部会话永不入库 (#870)
discovery: 会话发现用 psutil 取进程 cwd 替代 lsof,消除 macOS TCC 弹窗
frontend: 移动端 dvh→vh + 安卓壳安全区 + 移动端性能
frontend: 编码模型选择剔除 cc-brain 订阅项(无法 --model 注入)
frontend: 懒加载 chunk 失效时整页重载,修复部署后控制塔设置/Studio 点不动
frontend: 修复 Windows 原生 select 下拉白底白字不可见
frontend: Minimal_core 下移除编码会话摘要「新功能」首装横幅 (#801)
frontend: 工作区侧栏筛选状态持久化到 localStorage
ios: 声明 ITSAppUsesNonExemptEncryption=false 跳过 TestFlight 合规审查 (#864)
ios: 重新生成 frontend/package-lock.json 兼容 Node 24 npm ci (#858)
ios: 重新生成 package-lock.json 兼容 Node 24 npm ci (#856)
ios: 真机测试修复 — tauriFetch CORS 绕过 + claim 错误引导 + 滚动
ios: 生成无透明通道 AppIcon
logging: Windows 控制台/守护日志强制 UTF-8,修复中文日志乱码
login: 桌面登录页添加账户确认页
mobile: 安卓旧 WebView(Chrome92)兼容兜底——build.target + color-mix/:has 降级
mobile: 满高布局回退纯 100vh,修原生壳输入框被挤出+无法滚动(dvh=0 实锤)
mobile: 满高布局改用 min(100vh,100dvh),修安卓原生壳输入框被挤出视口
mobile: 模型池设置头部按钮窄屏自适应(竖排+整行等分)+ 表格可横向滚动
mobile: 移动端满高布局改用 100dvh,修浏览器标签页底部被地址栏挤掉
mobile: 移动端编码终端退化为只读快照,不再 attach live PTY
mobile: 终端只读光标收紧——不闪烁/不聚焦/隐藏未聚焦光标
mobile: 工作区点进会话 → 底栏高亮跟随到「终端」
mobile-auth: 添加账户确认页替代自动跳转
model-pool: Z.ai 预设恢复 glm-5.2[1m] cc 1M 变体 + 改正 [1m] 实为原生 cc 剥离指令
model-pool: 预设移除 [1m] 路由档位标记 model id(OpenAI 端点 Unknown Model)
model-pool: MiniMax 预设改用官方核实端点 api.minimax.io(去 UNVERIFIED)
platform: Vendor tiktoken cl100k_base BPE,离线精确计数(合并 #839 兜底)
platform: Windows 打包 tzdata,修复 ZoneInfo UTC 崩溃
platform: 补 Windows GBK 编码——产品代码 6 处 + 测试 4 处裸 read/write_text
platform: Worktree/skill_hub symlink Windows fallback + 修复 cleanup_stale 路径比较
platform: 修复 edit_file Windows 文件锁 WinError 32
platform: WinPtyTransport.spawn 用 shutil.which 解析裸命令名
platform: 修正 Windows cc 中断为写 \x03 经 ConPTY(穿刺纠偏)
pwa: CF Pages /app Function 强制 sw.js/入口 HTML no-cache,根治手机端卡旧构建
pwa: Sw.js/registerSW.js/入口 HTML 加 Cache-Control no-cache,根治手机端卡旧构建
pwa: 修复 PWA 图标(manifest 路径错 + 文件缺失)→ 可正常安装
scripts: Windows restart/start.ps1 后台启动,日志落文件不再刷前台终端 (#863)
scripts: Start/restart.ps1 解析 Python 时回退 backend.venv
session-os: #872 Phase1——observe-only intervention 事件流对账,修忙碌会话误显待授权
terminal: /replay 尾窗口锚定到最后一次整屏重绘,修会话切换花屏 (#515)
terminal: 原生 PTY 输出扇出,多端同看不再互相瓜分致花屏
test: 非 Windows 主机守卫 fs_links junction 测试,修复 critical 门禁
test: 非 Windows 主机守卫 fs_links junction 测试,修复 critical 门禁
theme: 旧 WebView color-mix 兜底扩展到 --bg-secondary 等(修粘性条/底栏透明)
theme: 旧 WebView 无 color-mix 时浮层/菜单背景退化为实色(修复透明不可读)
tokens: Tiktoken 离线韧性——加载失败降级近似 + 持久缓存默认
worker: Tunnel/check 使用 API key 认证探测,检测吊销状态 (GAP-3)
worker: Register 清理陈旧 desktop 绑定 + 记录 tunnel owner (GAP-2)
worker: 扩展 teardown 支持用户级 KV 绑定清理 (GAP-1/GAP-5)
worker: 修复 /mobile 登录后浏览器不跳回 iOS app 的问题 (#808)
worker: 修复 /mobile 登录页缺失 Clerk UI 组件导致 mountSignIn 失败 (#807)
远程控制 UX 加固 — 12 项 NUX gap 修复 + 安全加固 (#819)
[0.6.15] - 2026-06-23
新功能
ios: 实现 coding session 列表 — API 层 + 列表渲染 + 轮询 (#795)
ios: 分离思考块与响应块,添加 Markdown 渲染
ios: 添加账户管理 UI 与 UX 优化 (#779)
ios: #743 iOS companion app 认证加固与深度链接 (#765)
ios: #743 ASWebAuthenticationSession 替代外部 Safari 登录
ios: #743 注册 jarvis:// URL scheme + deep-link 插件
ios: Tauri.ios.conf.json 指向 iOS 独立前端产物
ios: 创建 iOS companion app 独立前端
ios: #743 WKWebView Clerk 认证集成 — 自定义 fetch 拦截 + 自定义登录表单
ios: #743 iOS companion app 连接打通 + 三阶段 gate 流程
mcp: 本地 MCP Server — coding agent → Jarvis 主动通信通道 (#772)
platform: Windows 原生适配 P0——进程管理跨平台化 + health smoke 打通
skills: 新增 model-toolcall-eval 实验技能(固化工具调用能力评测流程)
worker: #743 移动端 Safari 登录落地页与票据交换 API
Bug 修复
chat: Fp8 自托管端点流式空轮非流式兜底(仅 fp8 生效)
chat: MiniMax 主会话可用性 + _load_row 热路径读时写根因(#781) (#783)
db: Model-pool 写端点也加 busy/SNAPSHOT 自愈(#781 item2 续) (#794)
db: DB 写锁加固 P1——busy_timeout↑ + 只读路径 busy/SNAPSHOT 自愈(#781 后续) (#790)
db: 补强 coding session DB busy 语义
desktop: 增强启动失败 owner 诊断
desktop: 修复数据目录单实例所有权与模型切换 500
frontend: 恢复 package-lock.json 丢失的 optional 依赖 (#768)
frontend: 恢复 package-lock.json 中丢失的 optional 依赖
frontend: 还原 Desktop 前端,消除 iOS isTauri() 回归
ios: 修复 Menu 连接状态从硬编码改为真实健康检查 (#797)
ios: IOS companion app UI 加固 (#793)
ios: 解析历史消息 blocks 格式,分离 thinking 与 text
ios: 添加 emoji 字体族到 CSS font stack
ios: 修复 CJK 字体回退顺序,仅导入中文子集
ios: 捆绑 Noto Sans SC 字体解决 CJK 渲染缺失
ios: 移除未加载的自定义字体,使用 iOS 原生字体栈
ios: 移除冗余 ChatHeader 顶栏,回收屏幕空间
ios: 修复 tacos-tauri 输入框聚焦自动缩放
ios: 修复 WKWebView 底部间隙与 TabBar 渲染问题 (#784)
ios: 修复 MobileChatPage SSE 流式解析 (#780)
ios: 修复 tauri.ios.conf.json 构建命令相对路径
ios: #743 Gate 页面未登录时显示 Clerk 登录组件
platform: 修复 Windows 前端空白——静态文件 .js MIME 类型错判
session-os: 回收 cc/codex 僵尸托管行(#781 item4,两轮判死防误杀) (#796)
test: 补 test_process_utils Unix-only skip 的 owner/restore 标注
worker: 添加 CORS 支持解决 iOS WebView 跨域预检失败 (#775)
重构
cleanup: 收敛后端插件库存默认边界
cleanup: 迁出 MemAgora 顶层历史资产
cleanup: 收敛 minimal core 非核心后端边界
packages: 提取 shared-ui 共享设计 tokens 和 API 类型
[0.6.14] - 2026-06-23
新功能
desktop: 增加桌面诊断入口
model-pool: Provider 改名时内部 id 随名字一起改(#635 S5)
model-pool: 彻底消除内置/自定义区别 + 支持 provider 改名(#635 S4)
model-pool: 下线设置页外部服务模型入口 + 控制塔 provider 平权可编辑(#635 S3)
model-pool: 聊天解析统一走池内 provider 凭据(#635 S2)
model-pool: 内置 provider 凭据 backfill 进模型池(#635 S1)
session-os: #757 终端 chunk 保留——周期 sweep + 停止即裁,防 DB bloat
settings: 下线冗余「模型配置」组(#635)
Bug 修复
desktop: 增强安装态验证启动恢复
frontend: 修复 NavBar 右侧控件无间距挤压
test: Live 测试 f-string 兼容 Python 3.11
[0.6.13] - 2026-06-22
新功能
agent-profile: Agent-as-Code — 全栈 Profile 系统 (#744)
desktop: 闭环 Tauri P1 窗口生命周期与启动失败诊断
desktop: 增加托盘与关窗隐藏生命周期
desktop: 增加托盘与关窗隐藏生命周期
desktop: 持久化 Tauri 窗口状态
desktop: 持久化 Tauri 窗口状态
desktop: 增加 Tauri 单实例保护
desktop: 增加 Tauri 单实例保护
session-os: 主脑 cc-brain 上下文保鲜(对话 capsule 刷新 + 活跃会话注入)
worker: #743 Clerk FAPI 反代 /__clerk/* 支持 iOS Tauri 认证 (#750)
Bug 修复
coding-session: 收敛旧 source route 兼容边界
session-os: 主脑 cc-brain 假死自动重置(PTY 静默判定)
test: 修复本地脚本与计划生命周期回归
重构
frontend: 退役协作与 MemAgora 前端资产
frontend: 退役旧 Command Center 前端壳
[0.6.12] - 2026-06-22
Bug 修复
- desktop: 适配三端 updater 产物 feed
[0.6.11] - 2026-06-22
新功能
- system: #736 设置页开机自启动开关(默认开启)
Bug 修复
chat: #726 主会话模型失效时自动降级到池中可用模型
chat: 清理外部 auto_merge 请求字段
chat: 移除自动合并开关
clerk: 代理约束 Accept-Encoding 修复登录 JSON.parse 报错
commands: #730 /sessions 触发 LLM 修复——handler 不再 500 passthrough
desktop: 加固 updater feed 分发闭环
net: #726 进程级回环代理豁免护栏
site: #618 手机端 WebSocket 转发——修复跨设备实时同步
site: 手机前端 CI 自动重建+部署,根治版本漂移
tunnel: 健康检查绕过系统代理修复隧道误判 ERROR
重构
chat: 收敛内部合入命名边界
otel: 将可观测性模块降级为开发专属功能 (#740)
[0.6.10] - 2026-06-18
新功能
- ios: 初始化 Tauri mobile 工程
[0.6.9] - 2026-06-18
新功能
desktop: 新增 dev-build-test.sh 一键构建并安装到临时目录测试
frontend: Slash command 完整前端实现
otel: 嵌入式可观测性面板(Grafana + Tempo + Loki sidecar)
Slash Command 最小拦截层 (#716)
Telegram 远程控制通道拦截 slash command
新增 POST /api/v1/commands 端点,串联注册表与 handler
实现全部 slash command handler 和 SegmentTracker.force_new_segment()
新增 SlashCommandRegistry 注册表和 ParsedCommand/CommandResult 数据结构
Bug 修复
ci: Checkpoint 补充 owner frontmatter
clerk: 注册表单添加 CAPTCHA 容器,修复 Bot Protection 校验失败
desktop: 手动修复 macOS sidecar 公证流程
desktop: 签名 macOS sidecar 嵌套代码
desktop: Dev-build-test 对齐 CI + 去除自动启动 (#702)
desktop: Dev-build-test 不自动启动 App,改为打开 Finder 文件夹
otel: OTEL 可观测性栈端到端加固 (#717)
plan: 补充 owner frontmatter 修复 CI 检查
plans: 补充 OTEL 计划文档 owner frontmatter
session-os: 允许 launch_session 用与浏览器选中目录相同的绝对路径
site: Detect.js 缓存键 v2→v3,确保公证说明立即生效
重构
- desktop: Dev-build-test 复用 build-local.sh,对齐 CI 流程
[0.6.5-mac] - 2026-06-17
Bug 修复
- desktop: 允许本地前端调用 updater ACL
[0.6.4-mac] - 2026-06-17
新功能
auth: 桌面端 Clerk 登录、会话持久化与隧道免弹窗 (#678)
desktop: Tauri P0/P1 安全加固与 updater 端到端打通
frontend: 挂载 UpdateBanner,启动时触发 fetchLatest
telemetry: 添加 OTEL 可观测性基础设施 (Phase 1) (#686)
tunnel: 远程控制 UX 优化 — 主界面快捷入口 + JWT 修复 + 站点路由修复 (#685)
tunnel: 全局 Clerk user watcher 兜底 — 任何路径登出都触发 teardown
tunnel: 登出时调用 teardown + 隧道面板响应认证状态
tunnel: 添加 /teardown 端点 — 登出时原子停隧道+清凭据+撤手机session
Bug 修复
auth: 退役隧道代理 API Key,改用 Clerk JWT 直通认证
backend: 修复 API key 未配置时 ChatEngine 启动崩溃,bump 0.6.3
desktop: 修复 CSP 过严导致 WKWebView 白屏,bump 0.6.2
frontend: 同步 npm lockfile 修复 release ci
frontend: 改进 updater 错误捕获,显示 Tauri 真实错误文案
frontend: 同步 Clerk 依赖 lockfile
session-os: #671 主脑禁用 AskUserQuestion 避免主会话死锁并恢复 TG 推送
site: 修复手机端认证循环 — token 就绪门控 + signed-in 重定向抑制
site: 全局 Clerk JWT 注入修复手机端认证循环
site: 修复手机端 Clerk 认证循环 — Worker cookie 正则匹配 suffixed session
tunnel: 修复手机端 Clerk 认证循环 — 门控 + 401 重试
tunnel: 冷启动时检测未登录状态并清理残留隧道
tunnel: Worker claim 改传 clerk_token 适配服务端 JWT 验证
tunnel: Claim 端点改为服务端 JWT 验证,不再信任客户端 user_id
tunnel: 手机扫码绑定登录返回后自动提交,去除多余点击
tunnel: Auth-callback 增加防御性错误处理,异常返回友好页面而非 500
tunnel: Ingress 更新重试 + 健康后 self-ping 端到端验证
tunnel: Update-ingress.ts 使用正确的 tunnelId 变量修复 KV 空时 TypeError
[0.6.0] - 2026-06-16
新功能
chat: #506 摘要 token 接入 #628 成本可视化(并列字段)
chat: #629 Stage 3-3 cc-brain turn 路由分支(seam + stub)
desktop: 接通 Tauri updater 安装重启链路
frontend: #506 摘要成本 chip + opt-in 首装提示
kb: #506 L2-d/e 可选 KB 维护 + 其他用户模版(默认关)
kb: #506 L2-a/b 个人知识库消费层(search_kb + visibility 红线)
model-pool: #629 Stage 3-1 cc-brain 模型选项 sentinel
phone: 手机远程访问 E2E——Clerk 认证 + Tunnel 重连 + POST 代理 (#662)
phone: 手机远程访问 E2E 修复——Clerk 认证 + Tunnel 重连 + POST 代理
phone: 手机 Web 端重构 + CF Tunnel 远程访问 + 退役旧 Worker 落地页 (#641)
session-os: #506 L1-d 增强 活会话摘要主动注入主会话 capsule
session-os: #506 L1-d 增强 inspect/digest 也带会话摘要
session-os: #506 L1-c 设置页暴露摘要开关与模型
session-os: #506 L1-d 消费面——检索工具返回会话 LLM 摘要
session-os: #506 L1-b 摘要后台调度 + opt-in 配置
session-os: #506 L1-b 摘要生成模块(整会话重编译,fail-open)
session-os: #506 L1-a 编码会话摘要数据层(表+脏检测+journal)
session-os: #629 cc-brain 文件路线——CLAUDE.md 上下文通道 + 历史注入(吃掉增量B)
session-os: #629 cc-brain persona 注入 beliefs/hot-beliefs(主脑认识「球哥」)
session-os: #629 cc-brain 块级流式 + 工具调用可见
session-os: #629 item 4b——cc-brain 子模型选择 opus/sonnet(默认 opus,切换即 respawn)
session-os: #629 cc-brain 后端三件套——完全隔离/装机检测/opus·xhigh
session-os: #629 Stage 3-5/6/7 cc_brain_stream 真实编排(feed→完成检测→transcript 输出)
session-os: #629 Stage 3-4 ensure_main_brain_session(复用/spawn + per-turn 锁)
session-os: #629 Stage 2 Block C——主脑隐藏 + allowed_actions[INSPECT] + discovery 不重复发现
session-os: #629 Stage 2 A3 entry——launch_main_brain_session(spawn cc 主脑 + 激活守卫)
session-os: #629 Stage 2 A3 plumbing——透传 mcp_config_path/append_system_prompt 至 cc spawn
session-os: #629 Stage 2 Block A1+A2——marker plumbing + cc 主脑启动 flag
session-os: #629 主脑会话防自杀守卫 Layer 2(resolve_session_ref chokepoint)
session-os: #629 cc 主脑工具白名单(选项1)——只暴露 Session OS 独有工具
session-os: #629 cc 主脑 MCP 中转端点 + stdio relay(Stage 1b)
session-os: #629 主会话工具→MCP 桥接核心(cc 当主脑 Stage 1a)
Bug 修复
data: Dev 模式也走 JARVIS_DATA_DIR + 补 cargo PATH
data: 统一数据目录到 ~/.jarvis
desktop: Backend sidecar 注入登录 shell PATH——修 cc-brain 检测 + 编码会话 spawn
desktop: 补 Cargo.lock 缺失的 tauri-plugin-process(与 Cargo.toml 同步)
frontend: 修复工作区待处理条侵入会话顶部
kb: #506 L2 search_kb 主会话返回 unavailable——补 _settings 注入 + 无条件暴露
landing: 修复下载链接与 macOS 安装说明 (#640)
landing: 替换平台图标为 Simple Icons 标准 SVG (#639)
landing: Wrangler 路由从 custom_domain 改为 zone route 修复部署 (#638)
packaging: 让 jarvis --version 走轻量 fast path
release: 移除 release/dev-build 重复 PyInstaller 步骤(#641 回归)
release: 同步 frontend/desktop package-lock 修复 release.yml npm ci 失败
session-os: #538 origin 翻转纳入状态条广播去重——主会话静默纠偏接管认知
session-os: #538 接管回收对账被 skipped_managed 饿死——解耦 handled_native_ids
session-os: #629 主脑多步(工具)turn 完整检测——改用 stop_reason + 补 import json
session-os: #629 主脑 launch_session 放行绝对 cwd(编排者豁免浏览器选区守卫)
session-os: #629 主脑隔离 cc 私有 auto-memory,保留项目感知
session-os: #629 修复 UI 选 cc-brain 报「不在模型池中」——识别 provider-qualified 形式
session-os: #629 Stage 4 真机验收修复——cc 主脑端到端跑通(spawn+reuse 双轮验证)
session-os: #629 cc 主脑白名单对抗式审查修复(4 真问题)
[0.5.2] - 2026-06-16
新功能
acceptance: 强化浏览器视觉验收证据
backend: #576 终端数据通路 P1——落库出热路径 + 5ms 合帧 + ACK 流控(v0.5.1)
chat: #628 成本可视化——per-turn token 用量 + 当日累计
chat: #364 S5 v1 主会话状态条「最近进展」回传
chat: #396 主会话状态条内联审批——待授权 chip 直接批准/拒绝
chat: #618 P2 可合并状态条——live 会话当前态实时回流主聊天
chat: #618 P1 主会话被动注入 live 会话当前态(含 external)
chat: 主会话新增 list_pool_models 模型池枚举工具,修正 launch_session 过期描述 (#598)
coding-session: 增强 native bridge 事件物化与延迟交互启动
coding-session: 工作区侧栏同名目录组最小唯一尾缀消歧(做法 B)
coding-session: 工作区侧栏按项目目录折叠分组 + 稳定排序(修复选中即跳变)
desktop: Tauri 桌面壳 Phase 0/1 + CI/CD 重建 + 团队规范
desktop: 填入 Tauri updater 公钥
desktop: Phase 1 Tauri 壳转正——backend 作为 resource 打进 mac .app 双击即用
desktop-spike: Phase 0 桌面壳选型穿刺定稿选 Tauri
feedback: 打通用户反馈公开 issue 闭环
frontend: 移植 orca ZWJ 终端 unicode provider 修复 emoji 宽度错位
frontend: #576 终端渲染 P0——live 直写去全量重算 + WebGL/unicode11 + 智能滚动 + resize 纪律
frontend: Live handoff H3 UI——会话列表「接管」入口 + 确认文案
frontend: Live handoff H3 基础——AllowedAction 补 resume/takeover + takeoverSession API
frontend: 「待处理」卡悬停展开会话列表——多待处理精准定位
landing: 下载网站补 Linux + 从 zip 模式迁到 Tauri 安装包
macos: 接通原生编码会话启动表单
macos: S3 后端能力补齐——chat cancel + 模型管理接口
macos: 原生工作台优化与终端核心健壮性修复
macos: 同步原生 App 优化到 staging
model-pool: #594 codex wire_api provider 级可配——穿刺实证默认锁 responses
ops: #586 一键停止 Jarvis——补 stop.sh + 抽取共享进程 helper
remote-control: 可插拔远程控制通道层 + Telegram 主会话桥接(首发)
session-os: #618 推送可观测性——成功派发写 info 日志
session-os: #618 P4 推送文案 LLM 增强(fail-open 回落模板)
session-os: #618 P3 活跃会话跃迁主动推送 + Telegram outbound
session-os: #618 P2 地基 AttentionTracker——跃迁检测 + 状态条快照广播
session-os: List_session_events / reply_intervention 也接入活会话编号解析 (#616)
session-os: 主会话活会话临时编号 #1..#N,便于自然语言指代 (#614)
session-os: 单会话归档暴露——主会话 archive_session 工具 + 侧栏归档视图与右键归档/恢复 (#600)
session-os: #454 OpenCode 模型池注入——生成配置 + sidecar 按需重启 + 消息级模型指定
session-os: Live handoff H2——POST /sessions/{id}/takeover 端点
session-os: Live handoff H1b——service takeover 四步原子 + opencode 免杀
session-os: Live handoff H1a——TAKEOVER 动作 + 活·闲外部会话暴露
#576 P2——重放默认尾窗口(256KB 整 chunk)+ 完整历史逃生门 + live 字节透传
Bug 修复
backend: #583 深审修复——/global/event 跨 instance + directory header + read 超时
backend: #583 opencode 权限审批 watcher——SSE permission.asked 入账 + 干预卡回复直达 sidecar
backend: #576 P1 跟进热修——RETURNING cursor 显式 close + opencode 桥落库失败不杀连接
backend: #576 P1 深审修复——flush drain 竞态/取消防护/holder 引用计数+看门狗
backend: 禁用 autonomous 默认启动入口
chat: #618 P1 修复 capsule crowding——查询层 status 过滤取 live(对抗审查 #619)
chat: 主会话 Agent 选择权威覆盖 LLM 自填 runtime
coding-session: Codex 中断用 Esc 替代 SIGINT,避免杀掉整个 TUI
coding-sessions: 打通原生终端启动合同
db: #592 拆分共享 SQLite 连接——turn 独占连接 + PTY chunk 独立连接 + 读侧自愈
desktop: 更新 Tauri 桌面应用图标
desktop: 入库 package-lock.json 修复 CI npm ci 失败
frontend: 修复终端渲染列宽错位 + 归档后工作区未清两个 bug
landing: Windows 下载链接返回 htm 文件——按 platforms 可用性禁用不可用平台 (#605)
landing: 补充 macOS 可选执行权限步骤
landing: 修正安装指南解压后的进入目录
macOS: 从后端真源注入 App 版本
macOS: 稳定原生 Chat 历史布局
macOS: 隔离 DMG 临时装配目录
macos: Sprint 0 修复两个 P0 装配缺陷
macos: 保持终端字节输入输出不失真
macos: T7-A4/A5 错误处理加固——WS 鉴权失败可观测 + 反馈错误带状态码
macos: T1 契约止血——renameModel 字段对齐 + SSE 错误体透传
macos: S2 PTY 并发硬化——背压/fd 泄漏/markExited 修复
macos: S1 验收诚实化——Matrix 真证据化与 gate 互异断言
macos: 修复 opencode live smoke SSE 连接 flaky
macos: 修复 Codex 网络授权 fail-open 与探针脚本脱敏
remote-control: #618 P3 对抗审查修复——notifier 连接关闭 + 仅私聊 chat_id
remote-control: Bot token 不入日志 + 真机验收交接更新
scripts: 本地 start.sh 默认开启终端 local auth bypass
session-os: #618 忙→空闲跃迁无推送——discovery 每轮 poke tracker
session-os: #618 P4 对抗审查修复——关键标记硬校验防幻觉 + temperature=0 + choices 防守
session-os: #618 P2 对抗审查修复——debounce 尾沿+串行化、service 复用、标准模式状态条
session-os: #577 主会话接管与 UI 右键接管统一——接管前外部有序退出
session-os: Codex adapter 补 INTERRUPT 分支,agent 中断不再 fallback 杀会话
session-os: Opencode 外部会话判活叠加进程证据,消除假活
#576 P2 深审修复——接缝 raw-raw 去重 + 窗口滑动增量路径 + 原生双端 full 保旧
性能优化
macos: T4-B2/B5 终端会话内存有界——replay LRU 回收 + ledger FIFO
macos: T4-B3 chat 首屏 local-first——去除主线程 semaphore 阻塞
macos: T3 NativeEventLog 性能——窗口 fsync + O(1) 状态 + flushed 滚动
重构
chat: #628 对抗审查回应——range 处理显式化 + 驳回误判注入
docs: 统一文档真源命名 CONTEXT.md + sync 脚本支持子目录多入口
macos: T6-C3 合并 String.nilIfEmpty 重复实现到共享层
macos: S4/S5/S6 验收隔离+死代码清理+性能安全收尾
session-os: #364 对抗审查回应——收紧 interrupt 匹配 + 裸事件锁测试
[0.5.0] - 2026-06-10
新功能
coding-sessions: 按目录隐藏会话 muted-dirs #557
coding-sessions: 死会话 sweep + /sweep-dead 端点 #557
coding-sessions: 新增 /transcript 端点暴露会话转录投影 #553
composer: 双行 Composer UX 重构 + Coding Controls 歧义消除 (#539)
frontend: 工作区侧栏 UX 优化——会话编码一键复制 + 级联筛选 + 控制塔改名 + Archive 图标
frontend: #557 Phase 3 按目录隐藏 UI(侧栏右键 + 已隐藏目录管理)
frontend: 会话快照默认滚到底部 #553
frontend: 外部只读会话详情页改用会话快照 #553
frontend: 新增会话快照对话渲染组件 + transcript API #553
frontend: 待处理卡——复用授权卡统一提醒所有需接管会话 #538 Phase E
frontend: #467 侧栏「全部」视图同步放大到 100(与外部视图一致)
frontend: #467 侧栏来源筛选——「外部」一键浏览全机历史外部会话
macOS: 原生工作台 Web Core Workflow Parity 基线
macOS: 原生工作台 Phase 0-4 发布级主路径
macos: 收敛原生后端 endpoint 合同
macos: 接入验收报告导入与证据导出
macos: 打通原生 Chat 到会话详情闭环
macos: 收束原生最小闭环与 Core UX RC gate
macos: 添加 Xcode .xcodeproj 包装器支持 Cmd+R 启动 GUI 窗口 (#547) (#549)
macos: 收口原生工作台主线验收闭环
opencode: #505 L2——dispatch/interrupt/stop/resume 四操作接通(cc 能力对齐)
session-os: 死会话自动 sweep——启动/周期后台任务 #557
session-os: 托管 cc 会话补齐忙/闲四态(读时从注册表派生)(#538)
session-os: 删除=archive 隐藏的 tombstone 硬化 (#538)
session-os: Cc 会话四态活性(死/活/忙/闲)精确化 (#538)
session-os: #467 Phase C——opencode 发现源 + opencode.db 内容投影 + 第三源接入
session-os: #467 Phase B——codex 发现源 + rollout 内容投影 + loop 多 source 化
session-os: #467 发现循环 lifespan 接线 + origin 出身字段 + 前端外部标识
session-os: #467 全局会话雷达核心——发现层 L0→L1 幂等同步(cc 先行)
session-os: PTY 退出即时回调——/exit 后 ~1s 列表灯灭(#463 增强)
session_os: Opencode 外部会话四态接入 discovery loop
session_os: Opencode 判活 liveness 层(共享 db 近活注册表)
session_os: 托管 codex 忙态判定升级为 rollout 尾感知
session_os: Codex 外部会话四态接入 discovery loop(档位 B)
session_os: Codex 判活 liveness 层(rollout 句柄 + 尾忙闲)
ui: 专注工作区三面板拖拽调整宽度 (#541)
模型池: 内置 provider 补 anthropic_base_url——双端点配置入口对称化
模型池: S3 前端池 UI——空池引导/凭据内联提示/anthropic 端点位/设置页池一览+导入
模型池: S2 cc 模型池注入——launch provider/model 形态全链贯通
模型池: S1-4 配置卫生——.env.example 重写+设置页收敛+启动加固+v0.4.8
模型池: S1-3 主会话路由显式报错+别名退池+移除 yunwu 静默兜底
模型池: S1-2 角色模型字段清默认+非核心消费方统一静默跳过(治 #428)
模型池: S1-1 真源收敛——去种子+镜像导出/导入+mtime 检测
自动刷新编码会话列表
按最近激活时间排序会话列表
Bug 修复
autonomous: #485 进化流程 git 外发安全阀全覆盖——测试不再真推 GitHub
chat: #494 悬空 thinking 尾巴投影空 assistant 消息——历史毒化根治
frontend: 快照判定改用存活态+terminal 兜底,修停止会话漏判 #553
frontend: 会话快照接入工作区中间区域 + 判定扩到 terminal 不可用 #553
frontend: 会话列表活性轮询覆盖 cc,托管忙/闲实时刷新 (#538)
frontend: Resume 后终端面板自动重连——生命周期广播触发 replay 重拉 (#474)
frontend: 专注工作区侧栏会话列表 live 刷新(#397 同根因续)
opencode: #505 L0 再续——前端终端线 6 处 sidecar httpx 同样豁免代理(PTY create 502 根治)
opencode: #505 L0 续——attach/sidecar 子进程 localhost 代理豁免(502 秒死根治)
opencode: #505 L0——sidecar 线 httpx 全部 trust_env=False,代理劫持致 launch 必败根治
scripts: 重启健康检查防代理劫持——curl 加 --noproxy 根治重启卡死 15 分钟
session-os: 托管会话被外部 resume 复活的漏检——检测并再外部化 (#538)
session-os: 托管 cc 启动剥离 CLAUDE_CODE_* env,恢复活性登记 + registry 四态对称 (#538)
session-os: 托管 cc 忙/闲改用 PTY 输出静默判定(注册表不覆盖托管)(#538)
session-os: Resume 接管外部会话后收编为托管,修终端只读卡死 (#538)
session-os: 修复启动 Codex 会话偶发创建重复 outside 会话
session-os: #505 存量 opencode 行 resume 兜底——native 列空时取 ses_ 形态 runtime_session_id
session-os: #505 能力位改取 runtime 静态真值——存量行快照冻结致 end 永久失效根治
session-os: 生命周期事件按进程实例(pid)派生 ID——resume 后再 /exit 不再被 dedupe 哑掉 (#463)
session-os: Session reaper——PTY 内退出/崩溃的会话自动灯灭并广播 (#463)
session-os: Launch/resume 广播生命周期事件,工作区列表 live 刷新 (#397)
session-os: 终态会话的未回复 intervention 投影为 expired,待授权卡随生命周期消失 (#458)
session-os: #403 interrupt 清空序列改 Ctrl-C——折行长任务回填 Ctrl-U 清不净
store: Append_event seq 分配原子化——并发事件写者 UNIQUE 竞态根治
tools: #467 get_session_digest 补真实总量统计——分页大小不再被当成全量
ui: 点击对话tab时重置focusMode,修复工作区无法返回对话界面 (#543) (#544)
模型池: 退役 glm-5.1-fp8 改名迁移——真实 fp8 模型名被静默吞掉
模型池: 自定义表单撞内置 provider 名——凭据热生效+rename 补齐+前端透明提示
模型池: 凭据缺失文案给出精确配置路径(S1 用户手测发现)
设置页: 摘除 deepseek_model/glm51_model 曝光 + base_url 描述防呆
性能优化
- session-os: #467 发现延迟调优——grace 60→10s、轮询 15→5s(手测反馈)
重构
macos: 拆分终端会话协调器并深化来源锚点
macos: 收敛原生前端重复 helper
macos: 抽取终端验收证据写入器
macos: 拆分原生工作台视图边界
[0.4.7] - 2026-06-04
新功能
chat: #419 S1+S2 轮次执行与连接解耦(detached turn execution)
frontend: #419 S3 前端 attach/重连——刷新回来自动续接进行中轮次
session-os: #403 end_session/interrupt_session——主会话可结束与打断 cc 会话
session-os: #404 续——会话搜索精确化(终端域 opt-in + matched_in + 标题加长)
session-os: #404 native 附加区下沉共享 helper + HTTP events 端点接入
session-os: #404 读取 cc native jsonl 作为结构化会话内容源
session-os: Cc 会话 launch 默认 skip-permissions(全开)
session-os: Cc gating 默认 off —— Claude Code 会话默认全开
Add terminal websocket trace logging
#427 新增 get_session_digest/get_runtime_status 工具——LLM 按需查询替代 host 预加载
Bug 修复
chat: #414 空转检测器漏报——冒号结尾不再依赖动词表(第二个生产样本)
chat: #414 真根因——祈使句被误判状态查询而剥夺工具面
chat: #414 模型口述调用工具却 0 tool_call 的空转 nudge 兜底
context: #404 会话读工具结果的专项压缩——native 内容不再被通用截断切掉
packaging: Harden current-stage PyInstaller bundle
packaging: Strengthen package smoke checks
packaging: Avoid app import in smoke check
packaging: Make runtime hidden import collection deterministic
packaging: Include current-stage hidden imports
session-os: Make native pty imports windows-safe
session-os: #403 interrupt 序列补清行——真机实测 ESC 后输入框残留致 dispatch 拼接
session-os: #404 续——会话读专项压缩前置于 offload + find/list 工具修缮
session-os: Cc dispatch 多行/长指令注入后不提交(separate-CR)
Align terminal websocket local auth
#427 bundle tool files in PyInstaller dev build
#427 主会话始终保留工具面——删除 _tools_for_turn 条件剥夺逻辑
Assistant 消息缺失 segment_id 导致会话历史分段断裂 (#422) (#423)
重构
- #427 ToolSurfacePolicy 始终暴露完整工具面——删除关键词触发的动态扩展
- #427 删除主会话 host-side 意图分类——digest/runtime 关键词匹配和预加载
[0.4.6] - 2026-06-04
新功能
- 构建溯源——嵌入 git commit hash + SHA256 校验 + CDN 缓存清除
[0.4.5] - 2026-06-04
新功能
cli: Start 命令默认后台启动 + 自动打开浏览器
frontend: 设置页新增"关于"区——检查更新按钮 + 版本/模式显示
frontend: 全页面显示当前版本号
Bug 修复
cli: Foreground 模式跳过"已运行"检查——修复后台派生子进程自检退出
cli: 修复 jarvis start --open 默认用 https 导致 TLS 错误
[0.4.4] - 2026-06-04
新功能
- 落地页更新 — 中英双语、平台选择器、quarantine 说明、favicon
Bug 修复
db: #411 dev 模式 alembic 路径回退——区分 frozen/dev 解析 (#415)
test/governance: 消除 3 处环境依赖——critical 本地全绿 + 治理不误拦本地技能
修复打包 .env 路径 + 自动更新检查 (#417)
[0.4.3] - 2026-06-03
新功能
P1: 反思引擎完整记录注入
P2: 实现 Scratchpad 自动摘要系统
P3: Coding_agent 知识注入系统
P4: 执行器路由 + 失败自动升级
P4: 任务复杂度智能分类系统
agent-context: Add canonical project context and harden check gate
api: Proposals 审批端点 GET/PATCH
api: Add evolution journal, metrics, beliefs, signals endpoints
audit-final-3: 最后 3 项必要优化
auth: 本地 loopback 免 key 直进,远程仍需鉴权 (#372)
autonomous: 双模式引擎 — 研究/编码执行模式分离
autonomous: Add circuit breaker, working memory, and tool dedup
autonomous: Worktree isolation for autonomous tasks
autonomous: Run_task_chain 顺序链式执行 + execute_plan all 模式修复
broker: 添加 harness-broker 团队共享 NPU/GPU 资源调度服务
check: O11 — α2/γ 跨工具 reviewer adapters(Codex /review + Claude /simplify)
check: O4+O5+O7+O9 — fix_status / strategy 模板 / retrospective ❌ / 文档定位
check: O1+O2+O3 — dispatch 强制 + judge_table 必填 + deferred 强制可见
check: Schema-driven judge validation + reviewer noise rules
check: Quality Gate v4 — prompt 瘦身 77% + 确定性安全预检
coding-agent: Expose runtime status telemetry
coding-agent: Default to opencode session runtime
coding-agent: Add phase 7 rollout gate
coding-agent: Add opencode session benchmark gate
coding-sessions: 优化终端基准与PTY读出延迟
coding-sessions: 增加浏览器终端绘制基准
coding-sessions: 增加终端延迟基准
coding-sessions: 改为终端优先检查器
coding-sessions: 收口会话管理与事件抽屉闭环
coding-sessions: 补齐来源锚点前端闭环
coding-sessions: 优化来源链路导航
coding-sessions: 完善来源锚点契约
coding-sessions: 打通会话来源锚点
coding-sessions: 产品化会话摘要与终端管理
coding-sessions: 产品化交互式运行时会话
coding-sessions: Add checkpoint rollback controls
coding-sessions: Connect source-linked terminals
coding-sessions: Bridge opencode hooks
coding-sessions: Add native runtime adapters
coding-sessions: Complete terminal phase four
console: Command Center UX 重构 — 进化引擎 master-detail + 结构化标题 + 导航精简
core: 新增 Pre-Tool Validation Middleware,减少工具调用失败率
db: Migration 006 — Beta+ 扩展字段(beliefs/tasks/rounds)
deploy: Add frontend auto-build and smart recreate detection
deploy: 添加 Docker 部署方案(多阶段构建 + 自动备份 + 本地同步)
diagnostic: Implement 6-layer diagnostic defense system
embedding: Add JARVIS_DISABLE_EMBEDDING env var to prevent BGE-M3 loading
evolution: MESA v3.1 多频进化引擎 + Skill Hub + 运行时工具自创建
experience: 接通经验闭环 LLM 提取
experience: 经验闭环 — 自动复盘、经验注入、效用反馈
frontend: Add dashboard walkthrough launcher
frontend: Add dashboard walkthrough anchors
frontend: Add dashboard walkthrough state
frontend: #110 编码会话审批 surface 到主聊天 + 全局角标 + 会话侧栏状态点
frontend: Gating 审批 UI——工作区内 claude 权限介入卡片 (#363)
frontend: 进化引擎隐藏空轮次过滤(0 提案)
frontend: 协作卡片 hover 快捷操作(接单/稍后/拒绝/取消/归档)
frontend: 自主任务独立视图 + hover 快捷操作 + 返回按钮
frontend: Evolution Dashboard v4 + Skill Hub UI + 提案审批 Banner
frontend: EvolutionReportView 提案审批 UI
frontend: Add evolution dashboard link to chat header
frontend: Add Evolution page with journal, metrics, beliefs, signals tabs
jcl: Brief markdown 字段 + 浏览器通知 + 任务失败人工审批 + claude CLI 查找修复
jcl: 3.0-b 后端三件套 + 2.0 Defer 自定义时间 + 版本 0.4.3
jcl: 成员目录可见化 + onboarding 体验优化
jcl: Cancel 任务卡时同步停止本地 coding_agent
jcl: 聊天界面任务卡操作按钮
jcl: 新增 start_task 工具 + 协作工作流系统 prompt
jcl: 附件交付系统 + 活动流小修
jcl: Plan 3.0 Phase 1+2+3 — 零信任隐私边界 + 本地实时流 + 协作 SSE
jcl: 任务卡生命周期 2.0 — Phase 3+4 执行工作空间 + 协商 + Defer 调度
jcl: Phase 2.3 — TaskExecutor agent 执行集成
jcl: 任务卡生命周期 2.0 — Phase 1 后端基础设施
jcl: 实时协作通知 — 协作事件主动推送到聊天界面
jcl: 详情面板显示接受者 — 通过 nameMap 解析 UUID → 名字
jcl: 待处理邀请可见 + accept_invite 工具
jcl: JCL Relay 独立服务 — HTTP + SSE + 文件服务 + 三层认证
jcl: 独立 Relay 服务 — Phase 1A 扩展 + RemoteRelayClient + Jarvis 集成
jcl: Jarvis Collaboration Layer Phase 1A — 点对点协作底座
jcl-fe: 3.0-b 前端体验补全 — 中断/失败/未读/健康/双视角/CTA/LRU
jcl-frontend: 任务卡生命周期 2.0 — Phase 1 前端动作按钮 + 筛选
jcl-ui: Round 2+3 — 可拖拽 splitter + 折叠 section + 按钮修正
memagora: Migrate panels to match memagora-main + session/task/settings
memagora: 添加 /memagora-api 后端透传代理
memagora: 新增 API Key 认证门控页面
memagora: 将 MemAgora 前端集成为原生 Vue 组件
metrics: Add snapshot_metrics() for periodic persistence
metrics: NEIR dashboard with 5 core process metrics
migration: Add evolution_journals, tech_radar_signals, metrics_history tables
migrations: 016/017 — P1 beliefs 扩展 + P4 任务分类记录
model: 聊天界面模型选择器重写为裸 yunwu ID 下拉(Seed Pattern)
model: 补提 model_prefs 模块(main.py 依赖)
model-prefs: Option C 配置驱动模型列表 + 新增模型密钥镜像到 .env + seed 修正
orchestrator: 优化连续轮次与提交建议策略
plan: Pre-flight 完成度检查 + 归档自动更新 CLAUDE.md
radar: 技术雷达轻量版 — 信号抓取、评估、周报、任务生成
router: Add routing statistics tracking to ModelRouter
safety: 安全基座 S1-S4 — Task Contract + Eval Gate + Budget Guard + Auto Rollback
scripts: Worktree 感知的调试线束——多实例并行不冲突 (#394) (#399)
search: Add three-tool search architecture (Tavily/博查/GitHub/read_url)
self-evolution: V3.1 提案闭环 — 持久化 + 审批门控 + 上下文增强
self-evolution: V3 全网搜索驱动的自我进化系统
self-evolution: Rewrite with LLM journal synthesis and signal dedup
session-os: #360 Claude Code 会话 --resume 接管(路 X)
session-os: #361 opt-in skip-permissions 启动模式(cc --dangerously-skip-permissions)
session-os: #362 支持会话级 Claude Code 模型(--model 端到端透传)
session-os: 接通 OpenCode launch 路径(第三家 runtime 统一)
session-os: 接通 Claude Code launch 路径 (#346/#347)
session-os: Wire codex runtime launch
session-os: Make main chat a role-based router
session-os: Scaffold event access sse replay
session-os: Align frontend event replay contract
session-os: Add event replay tool access
session-os: Return canonical event replay records
session-os: Add event access replay facade
session-os: Ingest normalized runtime source events
session-os: Add runtime event source adapters
session-os: Type event source descriptors
session-os: Resolve pending runtime actions from intervention replies
session-os: Scaffold event plane
settings: 设置面板完整实现 — 导出/导入 + 分组导航 + 条件显示
skills: Vendor superpowers bundle
tech-radar: Add signal deduplication and DB persistence
tech-radar: Wire feed parsing and LLM evaluation
tools: 记录P17人工生产应用执行
tools: 收束P17生产应用审查链路
tools: 收束P17应用决策审查边界
tools: 收束P17 ChatEngine切换审查证据
tools: 收束P17替换遗留审查边界
tools: 固定P19生产包装审查边界
tools: 固定P16出箱阶段审查边界
tools: 固定P19生产接线审查边界
tools: 收束P19遗留统计去重
tools: 扩展P19遥测事件与成本统计
tools: 建立P19遥测基础边界
tools: 收束P17遗留投影桥接
tools: 收束P17流式工具执行桥接
tools: 收束P17直接工具执行桥接
tools: 增加P17人工审批包
tools: 收口P41/P18门禁总账
tools: 收口P41记忆提案审批边界
tools: 收紧 P17 替换旧路径门禁
tools: 收束治理门禁候选边界
tools: 完善 P05/P17 前置门禁
tools: 固定P14投影修复夹具
tools: 执行化工具运行时故障注入
tools: 建立 TypeScript 影子合同基座
tools: 强化最小权限检查链
tools: 接入运行时权限请求接口
tools: 增加记忆提案最小门禁
tools: 扩展 P17 信封运行时证据
tools: 强化投影影子毕业证据
tools: 推进 P13 隔离投影实现
tools: 增加投影影子就绪报告
tools: 优化下一步编排进度展示
tools: 增加提交建议遥测
tools: 强化投影影子毕业证据
tools: 限定下一步编排三轮策略
tools: 增加投影影子毕业摘要
tools: 添加运行时安全证据包
tools: 添加运行时只读证据清单
tools: 添加下一步编排技能
tools: 添加投影影子基线门禁
tools: 固化工具运行时迁移草案
tools: 增加投影影子目录趋势
tools: 聚合投影影子历史会话
tools: 固定隔离运行时审查基座
tools: 接入运行时权限请求夹具
tools: 完善投影影子审查基座
tools: 建立工具调用最小安全内核
tools: 建立工具调用隔离开发基座
tools: 添加工具运行时门禁脚本
ui+backend: 提案卡片缩略化 + 进化 prompt 强制中文输出
web_search: Expand trigger keywords for on-demand tool loading
web_search: Smart region/backend detection and timelimit support
worktree: Auto-cleanup stale branches older than 7 days
#400 一键安装 — PyInstaller 二进制打包 + CLI + Cloudflare 分发
Add default coding agent onboarding
Add default coding agent onboarding
Use cwd for manual coding launches
Add chat cwd selector
Propagate chat cwd to coding sessions
Add browser local cwd preference
Add workspace directory picker api
主聊天 glm 文本工具调用解析(泛化 DSML→provider 方言表 + glm
parser) 主聊天 coding_agent 工具支持任意目录(cwd)——最小安全模型
Codex app-server 连接 host 生命周期硬化(S1-B 完整连接层)
Codex app-server 连接 host(第三家 runtime gating S1-A,连接层)
OpenCode reply→resolve pending(async 等价 gating 闭合,B lane)
Claude gating 同步回流闭环 + 会话绑定稳健化(Step B 段2,Claude-only)
结构化 runtime-event envelope(Step B 接缝,提案)
Harden session os access layer
OpenCode hook(permission)channel(S3 bp1,镜像 Claude S1)
Hook 信号→可查询 intervention(对接 #324 事件介入层地基)
Scaffold session control operations
Cc 会话启动自动注入 S1 hooks(PTY 真实会话上的监控/gate 闭环)
Claude Code hook 回调端点闭环(端点 + settings 注入 + 真机可拦)
接入 Claude Code hook channel(normalize + decide)
Scaffold runtime adapter layer
Scaffold runtime session channels
Scaffold coding session os
分离模型供应商配置
Harden tool runtime bootstrap contracts
原始合并 memagora 模块到 Jarvis
/check skill 证据门控强制执行 + 回顾性审查支持
新增多人格架构评审 skill 与 8 个专家视角 skill
/check Quality Gate v3 多轮评审驱动优化
/check 质量门禁 v3 — 融合式 4 Phase pipeline + Judge Filter
Phase C+D — ADAS meta-search, Plan 缓存, 记忆分层, 注入防护, 断点恢复, 轨迹效率, 大输出外置
ToolCoachEngine 独立引擎 — 工具教练从脚本内化为引擎类
进化引擎 UI 优化 + 手动标记已实施 + /check SKILL 绝对路径
自我进化报告驱动的 11 项核心系统升级(Phase A+B)
/check skill v2 — loop-until-clean + marker hook 强制执行
多 Agent 质量门禁 /check skill + pr-review-toolkit 插件
自我进化系统升级 v3 — AgentDebug 根因诊断 + Stuck 三级恢复 + 因果归因 + Context 压缩
第三方 skill 自动链接机制
Console 前端重构 — Command Center 双页架构 + 后端数据层
Eval_gate 返回诊断详情 — 自主 agent 可看到失败原因
自我进化系统 P0/P1/P2 — 10 项改进,1793 tests 全通过
自我进化质量改进 — 任务去重 + git diff 验证
自进化部署策略 — low-risk 自动合并, high-risk PR 审查
自我进化引擎 v2 — 代码自修改驱动的自主进化
Jarvis Console 前端 — 自主任务流式监控 + 进化仪表盘
自主执行系统 v2 后端重建 — 流式管线 + eval 修复 + 任务队列
自我进化闭环 4 项修复——自适应迭代/内部信号/日志行动/评估执行
Live Demo 5 幕叙事演示 + 视觉组件提取 + 删除 legacy 脚本
工具教练控制面板 — 集成到 EvolutionPage
响应体验优化 — max_tokens提升 + 自动续写 + opus-fast + 状态事件
Add JARVIS_TIMEZONE config for timezone-aware scheduling
Add image display support (search results + markdown + proxy)
Smart Reload + Durable Streams — 零中断编辑文件架构
完成 Self-Contained Blocks 消息重构并归档
Wire plan tools into chat API + autonomous engine
Add list_plans and execute_plan tools
Add plan_parser module
Add e2e_pass condition to CompletionChecker
Self-Contained Blocks 消息重构 (P1后端+P2前端+P3集成)
Self-healing SOP injection + actionable error hints with fallback
Add argument type coercion in tool_registry + self-improving design doc
文件日志 + 自我监控 + 运维诊断手册
Max_iterations 支持 per-request 覆盖 + 默认值提升至 50
Agent Loop 最后一轮保留给合成回复(Phase E)
自主任务面板增强 — rounds API + 详细完成条件 + E2E 测试
本地模型智能路由 — LocalModelClient + ModelRouter + 前端选择器
Pill showcase 重新设计 — 预创建失败测试驱动多轮执行
测试模式工具化 — 从前端 regex 改为 AI 调用 test_mode 工具
自主引擎增强 — 重启清理 + 锁竞态修复 + round recording + Live 测试健壮化
本地 Skills 深度定制 + Live 测试套件重构
Live Test Framework — 结构化 Live API 测试系统
Bug 修复
audit-final: 6 项必要优化修复
autonomous: 升级循环上限 + follow-up 排队 + start.sh 安全重启
autonomous: Harden self-evolution task workflow
autonomous: _deploy_changes 返回 dict 并回写 PR URL
autonomous: Engine crash 不广播终止事件导致前端无限重放
autonomous: 连续 eval error 无上限导致任务无限循环
autonomous: Remove LLM output truncation in _record_round
autonomous: Fix self-evolution task failures caused by spec format and eval gate misclassification
cache: 清理 Claude Code billing header 提升第三方 API 缓存命中率
chat: 恢复历史编码会话流入口
chat: 恢复历史 coding_agent 折叠区终端
chat: 协作工具捆绑加载 — 修复"发个任务"等自然表达漏匹配
chat: 合并 text + tool_use 为单条 assistant 消息 — 根因修复
chat: INVALID_ARGUMENT 重试时重建 client — 破解 yunwu sticky 路由
chat: Cloud path 统一转 OpenAI 格式 — 修复 Vertex 格式混杂拒绝
chat: 真正根因 — cache_control 字段触发 Vertex 拒绝
chat: INVALID_ARGUMENT 快速重试 — 绕过 yunwu 后端 roulette
chat: 清理 tools schema 不支持字段(default 等)
chat: Sanitize 降级"当前 tools 不含的历史 tool_use" — 根因修复
chat: Sanitize 同时合并连续 user 消息
check: Require frozen dispatch plan evidence
check: Enforce dispatch evidence and portable reviewer adapters
check: Γ codex 适配器改用合法 focus 自由文本 + 启用 codex 插件
check: Γ codex 适配器改用 /adversarial-review (因 /review 不接受 focus)
check: /check Phase 2 审查发现的 5 个问题
check: Phase 2 审查发现的 3 个 Important 问题
coding-sessions: 使用创建时间展示会话
coding-sessions: 修复 runtime 选择与终端渲染
coding-sessions: 补齐摘要问答时间范围契约
coding-sessions: 清理过期运行会话状态
collab: Download_file 修复 tmp_dir 泄漏 + 收紧 file_id regex
collab: /check 质量门禁 must_fix 三项修复
context: 历史摘要避免 Python repr — 终极根因修复
context: 压缩历史时保护 tool_use/tool_result 配对 + 兜底 sanitize
core: 补 completion_checker.py 对新 find_pytest_python 的导入
core: Event loop 阻塞根因修复 — 自主任务运行时 /health 不再超时
deploy: Ignore repo-root venv symlinks during auto-save
deploy: Add venv PATH to systemd service template
deploy: Add system deps, pip mirror fix, and BGE-M3 pre-download to setup script
deploy: Auto-detect HTTPS for health check from .env SSL config
deploy: Ensure git identity before auto-commit in deploy script
deploy: Handle bootstrap mode when deploy-server.sh runs from /tmp
deploy: Fix deploy.yml auto-deploy + add SSL support to service template
deploy: Apply Smart Reload to actual entrypoint.sh (not oracle variant)
deploy: Set container timezone via TZ env + zoneinfo mount
deploy: Add openssh-client to Dockerfile for SSH-based git access
deploy: Use SSH instead of HTTPS for GitHub access in container
deploy: Always reinstall package on container start
deploy: Handle Jarvis self-modifications gracefully during CI deploy
deploy: Correct backup sync paths and glob patterns
deploy: Overhaul container mounts and fix ARM64 GIL starvation
deploy: Use direct gh CLI binary download for ARM64 compat
deploy: Include workflow file in trigger paths
deploy: Git pull before running deploy script
deploy: Remove chmod from backup container command
deploy: Revert node image tag, keep python bookworm pin
deploy: Pin base images to bookworm for Docker 18.09 compatibility
deploy: 逐个安装 apt 包避免 lzma OOM(Docker 18.09 内存限制)
deploy: 修复 Docker 18.09 下 apt-get post-invoke hook 失败
deploy: 回退到 docker-compose V1 命令(服务器 Docker 18.09 不支持 V2 插件)
deps: 添加 aiohttp 依赖到 pyproject.toml
dev: Harden restart health and process lifecycle
docs: 统一端口引用为 ${JARVIS_PORT:-8888}
eval-gate: Handle bool tests_pass in completion_spec
eval_gate: Increase pytest timeout from 60s to 180s
evolution: Remove morning brief
evolution: 补推 SICA 排序函数定义(修复 proposals API 500)
evolution: 提案提取 tool_calls fallback + proposals 审批 API
frontend: Theme dashboard walkthrough popover
frontend: Persist dashboard walkthrough dismissal
frontend: Keep dashboard walkthrough passive and accessible
frontend: 切视图后聊天模型被重置 —— 持久化选择在 remount 时为准
frontend: 读取 JARVIS_PORT 修复开发环境聊天记录加载失败
frontend: Handle loadHistory failure with toast
hooks: Pre-commit-check 绝对路径 + CWD 锚定
hooks: Marker 用 git hash-object 替代 ls-files -s 避免 staging 顺序问题
infra: 服务器崩溃循环根因修复 + 基础设施加固
jcl: /check 修复 — brief 单测 + 防双写 + Plan scope 修正
jcl: /check v4 质量门禁发现的 6 项安全/健壮性修复
jcl: /check 质量门禁修复 + JCL_HANDBOOK 全量同步
jcl: 协作回执事件被幂等过滤 — event_id 需含 event_type
jcl: 聊天任务卡按钮支持 defer/negotiate 对话框 + 放松 SENT 状态机
jcl: 公开摘要脱敏 + 隐藏 thinking 碎片
jcl: 附件扫描 fallback 到 git status(覆盖 Bash cat>file 写法)
jcl: 协作面板 HTTP 500 + 垂直 section resize
jcl: Relay_store.get_card_events 使用未定义的 _json 别名
jcl: /check 质量审查修复 — 14 项 Critical+Important
jcl: NO_PROXY 提前到协作层初始化之前
jcl: SSE 重复注册 + httpx 代理绕过 + FTS5 特殊字符
jcl: SSE data 保持 payload 嵌套结构 — 匹配受众过滤器
jcl: SSE 事件数据补全 event_type + event_id — 修复主动推送静默
jcl: Respond_to_task 支持模糊定位 — card_id 可选,可通过 title/creator_name 定位
jcl: Token 文件改 JSON 格式 — 重启后恢复 member_id/node_id/member_name
jcl: 协作 tab 4 项修复 — 视角状态 + 操作按钮 + 名字解析 + self 注入
jcl: Accept_invite 工具触发关键词修正
jcl: 消除 pending_invites 歧义 — 重命名为 received_invites_awaiting_your_acceptance
jcl: 协作工具在聊天界面可用 — prompt + triggers + kwargs + _app 注入
jcl: 修复 Remote 模式全部断裂 — tools + API + 前端完整链路打通
jcl: Respond 端点自动推进中间状态 + 移除重复代码
jcl-ui: TaskCardActions 在 blocks 模式也渲染
jcl-ui: Assignee 显示完整 summary + markdown 渲染
jcl-ui: 活动流/产出物去重 + 交付摘要清洗 + 时间线补全
jcl-ui: Toast 按 action 显示正确文案(归档/取消/验收不再显示'已拒绝')
jcl-ui: 过滤空白 ⏺ marker + 去重 milestone 与 agent_completed
jcl-ui: 默认全折叠 + creator 产出物面板显示交付成果
jcl-ui: 活动流语义化 + sticky header + 变更文件修正 + creator 隐私
jcl-ui: 主信息区底部 + 活动流底部 + 产出物底部 = 3 个可拖拽 handle
jcl-ui: 三个 section 顶部各自带 resize handle
jcl-ui: Resize handle 作为 section 间分隔线,时间线无底部 handle
jcl-ui: Section resize handle 始终可见 + 视觉增强
jcl-ui: Round 1 — 活动流 + 协商面板 5 项 bug 修复
live-test: Harden restart and marker handling
local-model: Handle Anthropic-format user messages with tool_result blocks
local-model: Convert self-contained blocks to OpenAI format for vLLM
logging: Pytest 进程不再污染 data/logs/jarvis.log
notification: Badge 清零改为聊天界面交互触发(click/scroll),非窗口可见即清
opencode: 补 sidecar 脚本 + 测试残留 -fp8(RockmanZheng #358 复审捕获)
opencode: Glm51 provider 统一到 z.ai(endpoint + 模型 ID glm-5.1 + 脱敏自建 IP)
restart: 修复 launchd 托管下重启竞态
security: Strip env vars by suffix to catch prefixed API keys
self-evolution: Close proposal follow-up and PR workflow gaps
self-evolution: Restore last_self_evolution_at from report on restart
self_evolution: Add explicit utf-8 encoding for report I/O
session-os: Permission 事件总广播到 WS——修 router 创建竞态 (#382)
session-os: 加长 cc 审批超时给人在环充足窗口(30s→180s + action expiry/hook timeout 对齐)
session-os: #362 HTTP 端点 launch 也透传 model(补完整性 gap)
session-os: 接通 claude 生产网关 decider,修 gating 卡批准 409
session-os: #351 接通 claude 终端 send_input(dispatch 把后续任务发进 cc PTY)
session-os: Opencode launch 自动提交任务(fire prompt 到 sidecar session)
session-os: Launched cc 终端注入 store 以持久化 chunk(修工作区终端空白回放)
session-os: Launch 时把 prompt 作 claude 位置参数自动执行(修任务注入但不提交)
session-os: Launch 时跳过 cc/codex 首跑信任提示(保 gating 不动)
session-os: Launch_session 工具边界展开+校验 cwd(修字面 ~ 致三家全挂)
session-os: Surface codex permission events
session-os: Clamp event replay access limits
session-os: Classify gated claude tools as permission requests
skills: Tolerate local disabled skill artifacts
skills: Keep superpowers canonical and update-checkable
streaming: Key tool_calls_acc by id to prevent gateway index collision
stuck-detector: Record_action 传实际 arguments 修复 repeat_action 失效
test: 同步 runtime_port claude dispatchable 旧断言(#365 接通 send_input 的 test fallout)
test: Check project structure instead of directory name
test: Case-insensitive project root name check
test: Remove hardcoded project name from test_working_dir_default
test: Prevent mlx xdist crashes and add startup fallback coverage
test-mode: 保留测试记录并隔离摘要
test-mode: Preserve untracked files on revert
tests: 修复 12 个预存失败测试
tools: Add _cwd support for worktree isolation in 6 file tools
ui: 消息删除改为乐观模式 — 避免 API 失败时消息"复活"
ui: 修复进化报告详情滚动 + 移除研究阶段折叠
ui: 修复进化报告详情滚动失效 + 研究阶段默认展开
vec_search: Remove misleading sqlite-vec reference from docstring
web_search: Switch from yandex to auto backend for overseas server
web_search: Use yandex backend for all queries on domestic server
web_search: Use yandex backend for Chinese queries (bing unavailable)
web_search: Increase timeout to 30s for high-latency domestic servers
web_search: Use positional arg for DDGS.text() to match newer ddgs API
web_search: Remove Google connectivity probe that blocked DuckDuckGo on domestic servers
web_search: Fail fast when external internet is unreachable
worktree: 启动 cleanup 不再误删活跃任务的 worktree
worktree: Stale branch cleanup 同时关闭 PR 和删除 remote 分支
根治: 空 coding_agent 分支立刻删除,不再依赖 age cleanup 兜底
Reconcile permission notification UX
Surface active permission notifications
Address cwd pr review comments
Block manual launch while choosing cwd
Align chat cwd picker toasts
Preserve coding agent internal cwd
Harden cwd preference composable
Harden workspace directory picker
修复 restart.sh 健康检查竞态
Secure collaboration frontend streams
Harden collaboration invite replay
自我进化 PR 不再泄漏未推送 commits + JCL 自动部署 + Oracle CI 修复
Add Oracle and delete aws
/check 审查发现的 b917eaf 质量问题修复
Start.sh 端口检测误判 Chrome 连接为 Jarvis 进程
默认关闭 BGE-M3 embedding,修复 MPS 内存爆炸(50GB→534MB)
Start.sh 前端 build 检查用 find -newer 替代目录 mtime 比较
Start.sh systemd 路径加入前端 build + 健康检查超时延长至 180s
Start.sh 进程管理重写 — 可靠杀进程 + systemd 委托 + 防重复启动
Evolution_strategy.md 不再在无实质变更时更新时间戳
修复全量测试 43 个失败 + pytest 9 兼容性
Pytest marker 从 PostToolUse hook 迁移到 conftest.py pytest_sessionfinish
Check-gate-marker 会话隔离,消除多窗口并发覆盖 bug
Post-pytest-marker hook 消除 eval 注入风险 + 统一指纹哈希语义
Skill Hub 六项缺陷修复 + 详情页重做 + 远程 total 计数
Pre-commit hook 只跟踪 .py 文件,非代码文件不再触发 pytest 门禁
Guard autonomous cleanup from destructive live runs
数据连通性修复 — useAutonomous 单例 + PulseBar 响应式
Worktree 隔离 5 层纵深防御 + 预存测试修复
提交遗漏的 evolution_events.py 模块
删除无用的 jarvis.crt fallback — 只保留 .env 显式配置 + FQDN 证书检测
TLS 检测优先读 .env 显式配置 — 杜绝静默降级到 HTTP
Start.sh 检测已有 FQDN 证书 — tailscale cert 失败时 fallback 到已有证书
Start.sh 读取 .env 的 JARVIS_PORT + restart 时杀旧进程
修复 3 处端到端断裂 — GEPA 激活 + skill 类型修正 + 信号追踪全链路
Worktree overlay 不再泄漏人类 WIP 源码到自主任务
恢复进化仪表盘页面 — /evolution 路由 + 导航入口
服务重启时给 orphaned 任务补写 stream 终止事件
自主任务分支生命周期 — PR 成功删本地分支, 无变更删分支
自主任务事件离线持久化 — 无前端连接时也保存关键事件
自我进化 E2E 两个根因修复
工具执行 duration_ms 计时 — 修复 avg_duration_ms 全为 null
Console 工具调用次数显示 + round header 工具计数
清理前端残余 cost 显示 + round_duration_ms 包含 eval 时间
修复自主任务死循环 + SSE 实时流 + 多项 Console bug
SPA 路由回退 + stream_events cleanup 计数 bug
移除自主任务 worktree 失败时的 main tree fallback(安全缺陷)
Live test hook 从 30 分钟时间窗改为内容指纹模式
CompletionChecker 支持 analysis_complete + 评估任务改用此条件
将 guideline_strategic/tactical beliefs 纳入自主任务经验注入
Deploy 脚本增加 stale branch 自动清理
恢复自我进化丢失的改动 + 修复部署脚本不保留本地变更的缺陷
用时间戳重叠检测替代绝对阈值修复并行测试 flaky 问题
修复 test_three_agents_parallel_timing 在 2 核机器上的 flaky 问题
WORLD_MODEL 移出 git + 两个预存测试修复 + 依赖版本更新
消除两个 -n 2 并行下的 flaky test
Tool_evo_apply UTF-8 字节偏移修复 + 端到端 coach cycle 打通
Tool_evo_apply 输入容错 — 弥合 Analyzer↔Apply 接口 gap
Tool_coach_analyzer JSON 解析 — 修复 Opus 未转义引号导致闭环断裂
E2E 测试传入 base_dir 避免污染生产 WORLD_MODEL.md
删除误提交的 SQLite 文件 OVERRIDDEN_BY_CODE_DO_NOT_USE_ALEMBIC_CLI_DIRECTLY
部署脚本改用 pip install -e 避免 site-packages 冻结旧代码
前端设计缺陷修复 #6-#13 — safe-area、拖拽钳制、动画、ghost-text、z-index
EvolutionPage 主题色统一 + 滚动修复 + 移动端适配
信念提取 prompt 增加质量标准 + 用户消息优先 + dedup 阈值收紧
Deploy-server.sh 安装 [dev] 依赖确保 pytest 可用
Eval_gate 将 'No module named' 归类为 error 而非 fail
Inject run_date into journal prompt + localize evolution page to Chinese
Inject run_date into journal prompt so model uses correct date
Journal synthesis identity refusal — remove role-playing prompt + switch to non-thinking model
L3 fallback - parse concatenated JSON in tool arguments
Reduce worktree branch cleanup threshold from 7 days to 1 day
将 .env.example 加入版本控制(gitignore 排除规则误匹配)
修复无效 tool arguments 导致工具链路异常
增强 API 错误日志诊断信息
Blocks 模式下多个 text segment 合并为统一气泡
工具调用缺参数时返回清晰错误而非 Python TypeError
Web_search 智能连通性检测 + 超时保护
Ollama 模型名 404 + local_client 自愈
当前轮 tool_result 压缩 + first_token_ms 观测 + 客户端 timeout 接入
显式配置 httpx timeout + tool_result 压缩阈值
APITimeoutError 指数退避重试 + 流式阶段保护 + API 调用耗时日志
Yunwu API base URL 从 hw.yunwu.ai 改为 yunwu.ai
4 个 P0 安全/正确性修复 — shell 注入、信念损坏、进程泄漏、竞态条件
RateLimitError 指数退避重试 + max_tokens 降至 16384 缓解速率限制
Suggestions prompt 补充「召唤师」称呼说明,避免轻量模型误解为游戏术语
预测回复 prompt 修正 — 站在用户角度预测而非续写贾维斯的话
分离 Panel 关闭与 Pill 清除 — 关面板不再自动消除任务通知
Vision_architecture/semantic_reasoning LLM 短回复容错
Autonomous round recording 使用正确的 tool name key
流式响应期间允许用户向上滚动(sticky scroll)
放宽并行 agent 时间敏感测试阈值(0.18s → 0.5s)避免 flaky 失败
Live Test Framework — 修复 URL 检测、认证头和 chat payload
性能优化
autonomous: 经验注入条件化 + scratchpad blockers 上限 + 移除 Layer1 重复注入
eval_gate: Pytest 并行度 -n 2 → -n 4
test: Critical test 提速 3x + worktree 分支清理 bug 修复 + /check gate 软化
Eval_gate 用 critical marker + 并行 + baseline 缓存
首 token 时延优化 — 本地处理 (P1-P6) + prompt caching (A+B+C)
Pytest 提速 4x — module-scoped fixtures + xdist 并行
重构
config: 配置系统全面整治 — 消除重复/硬编码/死变量
deploy: Remove all hardcoded paths, add CI/CD docs
deploy: Move logs into data/logs/, fix all stale -data/-logs path patterns
deploy: Self-contained deployment — parameterize all paths, merge oracle variants
deploy: Move deploy-server.sh to deploy/ and rewrite as universal script
docs: 文档系统简化重构 — HANDBOOK 单入口 + plans 二级目录
hooks: 内容指纹门禁替代 10 分钟过期机制
jcl: 交付声明制 — coding_agent 主动声明 DELIVERABLES
live-test: 默认 clean restart — graceful kill → start → poll health
plan_parser: Drop dead variable is_default_context
session-os: #374 launch handler 整体透传 LaunchSessionRequest
session-os: Route runtime events through source adapters
session-os: Remove random runtime event envelope builder
tests: 精简测试套件 — 删除重复/过时测试 + 降级非核心 critical + 清理冗余标记
workflow: 简化开发流程,降低 token 和时间开销
Make chat cwd deterministic for coding sessions
Waiter 编排抽出 RuntimeHookReplyBridge + resolver-binder 显式化(#337 合并后 B-lane 收口)
Stop() 收口 cancel 的 reader/stderr task(reviewer S1 非阻塞清理)
移除 BGE-M3 embedding 系统,改用 grep + FTS5 + 文本相似度
迁移 evolution_strategy.md 到 docs 目录以支持 git 同步
移动 research 报告到 docs/research/
代码复用与效率优化 — 消除重复/并发化/统一工具函数
MESA v3.1 代码清理 — 消除重复 + 修复 dead code + 热路径缓存
删除 alembic.ini — 全部 13 个测试文件改用 get_alembic_config()
Plan_parser 增强归档能力 + Beta+ 文档索引更新
[0.4.1] - 2026-03-02
新功能
- Phase 0.4b 阶段三记忆基础 — M1-M7 全部完成
- Phase 0.4b 阶段二自主循环引擎 — R1-R8 全部完成
- 本地 MLX LLM 联想 — Qwen3-4B-4bit on-device 推理
- Suggestions 启动提示 — 空聊天显示固定建议,有历史时生成上下文建议
- Phase 0.4b 阶段一引擎解锁 — 9 项交付物全部完成
- 演示模式 — system prompt + Playwright 单视频 demo 测试
- 输入增强三件套 — 历史回调 + 智能回复 + AI 联想
Bug 修复
- MLX Metal GPU 线程竞争崩溃 + 右箭头接受联想
- Suggestions 端点剥离 AI 返回的 markdown code block 包裹
- 测试模式下"退出测试"按钮始终可见
- 测试模式 loading 时显示"退出测试"按钮替代"停止"
- 测试模式两个 bug — 无法退出 + 无法输入"退出测试"
性能优化
- Suggestions/autocomplete 速度优化 — 换 gpt-4o-mini + 流式 autocomplete + 不取消 suggestions
- BGE-M3 启用 MPS GPU 加速 — 全量索引 26min→2min
[0.4.0] - 2026-03-01
新功能
- 后台启动索引 — 首次全量索引不阻塞请求
- Phase 0.4a Wave 5 — 分段 + 收尾(M13-M15)
- Phase 0.4a Wave 4 — Context Engine(M10-M12)
- Phase 0.4a Wave 3 — 语义搜索(M8-M9)
- Phase 0.4a Wave 2 — 代码索引(M5-M7)
- Phase 0.4a Wave 1 — 基础设施(M1-M4)
Bug 修复
- Smart_search 生产环境稳定性修复
- Settings 忽略非 JARVIS_ 前缀的 .env 变量
- BGE-M3 模型加载失败不再阻塞请求
性能优化
- BGE-M3 自动启用 MPS 加速 + init_vec_db graceful fallback
[0.3.0] - 2026-02-27
新功能
- V1 自举验证 — 代码行号 + 工具自动展开/折叠 + 身份锚定
- Phase 0.3 自我迭代 — 7个开发工具 + 语法高亮 + 工具渲染器
- Coding_agent 自动合并模式切换
- Coding_agent 继承聊天模型选择 + 模型标签立即显示
- 前端 Playwright E2E 测试框架
- P1.5 并行 coding_agent — Git Worktree 隔离
- B10 并行工具执行 — asyncio.gather 并行非流式 tool_call
- Coding_agent 文件读取提示 + E2E 测试 conflict 修复
- E2E 生命周期测试脚本 + Agent Loop API 调用容错
- Coding_agent 状态文本动态化,标题改为「编程助手」
- 测试模式自然回复 + 变更专项验证流程
- 测试模式 + 停止按钮修复 + 文件恢复
- 提升工具输出引用质量 + 修复测试模式两个 bug
- 前端流式工具 UI — coding_agent 终端展示 + tool_stream 事件处理
- Restart_backend 工具 — AI 可通过工具调用重启后端服务
- Coding_agent 工具 — Claude Code CLI 集成 + 性能优化
- 流式工具框架 — 支持 tool_stream 事件、并发控制、进程管理
- 工具调用结果结构化渲染
- 工具调用聚合展示(方案 B)
- Delete UI, markdown rendering, voice cancel gesture
- Delete message with WebSocket broadcast
Bug 修复
- Merge bar 移到折叠框外部保持始终可见 + 新增发布清单
- 修复 1 项 Critical + 6 项 High 安全与健壮性问题
- 修复 10 项低优先级问题(死代码清理、类型修正、功能修复)
- 修复 9 项中优先级前端问题(安全、代码质量、UX)
- 修复 11 项中优先级后端问题(安全、健壮性、性能)
- 修复 6 项高优先级问题(安全、超时、配置)
- 修复 logger 未定义 NameError + 移除硬编码 API 密钥
- 完善服务器重启流程 + 清理测试残留
- 取消 coding_agent 自动合并,新增用户审批门控
- 消息删除 404 处理 + coding_agent 模型名显示优化
- Worktree squash merge + 启动时自动清理残留
- 并行 agent 终端输出同时显示
- 修复并行 agent 执行的 3 个 bug
- 单个 coding_agent 也使用 worktree 隔离,防止还原未提交文件
- 恢复按钮基于 git 实际变更而非 Write/Edit activity
- 恢复修改按钮仅在有文件编辑操作时显示
- 解决取消流后残留消息污染下次对话的竞态条件
- 修复取消流后残留消息污染历史 + 测试模式本地拦截
- Live test 脚本支持 HTTPS + 修正版本号断言
- Max_tokens 硬编码 16000 + max_tokens 截断日志 + 错误信息改进 + SSE 解析修复
- 桌面端恢复消息气泡文字选中功能
- 同步版本号至 v0.2.3,补充发布流程规范
- Ignore stray backend/*.db and neutralize alembic.ini relative URL
- Add Mandarin prompt to Whisper transcription for better accuracy
- Null assistant content when tool_calls present in agent loop
- Bump VERSION to 0.2.2
重构
- 版本号去硬编码,测试自动从 main.py 读取
- 统一 test 模式与生产模式 coding_agent 执行路径
- Coding_agent 移除 result fallback,stream_event 为唯一输出路径