mirror of
https://github.com/TencentCloud/Octop.git
synced 2026-10-02 07:34:38 +08:00
+14
-37
@@ -6,51 +6,28 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.9.33] - 2026-09-11
|
||||
|
||||
### 新增
|
||||
|
||||
- 知识库支持下载上传原文;PDF / DOCX / PPTX / XLSX 在预览弹窗中按原排版查看;文档区支持拖拽上传(#591)
|
||||
- 知识库 / 工作区 PDF 预览改用 PDF.js(react-pdf),替代浏览器内置 iframe 查看器
|
||||
- 知识库文档预览打磨:Markdown 大纲与文内查找、上下篇切换、全屏;PDF 窗口化渲染、书签/缩放/适合宽高、分阶段加载与下载进度;Excel 嵌入图改为图集;Office 大文件下载进度
|
||||
- 聊天知识库引用来源在对话右侧 dock 中预览(与「编辑了文件」同一面板);悬停显示文件与知识库信息,并可跳转知识库定位打开(#634)
|
||||
- 技能包支持将选定技能一次性复制到专家工作区,工作区技能也可推送到当前用户有写权限的技能包(#618)。
|
||||
- 记忆树支持手动新建主题/记忆,以及编辑已有记忆(replace/supersede,保留变更历史)。
|
||||
- Token 统计支持日期范围筛选(RangePicker 预设 + 自定义起止)并导出 Excel 用量明细(#154)
|
||||
- Token 用量 Excel 含专家名称、中英列表头,以及按天/专家/模型汇总 sheet 与图表
|
||||
- Token 用量 Excel 按报表规范打磨:冻结表头、千分位、合计公式行、筛选与仪表盘配色柱图
|
||||
- 知识库卡片「更多」菜单可一键添加到当前会话
|
||||
- 知识库支持下载原文、按原排版预览,聊天内可直接预览引用
|
||||
- 技能可在技能包与专家工作区之间复制
|
||||
- 记忆树支持手动新建与修正;Token 统计支持日期筛选与 Excel 导出
|
||||
- 按用户限制存储根目录与 Token 配额;创建专家可带默认知识库与连接器
|
||||
- 聊天支持 @ 子专家、技能斜杠插入,以及 ask_agent 独立对话线程
|
||||
- 滴滴连接器;可选分段历史归档;便携运行时升级并支持 SQLite 备份
|
||||
|
||||
### 修复
|
||||
|
||||
- OpenCode Go:发往 `opencode.ai/zen/go` 的聊天请求通过 harness `session_header` 携带当前对话 `thread_id` 作为 `x-opencode-session`,修复模型调用报 `400 MissingSessionID`。连接测试与模型列表使用一次性 UUID。用户手动配置的同名请求头优先。需要 `orcakit-harness-agent>=1.0.7`。
|
||||
- harness 进程日志目录改为传给 `HarnessAgentManager(log_dir=…)`(`HarnessAgentConfig.log_dir` 在 1.0.7 已是丢弃的 InitVar),避免诊断日志落到 `~/.harness-agent/logs`。
|
||||
- `octop service start` / `restart` 通过 systemd drop-in 设置 `LimitNOFILE`(系统服务 65535;用户服务不超过当前 hard rlimit),不改写已有 unit。`restart` 在 drop-in 失败时仍会 `systemctl restart`,保证升级后能起来。
|
||||
- 记忆树详情接入 `user_edit` lineage,人工修正后显示“人工修正的记忆”、修正前内容和原始来源上下文。
|
||||
- 共享专家的技能列表现在会在聊天输入框中加载,非所有者可查看并选择专家已配置的技能
|
||||
- 知识库文本文档编辑抽屉在「编辑」模式下点「保存」无响应(`name`/`format` 字段未挂载时 `validateFields` 缺值导致抛错被吞掉;#592)
|
||||
- 知识库文本文档编辑内容未改时点「保存」只关闭抽屉,不触发更新与重建索引
|
||||
- 版本升级界面的检查失败提示支持中英本地化:`/update/status` 与 `/update/check` 增加 `error_code` 字段(`pypi_unreachable`),界面按语言展示可读文案;版本信息来自镜像时显示来源提示;`octop update` 失败提示补充网络/代理排查建议
|
||||
- SQLite 历史回填为 checkpoint 内容引用创建绑定只读连接的独立解码器和缓存,并在同一读事务内读取,避免访问运行中的 saver 连接;兼容原有 inline 格式。新格式需要配套安装提供 `CheckpointSerializer.with_connection` 的 harness-memory。PostgreSQL 保持原生 graph 历史读取路径。
|
||||
- 共享连接器卡片标题被「来自 X」标签挤压截断看不清:标签移至标题下方独立一行;连接器实例与内置目录卡片的长标题截断后悬停均可显示完整标题(#626)
|
||||
- 暗色模式下 Tooltip 背景近乎透明、文字与页面内容叠印无法阅读(#626)
|
||||
- 下载 Agent 工作区 zip(`GET /agents/{id}/workspace/archive`)时,backend `root_dir` 下的同名文件(如用户主目录的 `AGENTS.md`)会顶替 workspace 自身的同名文件:条目名与包结构都正确、只有内容错误,zip 校验和无法察觉。现在按 workspace 目录读取,并把越出 workspace 的条目跳过不入包(含仍保留 legacy 根 `skills/` 的工作区)。
|
||||
- 工作区 zip 的 `replace` 导入会删除隐藏的系统状态(`.octop` 下的会话 / 技能 / 认证),而导出不包含隐藏项、导入无法恢复,造成静默数据丢失;现在清空本地工作区时保留隐藏项。
|
||||
- 工作区 zip 导出不再被 backend 根目录同名文件顶替;导入时保留隐藏系统状态
|
||||
- 知识库文本文档编辑保存生效;共享专家技能可在聊天中使用
|
||||
- 斜杠命令刷新后仍可见;新会话标题即时更新
|
||||
- 升级检查失败提示本地化;OpenCode Go 请求携带会话 ID
|
||||
|
||||
### 变更
|
||||
|
||||
- 聊天输入框点 skill 改为插入行首 ``/slug``(与斜杠菜单同一套),不再通过 ``skills`` 白名单过滤本轮技能。``@`` 菜单不再列出 skill。
|
||||
- 启动专家时把 workspace ``manifest.json`` 的指引卡片写入 harness metadata;之后每次 ``list_peers`` / ``agent_list`` / ``@`` 注入会再读一遍,编辑页面改卡片后无需重启。
|
||||
- ``ask_agent`` 在对方专家留下正常对话:用调用方 ``session_key`` 换 agent 前缀、用调用方 ``thread_id~对方id`` 作为稳定 thread,写入 ``threads`` / 历史投影,不走 gateway 进线、不抢对方当前绑定会话。
|
||||
- 新格式历史改为事件内容提交成功后才转发,移除 200ms 写入限频;只更新变化的消息并复用长文本块,写入失败停止转发该内容。
|
||||
- 聊天运行轨迹采用宽抽屉时间线,并从 harness 实况汇聚回合上下文。
|
||||
- 依赖 `harness-gateway>=0.9.6`(飞书话题回复落在原话题,并以 `thread_id` 作为会话标识)
|
||||
|
||||
### 新增
|
||||
|
||||
- 可选的分段历史归档:旧会话的新回合可切换至独立 SQLite,正文在消息与轨迹之间共享;兼容读取、游标分页、失败重试及关闭开关回退均保留旧记录,不执行旧数据迁移或 checkpoint 清理。参见 `docs/versioned-history.md`。
|
||||
|
||||
### 变更
|
||||
|
||||
- 技能包与知识库的创建/编辑改为右侧抽屉;编辑/删除收入左侧列表卡片的「更多」菜单
|
||||
- 聊天点技能改为插入 `/slug`;创建定时任务必须填写名称
|
||||
- 依赖 harness-gateway ≥ 0.9.6、orcakit-harness-agent ≥ 1.0.8
|
||||
|
||||
## [0.9.32] - 2026-09-06
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<p align="center">
|
||||
<a href="https://www.python.org/downloads/"><img alt="Python 3.12+" src="https://img.shields.io/badge/python-3.12%2B-blue?logo=python&logoColor=white" /></a>
|
||||
<a href="https://github.com/TencentCloud/Octop/blob/main/LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-green" /></a>
|
||||
<a href="https://github.com/TencentCloud/Octop/releases"><img alt="Version" src="https://img.shields.io/badge/version-0.9.32-orange" /></a>
|
||||
<a href="https://github.com/TencentCloud/Octop/releases"><img alt="Version" src="https://img.shields.io/badge/version-0.9.33-orange" /></a>
|
||||
<a href="https://pypi.org/project/octop/"><img src="https://img.shields.io/pypi/v/octop" alt="PyPI" /></a>
|
||||
<a href="https://github.com/astral-sh/ruff"><img alt="Code Style: Ruff" src="https://img.shields.io/badge/code%20style-ruff-000000?logo=ruff&logoColor=white" /></a>
|
||||
<a href="https://github.com/TencentCloud/Octop"><img alt="GitHub stars" src="https://img.shields.io/github/stars/TencentCloud/Octop?style=social" /></a>
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
||||
|
||||
[project]
|
||||
name = "octop"
|
||||
version = "0.9.32"
|
||||
version = "0.9.33"
|
||||
description = "Smarter self-hosted AI assistant for multiple users and agents, built on harness-agent"
|
||||
readme = "README.md"
|
||||
license = { text = "MIT" }
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
__version__ = "0.9.32"
|
||||
__version__ = "0.9.33"
|
||||
|
||||
Reference in New Issue
Block a user