Dark-theme surfaces that use var(--fn-bg-container, #fff) — most visibly the knowledge-base Markdown preview body, toolbar and outline panel — resolved to a white background while text stayed light, leaving preview content invisible. Define the variable as #ffffff (light) and #141414 (dark), and point the Admin/Users badge tints that borrowed the name for a translucent fill at --fn-bg-tertiary so their look is unchanged. Fixes #1215
44 KiB
Changelog
本文件记录项目的所有重要变更。
格式遵循 Keep a Changelog,版本号遵循 语义化版本规范。
[Unreleased]
修复
- 暗色主题下知识库 Markdown 预览白底白字导致正文不可见(补上未定义的
--fn-bg-container主题变量,Fixes #1215)。
[1.0.2b3] - 2026-09-26
新增
- 角色模板、邀请快照与头像;登录页「记住登录状态」
- 企查查同时支持一键 OAuth 与 API Key
- 团队产物、工具轨迹与主持人收尾;管理员批量策略与令牌
变更
- 运行时依赖切换为 octop-harness / octop-gateway / octop-memory / octop-browser 1.0.0
修复
- 团队聊天与 IM:思考仅在团队房间默认折叠,工具状态改为通用提示
- 知识库文档上限与重命名、审计/会话列表 limit、多 worker 下角色与 HITL 即时生效
- 内置技能写保护、超大插件 UI 剥离、端口/验证码分数/IPv6 等边界校验
- 旧备份恢复时幂等补齐 schema v18
[1.0.2b2] - 2026-09-23
新增
- Teams 主持人改写派工,成员回复同步 IM
- 企查查、OpenAlex 连接器
修复
- 专家编辑、聊天欢迎标题与专家切换预填
- FPK 预发布版本解析、沙箱 ACP 委托、桌面重启 WAL、定时任务失败后 prompt 残留
- 连接器 OAuth 回调安全加固
[1.0.2b1] - 2026-09-22
新增
- 登录验证码新增极验行为验 v4(#870):设置页配置 captcha_id / captcha_key,登录弹窗完成验证,服务端按官方协议 HMAC-SHA256 签名后到 gcaptcha4 二次校验(form-urlencoded,仅 result=success 放行)
- 对话支持默认折叠思考与工具过程(浏览器本地偏好)(#718)
- 对话中可隐藏不常用的共享专家(浏览器本地偏好)(#589)
修复
-
切换专家或会话时,聊天输入框不再沿用上一专家的一次性预填提示词,改为恢复目标专家/会话的草稿(#363)
-
聊天输入框对话模式与模型按钮改为仅显示图标(选中项放到 tooltip),模型选择弹框补上提供商 logo
-
发布专家时保留源专家的公开头像(内置 SVG 或远程肖像);仅上传过自定义图片时才走快照头像接口,不再发布后只剩默认图标
-
CLI
cron run-now等待执行及状态、审计落库完成后再关闭内嵌服务;执行失败返回非零退出码,不再提前打印ok(#946) -
专家清单生成读取技能元数据改用共享 frontmatter 解析器:模块内自带的解析只认首行
---并按:逐行切分,导致description: >-折叠块被当成字面量'>-'、前导 HTML 注释会让整段 frontmatter 失效——技能描述以空值/错值进入生成提示词,进而写坏专家清单的description与welcome_message -
date:定时触发与cron:一样使用default_timezone,裸 ISO 时间不再回落宿主系统时区 -
HITL resume 流失败时将 pending 标为
expired(不再像成功批准),避免错误状态误导排查 -
SQLite 写事务改用
BEGIN IMMEDIATE:多 worker(octop run --workers N)或 CLI 与服务并发写入时,先读后写的事务不再因快照过期而立即报database is locked -
登录页「忘记密码」改为按需展开:优先提示联系管理员,本机 CLI 重置作为次要说明(#869)
-
iOS PWA 状态栏不再虚化遮挡内容:顶栏改为不透明、去掉 backdrop-filter;登录页与设置向导补
safe-area-inset内边距(#874) -
知识库纯文本/Markdown/CSV 在 UTF-8 失败时回退 GB18030,避免 Windows GBK 文档被替换成乱码后入库
-
Dashboard 保存 Agent 运行参数后立即刷新当前 Agent 上下文,避免重置按钮和聊天页继续使用旧值
-
Dashboard
ask_user_question卡片不再在刷新/切会话后重复弹出:HITL pending 在恢复开始即标记完成,新回合会作废遗留提问,历史重注入按pending_id幂等去重 (#782) -
远程 OCR 返回「未收到图片 / 请上传图片」等拒绝提示时不再当作正文入库(此前会被向量化、文档仍标记 ready),现按无可提取文本处理
-
环境变量值含换行(如粘贴的多行密钥)时,保存后再读取会被截断并残留引号;现按引号跨行读回,保证「写入 → 读取」往返保真
-
定时任务与系统任务(TLS 自动续期、自动备份)此前按宿主系统时区触发,现按
default_timezone配置时区执行 -
删除知识库文件夹不再误删名字相近的文件夹:此前用
path LIKE '<目录>/%'匹配子项,文件夹名里的_/%被当作通配符(删a_b会连带删axb/…),且 SQLite 的 LIKE 不区分大小写(删Docs会删docs/…,与 PostgreSQL 不一致);现改为大小写敏感的前缀比较 -
修复知识库选择未按专家记忆的问题:对话中选择的知识库此前是全局单一状态,切换专家后既不恢复该专家上次的手动选择、还会把上一个专家的选择带入(或在会话间被默认值覆盖);现与连接器一致,按专家持久化选择(localStorage),切回专家时恢复其上次手动选择(含显式清空),新会话仍按专家默认值初始化;连接器选择同样补上切换专家时的状态重置,消除其跨专家串选(A 专家的连接器带入 B 专家会话)问题
-
Dashboard 在 Chromium 90 等旧版浏览器中因缺少
Object.hasOwn而无法启动 -
侧栏切换路由不再因 AuthGuard 重跑校验而整页闪 Spinner;仅右侧内容区切换 (#696)
-
无网络或后端不可达时,启动页展示明确错误与重试,而不再白屏 (#696)
-
iOS PWA 顶栏/侧栏避让状态栏:
env(safe-area-inset-top)垫高移动端 Header 与抽屉品牌行(#664) -
定时任务空状态提示词:workspace 缺省时回退到专家目录模板 / 名称默认,与 welcome 共用解析 (#651)
-
对话 Ask / Plan / Craft 模式,以及折叠思考与工具过程
-
生成模型多厂商管理与图片/视频独立路由(火山方舟、百炼、MiniMax)
-
插件市场;专家团队宿主;Discord 渠道
-
登录极验行为验 v4;按专家记忆知识库/连接器选择,可隐藏不常用共享专家
修复
- Windows 自升级:
octop.exe运行中也可完成升级 - 同一线程回合串行,避免 HITL 与普通回合交错污染会话
- agent 配置 PATCH 不再丢掉
workspace_dir;cron / 系统任务按时区触发 - iOS PWA 状态栏与 safe-area;无网络启动错误提示;旧版 Chromium 启动兼容
变更
-
升级 harness-agent 至 1.0.14;Dashboard 空状态与聊天输入交互微调
-
连接器 OAuth 回调对重定向 URL 和错误消息安全编码,拒绝外站和控制字符绕过;弹窗仅向同源窗口发送授权通知,并保留回跳路径的查询参数与片段
[1.0.1] - 2026-09-18
新增
- 飞书 / 钉钉 / 企业微信 OAuth SSO 登录与绑定
- 可选登录验证码(滑块及多家云验证码),并提供
octop captcha reset - 容器工作区默认、专家头像,以及聊天 HITL / 技能选择体验优化
- 模型列表搜索;ACP 纳入个性化「工具」页签
修复
- 超长 URL 导致历史消息加载极慢
- 手动创建渠道默认启用;PostgreSQL 知识库缺列;损坏 config 被清空
- 若干 Dashboard / 构建相关问题(权限页签、抽屉滚动、Windows 构建等)
变更
- 升级 harness-agent / harness-browser
[1.0.0] - 2026-09-14
新增
- GA 版本正式发布
- 更新检查默认仅查稳定版,可选包含预发布
变更
- 登录页与浏览器标题 slogan 更新为「懂你、帮你、陪你成长的智能伙伴」
修复
- 备份列表大归档时不再全量扫描 tar
- 腾讯云语音探测失败在中文界面本地化
[0.9.35] - 2026-09-13
新增
- 聊天支持 @ 提及工作区文件
- STT 探测改为真实识别调用,与 TTS 对称
修复
- 语音模型探测不再因凭证/网络错误返回 500,直接展示云厂商真实错误原因
- 浏览器录音上传前转码为 WAV,修复腾讯/Mimo 语音识别不支持 webm 容器导致的识别失败
- STT 探测改为真实识别调用,与 TTS 探测对称,凭证/网络错误以 ok:false 返回
- 语音探测按界面语言返回中文/英文错误(含腾讯云 SecretId 等常见鉴权失败)
- 语音探测失败直接展示错误,不再返回 500;录音上传前转码为 WAV
/compact回复隐藏本机绝对路径octop run正确应用OCTOP_PORT/OCTOP_BIND_HOST
[0.9.34] - 2026-09-12
新增
- 聊天头像改到输入框两侧,失败轮次保留内容和错误
- 定时任务空状态改用专家任务示例
修复
- 刷新后消息时间戳不再丢失,用户气泡与头像对齐
- FnOS 安装向导接管管理员密码,避免默认弱密码导致无法启动
变更
- README 补齐知识库、插件、PostgreSQL 等说明
[0.9.33] - 2026-09-11
新增
- 知识库支持下载原文、按原排版预览,聊天内可直接预览引用
- 技能可在技能包与专家工作区之间复制
- 记忆树支持手动新建与修正;Token 统计支持日期筛选与 Excel 导出
- 按用户限制存储根目录与 Token 配额;创建专家可带默认知识库与连接器
- 聊天支持 @ 子专家、技能斜杠插入,以及 ask_agent 独立对话线程
- 滴滴连接器;可选分段历史归档;便携运行时升级并支持 SQLite 备份
修复
- 工作区 zip 导出不再被 backend 根目录同名文件顶替;导入时保留隐藏系统状态
- 知识库文本文档编辑保存生效;共享专家技能可在聊天中使用
- 斜杠命令刷新后仍可见;新会话标题即时更新
- 升级检查失败提示本地化;OpenCode Go 请求携带会话 ID
变更
- 聊天点技能改为插入
/slug;创建定时任务必须填写名称 - 依赖 harness-gateway ≥ 0.9.6、orcakit-harness-agent ≥ 1.0.8
新增
- QQ 私聊默认走官方
stream_messages替换流式:进站先发不可见换行 hold,再按完整 markdown 块更新同一条气泡;<think>会剥掉且不.trim()掉换行 - 流式失败、前缀被拒(
40007)或只发出 hold 时,回落为一条静态 markdown(msg_type=2,失败再0)
修复
- 飞书话题内回复改走话题回复接口并带
reply_in_thread,失败时回退为群内普通发送;话题以thread_id作为会话主体
变更
- QQ 私聊不再使用通用「回复模式」开关,旧键
streaming/response_mode无效;只有显式c2c_streaming: false才退出流式 - QQ 群聊 / 频道 / 频道私信没有 stream API,仍只发静态消息
- 控制台保存 QQ 通道时写入
c2c_streaming: true,并提示工具过程会另占每条入站约 4 条被动回复配额 - 依赖
harness-gateway>=0.9.7(含 QQ C2C 替换流式与飞书话题修复)
[0.9.32] - 2026-09-06
新增
- 聊天运行轨迹抽屉与回合时间轴;人机确认以可读审批卡片展示
- 知识库支持更多文档格式与可选 OCR,上传显示进度
- 定时任务支持名称,计划回合持久化
- 备份可选择归档内容;连接器支持多实例与共享;插件可按智能体开关
- OpenSandbox 远程沙箱;工作台浏览器按用户隔离 profile
- 飞书扫码创建应用;远程手机可自动安装 Docker
- 桌面端 Windows NSIS 安装包与 macOS DMG;未知路由 404 页
修复
- 斜杠命令写入 harness 会话 checkpoint,刷新后仍可见,且下一轮模型能读到
- 桌面客户端打包把
pyproject.toml版本写入 macOS Info.plist、Windows 文件版本和 NSIS 安装器,不再沿用写死的旧号 - 用户发布专家卡片展示快照内自定义头像(
icon_url+/api/experts/published/{id}/avatar),不再只显示默认 Lucide 图标 - 用户管理表格(桌面端)横向滚动时固定用户名与操作列(与专家列表一致;移动端不固定)
- 运行轨迹流式事件在内存聚合、回合边界持久化,避免逐 token 写库和重复存储上下文全文
- 运行轨迹 Turns / Calls 折叠与耗时投影:历史缺
turn_id/ 时长时回退为 USER 边界与内容体量估算,避免开关无效 - 知识库表格模式宽屏仍出现多余水平滚动条(列宽拖拽手柄越出最后一列)
- 聊天右侧停靠/弹窗工具栏避开无边框窗口按钮,避免与红绿灯重叠
- 桌面启动页改为白底卡片和底部进度条;Windows 设置窗加高,避免底边距被裁掉
- 桌面壳内隐藏「安装为桌面应用」,避免在已原生窗口里再提示 PWA 安装
- 日志按大小+按日轮转,并采用 logrotate 风格的
compress+delaycompress(最新一份轮转文件暂不 gzip,下一轮再压;用 Python 标准库,Windows 可用) - 远程手机自动安装 Docker 后,非 root 时用
sudo -n写daemon.json并重启 dockerd - 旧备份在 schema 变更后可恢复;桌面打包版本与应用元数据对齐
- 主动关怀时区、专家卡片头像、用户表固定列
- 运行轨迹写库开销、日志轮转、通道二维码轮询与远程 Docker 安装权限
变更
- 语音与搜索设置迁到模型页;控制台改用 OctopSpinner
- 默认管理员凭据改为首次运行写入
~/octop-login.txt
[0.9.31] - 2026-09-01
新增
- 聊天流式输出时默认展开思考/工具过程,回答完成后收起(历史记录仍收起)
- 聊天侧栏与 @ 选择仅展示运行中的专家
- 默认专家与控制台创建的专家一样使用家目录存储;聊天待办按计划顺序展示
- 工作台浏览器可显式结束本地 Chrome 进程;空闲超时后也会回收(登录态仍保留在磁盘 profile)
- 桌面端右上角窗口控制(最小化 / 最大化 / 关闭进托盘)
修复
- 过期 hashed 静态资源返回 404,避免升级后桌面壳加载旧脚本
- 桌面无边框窗口改为 CSS/JS 拖拽,去掉会挡住右上角按钮的
InvisibleTitleBarHeight - macOS 点击程序坞只恢复主窗口,不再同时弹出托盘设置窗
- 专家详情技能/子智能体卡片:图标在标题左侧,状态或 id 在标题右侧,描述单独一行
- 桌面端等待本机服务就绪失败时改为中英文说明(跟随桌面语言设置),不再显示
/api/health英文报错 - 桌面启动页补齐右上角窗口按钮,并收紧启动/失败状态的展示
- 桌面托盘设置窗去掉多余空白,右上角只保留关闭;macOS 单击菜单栏图标也会弹出设置
[0.9.30] - 2026-08-31
新增
- 腾讯云 Token Plan 企业版与 Hy 套餐
- WeKnora、Dify 连接器,以及自定义 MCP 的 OAuth
- 备份/恢复、聊天工具栏、SSO 预设与更友好的供应商错误提示
- 技能展示本地化;知识库可配置文档数量上限;钉钉扫码注册
- 对话接入 ask-user-question 人机确认流程
修复
- 专家根目录、连接器排序、飞牛图标及主题确认对话框等界面问题
- 聊天中文语音识别跟随界面语言
- MCP OAuth 刷新失败需重新授权;渠道异常 thinking 输出过滤
- 数据库 v10 迁移遗漏 thread projection 表
- 飞牛 FPK 无效在线升级与原生版启动加载;长会话相关问题
- 通道弹框文案统一为「通道」,新建默认实时过程
octop acp启动即崩溃(CLI 注册表属性应对齐acp_cmd)
[0.9.29] - 2026-08-27
修复
- 长会话卡死:聊天历史改为独立投影分页加载,并支持后台迁移旧会话(不再同步扫 checkpoint)
变更
- 依赖:
orcakit-harness-agent[all]>=0.9.27、harness-memory>=0.9.7、harness-browser>=0.7.6(自动 full VACUUM 关闭,空闲维护只走 lifecycle GC + incrementalnudge_vacuum)
[0.9.28] - 2026-08-26
修复
- 无更新权限时隐藏检查更新入口
/compact兼容.octop/conversation_history/卸载路径- FnOS 镜像改为 Docker Hub
jubaoliang/octop
新增
- 基层医生学习助手增加普通医学问答快路径、国内专业学会/专科分会与国际指南精确路由,并完善受控信源降级和检索预算。
[0.9.27] - 2026-08-26
新增
- 内置插件随包装分发(默认关闭,卸载后升级不重建)
- 可配置上传上限(
max_upload_mb/OCTOP_MAX_UPLOAD_MB,默认 100MB) - Dashboard 推送通知(定时任务与主动关怀 toast)
- 聊天音视频附件预览播放,并扩展 inbound 附件 MIME
- 火山方舟 Seedream / Seedance 生成模型配置、测试与结果展示
- 连接器:Ardot、滴答清单;远程 MCP OAuth 改为 catalog 驱动
- 单工具开关热更新与插件工具目录
- ACP 内置 Runner:Kimi Code、Cursor CLI、Pi
- 知识库文件夹重命名
- ONNX 模型下载竞速 Hugging Face 与 hf-mirror
- 远程手机 ADB shell(旋转与分屏布局)
- FnOS NAS 应用打包(Docker / native
.fpk) - 专家模板扩充(通用、Karpathy、临床来源策略)
- 中文子智能体约 49 个(HR / 法务 / 供应链)
- Dashboard 剪贴板回退与聊天 UI 打磨
修复
- 知识库文件夹操作按钮误开文件夹
- 工具预期失败不再误报为
stream_error - 连接器 OAuth 公网回调 / HTTPS / 自动保存;npm 不可写时回退用户级 prefix
- SSO ID token issuer 校验
- Dashboard:SW 激活后再 reload、Firefox 无限刷新、选择器 popover、文案全球化
- 浏览器 runtime 目录在 Windows 上可写探测
变更
- FnOS 打包拆分为
docker/与native/
[0.9.26] - 2026-08-23
新增
- 远程手机(实验性):安装时探测主机移动能力(
capabilities.mobile,物理机 / Redroid / KVM);能力开启后开放GET /api/settings/capabilities与/api/mobile/*。控制台「远程手机」支持 adb H.264/JPEG 推流、触控、画质预设、设备信息与 AI 助手面板;智能体移动工具绑定当前远程手机会话 - 控制台布局支持经典 / 极简模式,聊天记录统一承载;用户可选填邮箱(邀请 / 登录);知识库支持应用内编辑 markdown / txt;远程桌面与远程手机合并为统一控制入口
修复
- 邀请链接统一为
/invite?code=,修复邀请页居中与移动端在 overflow-hidden 壳下的滚动;启动前显示 logo 加载动画;设置页邮箱输入图标对齐;移除聊天坞中的远程手机入口 - 加固 dashboard 鉴权与请求层(setup 锁定 503、401 刷新)、登录页与 AuthGuard 体验;按服务器能力门控移动端功能;远程控制中枢页签文案缩短为「服务器 / 手机」
[0.9.25] - 2026-08-21
新增
- Token 计量新增缓存命中支持:按模型调用累计未缓存输入、缓存读取、缓存写入、推理 Token 与模型调用次数;用量页和消息气泡展示缓存命中数据。
- 编辑专家抽屉可修改标题语(欢迎语),与创建时同一字段,写入智能体实例而非仅页面配置
- 专家支持上传自定义头像,写入工作区
.octop/avatar.png(或 jpg/webp/gif)并通过agents.icon_url展示;发布快照会带上头像,安装后自动绑定。未设置时仍用配色 + Lucide 图标 - 实例化专家的欢迎语改为单一
welcome_message字段(用户自填,不再分中英);专家模板仍保留双语欢迎词 - 智能体状态接口返回
memory_maintenance(queued / pruning / compacting)。聊天页显示阶段进度条,整理本库时暂停发送;专家卡片显示「整理记忆」标签。 - 聊天页:文件工具卡片显示「编辑了 N 个文件」(不含截图);文件面板标题改为「文件变更」。会话
artifacts由 Octop 工具中间件在写文件 / 发文件 / 桌面截图成功后写入,切换会话后仍可在文件变更中查看。路径优先取工具 args,仅在 args 没有 path 时才扫结果文本。专家选择器「共享」标记与名称同一行。右侧增加工作区入口;工作区目录树支持将文件拖到其他文件夹。 - 知识库、技能包、已发布专家改为整数自增
id+ 对外字符串 ID(knowledge_base_id/skill_package_id/published_expert_id;文档用kb_id关联)。agents仍用字符串引用技能包与已发布专家。知识库文档支持文件夹路径;分片大小等仍存实例settings。删除未使用的knowledge_base_members。上述库变更与专家资料列、会话 artifacts、实例欢迎语单字段一并作为 schema v7。 - 对话检索结果附带知识库引用标记;聊天页在回答下方展示可点击的来源文档(跳转知识库页)
修复
- 技能:修复编辑已导入技能并保存后,技能内其余文件与文件夹(README.md、references/ 等)被整体清除的问题——内容编辑(仅 SKILL.md)现原地覆盖清单文件、保留全部同级文件;携带完整
files载荷的更新仍整目录替换(与覆盖重装语义一致) - Harness usage 事件按稳定调用 ID 去重,避免流重放重复计费;上下文环保留路由模型的真实窗口上限,并将构成拆分明确显示为近似估算。
- Admin 环境变量未进入正在运行的 Agent:本地 shell 默认不继承进程 env,Docker exec 也不传 env,工作区
.env只落盘不注入。现本地 shell 每次 execute 继承当前进程环境(含~/.octop/env)并 overlay 工作区.env;Docker 热读全局文件 + 工作区.env+ 最小 PATH(不含完整宿主机环境)。保存 Admin 列表会从进程环境删除已去掉的键;仅搜索类 key 变化时后台 reload Agent。MCP stdio 只注入 SDK 安全子集 + 全局/连接器 env,不再灌入整份os.environ。 - Token 用量账本每轮只记下最后一次模型调用,工具循环中前面若干次调用被丢弃,页面合计会远低于聊天里看到的用量;现按该轮全部 AI 调用的
usage_metadata累加,以state_snapshot为权威终值(snapshot 之后的增量不再相加),畸形 usage 字段跳过以免打断对话 - 插件工具使用中文等非 ASCII 名称时 LLM 调用失败:主流 API 要求工具名匹配
^[a-zA-Z0-9_-]{1,64}$,现自动将非法名称转写为合法拼音名(pypinyin缺失时退回下划线替换),冲突追加_2/_3后缀,并在工具描述前缀[原名: …]保留原名映射;config_json.plugins配置键与插件内部仍使用原始名称,路由不受影响 - 修复聊天页在"生成中"时于输入框持续打字导致消息列表上下轻微抖动的问题:输入框高度测量改为在离屏克隆节点上进行,不再瞬态改变页面布局
- 工作区读写在 harness 后台重建窗口(DB 仍为 running)回退到
workspace_for_agent,避免误报AGENT_NOT_RUNNING - 聊天页上下文占用环:旧会话没有分段快照时,从消息上已有的
usage_metadata/response_metadata.token_usage回填已用量;相对 1M 级窗口不再把真实占用四舍五入成 0% - 专家抽屉保存页面配置时合并写入
manifest.json:保留其它字段与另一语言欢迎语;加载未完成或未改动时不写文件 - 修复个性化「通道」面板在页面放大后不出现纵向滚动条、被挤出的通道卡片无法查看的问题:工具栏固定、卡片网格改为内部滚动区(与技能面板一致),移动端仍整页滚动
[0.9.24] - 2026-08-15
新增
- 知识库:新增知识库与对话检索,支持本地 ONNX 向量嵌入模型运行
- 认证:新增 OpenID Connect(OIDC)单点登录
- 权限:新增按用户模块权限(RBAC)及管理员绕过
- 专家:支持将工作区快照发布为可安装模板(专家市场)
- 智能体:支持将智能体共享给其他用户
- 技能:新增对话式技能管理器(SkillHub),并兼容 Windows
- 备份:新增自动定时系统备份
- 频道:新增 final-only 仅终稿回复模式
- 线程:支持从 AI 回复处分叉会话(fork)
- 体验:HITL 工具选择器、运行时按需安装、KB/技能 UX 优化;对话与镜像等界面打磨;知识嵌入初始化流程加固
修复
- 媒体/预览白名单补充音频 MIME 类型
- 修正 ONNX 下载检测在未安装 fastembed 时的误判
- 加固更新状态缓存与存储处理
- 预提交门控:修复 staged 变更检测,避免 testmon 门控误报为绿
变更
- 升级 harness-browser 依赖至 0.7.5
- 数据库 schema 收敛为 v5
- 备份恢复面板图标更新为 CalendarClock;对话/镜像等界面打磨
[0.9.23] - 2026-08-13
修复
- 取消首次引导时删除
octop-login.txt引导密码文件的逻辑,避免引导密码意外丢失 - 修复安装脚本版本显示问题,并将安装输出调整为英文
新增
- Octop-owned built-in
skill-managerfor conversational Skill lifecycle management from uploaded files, archives, Git/GitHub or web URLs, and SkillHub. It is seeded into every agent instance without modifying harness-agent and installs user Skills only under that agent'sskills/.
[0.9.22] - 2026-08-11
新增
- 专家工作区支持
.docx在线编辑:以 Markdown 在 Monaco 中打开/保存,保存时转回 docx 覆盖原文件(标题/加粗/斜体/列表/表格保留,复杂格式简化);工作区新建的.docx即初始化为合法文档包,预览/编辑立即可用。基于可扩展注册表,新增可编辑后缀只需注册一个后端转换器类 + 前端注册表一行
变更
- 依赖新增
python-docx==1.2.0(含lxml),用于工作区.docx的 Markdown 往返转换
修复
- 仪表盘发版后或长时间未打开时白屏:Service Worker 不再 Cache-First 钉死旧
index.html;hashed 资源改为 CacheFirst;入口脚本失败时清除 SW 缓存并自动刷新一次 (#236)
安全
- 仪表盘 SPA 静态回退路由加固:在拼接路径前显式拒绝绝对路径与
..父目录引用,并保留最终relative_to校验,杜绝路径穿越读取 dashboard 目录之外的文件(修复 CodeQL 标记的 Uncontrolled data used in path expression)
[0.9.21] - 2026-08-11
新增
- 插件管理页支持从本地 ZIP 上传安装插件,可选覆盖已安装的同名插件,无需先把插件托管到 HTTP 直链
- Docker 沙箱 backend(agent
config.backend.type=docker或存储kind=docker);Admin Docker 卡片、本机 Docker 探测/安装;详见 docs/agent-backend-file-io.md §13 - 强制密码策略并优化账户与子代理(subagent)使用体验
- 浏览器 HITL 流式交互与网关抢占能力
- 新增每用户模型与推理(reasoning)偏好设置
变更
- 依赖
orcakit-harness-agent[all]>=0.9.20;FilesystemGuard / ModelSettings 由 harness 自动挂载(Octop 仅保留 BinaryReadGuard 与 runtime_limits) - 专家
workspace_dir:创建时写入config_json.workspace_dir(默认{OCTOP_HOME}/agents/<id>/),所有 backend 共用;Docker 在容器内镜像同名路径为专家工作区,宿主同路径放 sessions/memory/checkpoints - Docker:
sandbox_scope(agent/user/fixed)+sandbox_prefix(默认octop_sandbox);删专家不删容器;专家工作区在 running 时可预览;Admin 存储previewable仅控制浏览(默认仅 fixed);探测用 test 沙箱做真实读写 - 删除被专家
named引用的存储后端时返回STORAGE_BACKEND_REFERENCED并列出引用专家 - 将 IM 频道定时任务从 ACE 迁移至 Octop cron
修复
- 超大图片不再降级为附件路径提示:超过视觉嵌入上限(2 MB)的图片由 Pillow 压缩缩放至最长边 1568px 后仍以内联图片嵌入请求(保留 EXIF 方向与透明通道,仅当压缩失败时才回退为路径提示),视觉模型自动升级随之生效 (#219)
- 保留技能 ZIP 导入时的空目录与根级技能的子文件夹
- 修复移动端个人设置抽屉,并恢复玫瑰色主题配色
[0.9.20] - 2026-08-09
新增
- QQ 频道二维码扫码绑定,支持群聊上下文(仪表盘频道抽屉 +
octop channelCLI)(#160) - 语音接入小米 MiMo STT / TTS 供应商(
mimo-v2.5-asr/mimo-v2.5-tts),设置页可选择计费端点与 9 种预置音色,TTS 标注限免 (#186) - 仪表盘自定义品牌配色:8 套调色板(玫瑰 / 科技 / 靛蓝 / 青绿 / 紫罗兰 / 翠绿 / 琥珀 / 石墨),与浅色 / 深色模式正交且本地持久化
修复
- Windows 下新建 agent 时,本地后端
root_dir:"/"被解析为当前盘根目录,导致读取工作区(通常位于另一盘符)时抛Path ... outside root directory;现在后端规格解析会在 Windows 上将主机根/的root_dir改写为工作区路径(保留原type等字段) - 删除专家时同步清理
~/.octop/agents/<id>/工作区目录(rmtree 移出事件循环执行);清理失败不阻断数据库删除;仪表盘与 CLI 删除确认提示工作区将永久删除且不可恢复 - 乐享连接器 MCP URL 补充
preset=meta参数并简化快捷授权链接 (#213) - 专家卡片的编辑 / 删除按钮默认可见,不再仅在悬停时显示 (#187, #193)
- 登录页滑动验证通过后,提示文案居中显示在滑块左侧的可见区域 (#185)
变更
- 企业微信客户群二维码与文档有效期更新至 2026-08-16
[0.9.19] - 2026-08-05
新增
- 登录页滑动验证控件;侧栏与 Agent 资料抽屉 UI 优化 (#170)
- 聊天历史 API 返回
turn_active,重连客户端可 re-subscribe WebSocket 恢复流式输出 (#168, #157) - Workbench 与聊天 Dock 共用同一 terminal 会话;旧式硬切会话标题迁移为带省略号的裁剪标题 (#157)
- 局部
root_dir下 Linux bubblewrap execute jail(POST /api/filesystem/ensure-bwrap、仪表盘 root 目录树 mkdir/rename)(#167) - 虚拟工作区路径 I/O:host 绝对路径经
file://与BackendWorkspacefailback 对齐 (#167) - 高级设置「更新」页提供按安装方式升级说明与一键检查升级双栏布局;HTTPS 页优化签发状态与预检展示 (#143)
修复
- 401 会话过期时通过 React Router 跳转登录,避免整页 reload 导致 lazy chunk 白屏 (#169)
变更
make all先执行前后端format-all(Ruff + Prettier);pre-commit 在 format 后回写已暂存文件并构建 dashboard (#143)- harness runtime 诊断日志写入
~/.octop/logs(与octop.log并排),不再落到各 agent workspace 的logs/;行内带[agent=…] - 依赖
orcakit-harness-agent>=0.9.19、harness-gateway>=0.9.1(scoped root execute jail) - 企业微信客户群二维码与文档有效期更新至 2026-08-08 (#149)
[0.9.18] - 2026-08-02
新增
- 聊天 Dock 支持可关闭的文件列表 / 预览 / 浏览器标签页,以及 PR 风格路径树与路径去重;账户气泡与侧栏交互打磨 (#130)
- 内置示例插件(greeting / toolkit / turn-logger)与中英文插件说明文档
- 搜索设置页显性展示当前搜索源:未配置第三方服务时提示内置搜索,配置后展示实际服务 (#109)
修复
- 已停止或禁用的专家统一返回
AGENT_NOT_RUNNING(不再误报未找到);管理员 Token Usage 支持按用户筛选;聊天会话频道图标与创建用户角色选择优化 (#137) - 强化插件安装错误诊断与自定义 MCP 校验;网关流式错误支持本地化
- 聊天流式错误在界面可见;Token Usage / Memory 图表与空状态展示优化;弹层 Dock 几何与全屏行为修正
变更
- 设置、连接器、插件管理与管理用户等页面统一到共用仪表盘布局语言
- Docker / 安装文档中的国内加速镜像示例改为腾讯云镜像 (#116)
- 依赖抬升:
orcakit-harness-agent≥0.9.18、harness-memory≥0.9.5;对齐 Python 3.12 目标与依赖刷新 (#118)
[0.9.17] - 2026-07-31
新增
- 全局技能包:实例级可复用技能集合,支持挂载到专家、从 SkillHub 导入技能集,以及本地 ZIP / URL 导入技能
- 个性化页整合技能 / 子专家 / 频道 / MBTI / 记忆;技能包管理页支持移动端列表详情切换
- 搜索设置页显性展示当前搜索源:未配置第三方服务时提示使用内置搜索(免 API Key,不保证稳定),配置后展示实际使用的服务 (#109)
变更
- 技能相关域逻辑迁至
infra/skills/;数据库迁移合并为 schema v2(cron MCP + skill_packages 含图标)(#108) - 备份/恢复纳入
skill-packages/目录,恢复前清空避免残留 (#108) - 统一聊天生成中 / 滚动辅助逻辑;antd message 经 App.useApp 绑定,支持主题感知 toast (#119)
修复
- Memory 原始事件列表的时间戳按服务器时区展示,与其余 Memory 页保持一致 (#110)
修复
- 记忆提取 / 提升等 harness 内部辅助 LLM 默认跟随全局偏好模型(此前切换全局模型后仍回退到首个可用模型)(#110)
[0.9.16] - 2026-07-29
新增
- 统一自定义 / 预设 / 配置提供商弹窗的模型编辑流程,支持拉取 OpenAI 兼容远程模型列表,并仅在显式保存时落库 (#91)
- 支持从 LightClaw 迁移导入(备份快照与系统归档兼容,含外键约束处理)(#58)
修复
- 修复自定义提供商弹窗 TypeScript 错误(未使用导入 / 可选
input),恢复 release 构建 - 从 GitHub URL 导入技能时保留完整技能目录(含引用文件与脚本),并加固归档下载的分支名、文件数与体积限制 (#92)
- 浏览器配置不再对系统路径执行 chmod,改为使用共享目录
~/.octop/browser-profiles(#87) - 部署后静态资源哈希不匹配导致白屏时,自动软刷新一次并防止重载死循环 (#88)
- 修正网易邮箱 IMAP 主机解析,并在登录前发送 IMAP ID;同时加固 QQ / 网易 / Gmail 邮件主机预设与探测 (#89)
变更
- 最低依赖
orcakit-harness-agent提升至 ≥0.9.16 - README 补充中长期 Roadmap / 规划说明
- 新增可选
.githooks提交前检查(make install-hooks)
[0.9.15] - 2026-07-27
修复
- 加固聊天导航:切换专家时避免残留旧会话 URL,并稳定流式 Markdown 渲染
- 优化 Memory / Token Usage 页面布局,消除嵌套滚动并改善信息密度
- 补充企业微信客户群二维码相关文档说明
[0.9.14] - 2026-07-25
新增
- 控制平面支持 PostgreSQL 双后端(统一 DatabasePool、并行 PG 迁移、安装向导选择/绑定、pg_dump 备份;PostgreSQL 下记忆默认复用控制平面 DSN)(#60)
- SkillHub 改为走 HTTP API,支持来源中立的技能包安装与搜索 (#55)
- 远程浏览器/桌面支持真实拖拽(转发 CDP 指针事件),并共享推流连接中指示 (#50)
- 聊天界面布局与交互打磨:历史侧栏、消息队列、自动滚动与欢迎页等体验优化 (#66, #69, #70)
修复
- 修复 macOS/Linux 上 Agent 上下文历史写入主机根目录的问题:依赖 harness-agent≥0.9.12 将 deepagents artifacts 落到 Agent 工作区 (#57)
- Provider catalog 的
context_window映射为 harnessmax_input_tokens,修复 Auto/摘要阈值与 UI 上下文环按错误上限计算的问题 - 元宝扫码绑定后保存官方 API 与 WebSocket 地址,并升级网关至 0.8.7 以支持完整媒体收发 (#56)
- ChatGPT/Codex OAuth 改为 device code 流程,修复非 localhost 部署下授权失败 (#54)
- 技能 CLI 安装不再根据用户输入的 slug 推导路径,避免装错包 (#63)
- 删除会话时同步清理 harness checkpoint,避免「删除」后消息历史仍残留 (#60)
- 修正 PostgreSQL 记忆可移植导出的误导性 pg_dump 提示(共享 schema 下按 namespace 隔离,不可整库导出单 agent)(#60)
- 技能启用/禁用与 SkillHub 安装不再触发整机 Agent rebuild,避免切到技能列表时短暂「未找到 Agent」
- 修复聊天向上滚动加载更早消息失效,并在列表未溢出时提供可点击回退
- 工作区路径语义澄清(
from_workspace),并加固 Windows 下 file URL / 主机路径校验
变更
/compact改为在当前话题强制触发一次 Summarization(总结较早消息并 offload 到conversation_history/),不再新建线程;新建空话题请用/new/compact成功提示明确:聊天界面仍保留完整历史,压缩的是下一轮模型可见上下文- 文档与发布流程改为 develop 日常集成、先合入 main 再打 tag (#48)
[0.9.13] - 2026-07-23
新增
- SkillHub 改为走 HTTP API,支持来源中立的技能包安装与搜索 (#55)
- 远程浏览器/桌面支持真实拖拽(转发 CDP 指针事件),并共享推流连接中指示 (#50)
修复
- 修复 macOS/Linux 上 Agent 上下文历史写入主机根目录的问题:依赖 harness-agent≥0.9.12 将 deepagents artifacts 落到 Agent 工作区 (#49, #57)
- Provider catalog 的
context_window映射为 harnessmax_input_tokens,修复 Auto/摘要阈值与 UI 上下文环按错误上限(如 128k)计算的问题 - 修复取消聊天任务后再次提问会一直停留在思考状态的问题 (#42, #43)
- 技能启用/禁用与 SkillHub 安装不再触发整机 Agent rebuild,避免切到技能列表时短暂「未找到 Agent」
- 内置专家卡片标题与图标水平对齐
- SkillHub / 专家市场在 Python SSL 失败时给出可操作提示,并修正技能市场错误态「Retry」未本地化为「刷新」(#44, #46)
- 元宝扫码绑定后保存官方 API 与 WebSocket 地址,并升级网关至 0.8.7 以支持完整媒体收发 (#56)
- ChatGPT/Codex OAuth 改为 device code 流程,修复非 localhost 部署下授权失败 (#54)
- 远程桌面安装拒绝不支持的 EL10 环境 (#41)
- 聊天上下文占用图例在空会话时对齐 (#40)
- 修复聊天向上滚动加载更早消息失效,并在列表未溢出时提供可点击回退
- 工作区路径语义澄清(
from_workspace),并加固 Windows 下 file URL / 主机路径校验
变更
/compact改为在当前话题强制触发一次 Summarization(总结较早消息并 offload 到conversation_history/),不再新建线程;新建空话题请用/new/compact成功提示明确:聊天界面仍保留完整历史,压缩的是下一轮模型可见上下文- 文档与发布流程改为 develop 日常集成、先合入 main 再打 tag (#48)
[0.9.12] - 2026-07-21
新增
- 备份恢复后可在进程内同步 providers 并重载 agent;提供商变更后仅重载受影响的 agent
- 新增服务端时区 API(
default_timezone/GET /api/settings/timezone),控制台时间展示对齐服务端时区 - 记忆提炼支持为每个 agent 单独指定提取模型,并在整理记录中展示每次 extract_run 结果
修复
- 修复记忆提取模型无法 fallback 导致提炼失效的问题
- 修复语音输入 STT 回退处理
- 修复内部 MCP gateway 在事件循环上阻塞的问题
- 修复高级搜索探测接口缺失、表格分页卡在 10 条、新建会话图标提示,并加固安装脚本
- 改进 Notion OAuth HTTPS 错误提示
变更
- Memory 页签「全部」更名为「记忆沉淀」
[0.9.11] - 2026-07-19
新增
- 新增 SkillHub 专家市场:支持浏览、安装与管理专家,并完善安装安全校验与欢迎页快捷卡片体验
- 新增自定义 MCP 连接器管理,支持探测、工具缓存与连接器配置
[0.9.10] - 2026-07-18
新增
- 新增工作区文件预览与浏览器工作区支持,并完善相关工具链
- 新增聊天面板停靠式文件预览、HTML 预览与历史下拉刷新
修复
- 修复连接器 Notion OAuth 弹窗阻塞的问题 (#19)
变更
- 重构聊天界面,将浏览器面板与文件面板统一为 ChatDock
- 调整工作区路径透传逻辑,不再重写 BackendWorkspace 路径
- 将上下文使用统计委托给 harness-agent 0.9.10
移除
- 移除内置的临床医生专家 (#20)
[0.9.9] - 2026-07-16
新增
- 新增远程桌面安装与连接器探测能力增强 (#16)
[0.9.8] - 2026-07-15
新增
- 远程浏览器/远程桌面安装日志面板新增「复制日志」按钮,并在安装失败时提示可将日志交给 Octop 协助排查
- 新增前端
copyText工具,在非安全上下文(如 plain-http 管理页)下通过临时 textarea + execCommand 回退,保证剪贴板复制可用 - 桌面安装脚本新增
A-F4(关闭窗口)与C-A-D(显示桌面)openbox 快捷键,对应桌面快捷键
修复
- 修复桌面安装脚本的 Python 构建依赖检测:改用 venv Python(而非系统
python3)解析pythonX.Y-dev,避免 evdev 编译时找不到Python.h;setup.py安装构建依赖时显式传入--python指向当前 venv Python - 修复连接器类型漂移导致聊天弹窗 logo 解析失败的问题
变更
- Docker 构建与
make build-frontend的NODE_OPTIONS --max-old-space-size由 4096 调低为 2048,降低构建内存占用 - 新增
docker-publish.yml工作流,构建并推送镜像到 Docker Hub - 移除
release.yml中多余的id-token: write权限 - 删除已与现行 Docker Hub 发版流程脱节的离线部署脚本
docker_deploy.sh,并清理docker/README.md、README_CN.md中的相关章节 - 修正
docker/README.md标题笔误(ODocker→Octop)
[0.9.7] - 2026-07-14
新增
- 新增多款连接器网关适配器:百度地图、携程问道、飞猪、美团旅游助手、QQ 音乐、元典 (#14)
- 重构连接器网关目录与注册机制,支持更灵活的连接器安装 (#14)
修复
- 修复 Linux 远程桌面安装脚本在 EL7(TigerVNC 1.8)下的兼容性,避免 xfdesktop 阻塞安装
[0.9.6] - 2026-07-13
新增
- 新增远程桌面(Remote Desktop)功能,支持跨 Linux、Windows、macOS 的桌面串流 (#7)
修复
- 从 .dockerignore 中移除 uv.lock,修正 Docker 构建无法 COPY 锁文件的问题 (#9)
- 修复远程桌面、浏览器、终端及安装向导的本地化(i18n)问题 (#11)
[0.9.5] - 2026-07-12
新增
- 新增 Linux、Windows、macOS 三端的远程桌面串流能力
- 完善远程桌面的安装/卸载交互,并打包 Linux 端安装脚本
修复
- 修复 Windows 与 Linux CI 下桌面配置/捕获/输入相关单测与 mypy 报错
- 修复 Mac 端远程桌面安装时误导性的提示文案
- 加固桌面安装 SSE 流式推送并清理 dashboard 端 lint 问题
[0.9.4] - 2026-07-11
新增
- 新增 agent backend 的主机 root_dir 浏览器与权限探测能力
- 改进聊天流式滚动行为与思考计时器
修复
- 修复 Windows 下 sqlite 路径测试、媒体路径与 POSIX 专属测试导致的 CI 失败
- 修复 Windows 测试收集问题(惰性导入 pwd 模块)
- 修复 harness-memory Bridge 导入路径
- 修复 CI 流水线并让测试套件通过,项目重命名为 Octop
变更
- Windows 兼容:默认 agent backend 限定到 workspace,并集中 POSIX 专属 stdlib 调用以适配 Windows mypy CI
[0.9.1] - 2026-07-08
新增
- 远程浏览器控制页面与浏览器 AI 面板,支持远程浏览器自动化操作
- 附件下载的
Content-Disposition头(RFC 5987,兼容非 ASCII 文件名) - 前端 UI 语言偏好持久化(自动检测浏览器语言并记忆)
- 专家目录欢迎语(默认欢迎内容 / 工作区清单读取 / 专家目录播种)
- 附件相关国际化域(
i18n/domains/attachment.py) - 聊天欢迎语支持
变更
- 重构聊天附件与上传处理链路,精简接口与实现
- 重构网关媒体层:附件提示、入站存储、工具媒体展示重写
- 重构 harness 请求构造与消息处理器
- 调整上下文拆分、专家目录、provider 存储与 agent 管理器
- 重构前端聊天界面:输入框、消息气泡、工具媒体条、上下文窗口环等组件大量更新
- 更新登录、初始化向导、终端 AI 面板等前端页面
修复
- 修复附件路径解析与内容分发相关问题
移除
- 移除模型配置提示弹窗、旧聊天流模块、slash 上下文与附件签名测试