Skip to content

Commit 5eb54cf

Browse files
chore: release 0.9.12 (#37)
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
1 parent 2780152 commit 5eb54cf

10 files changed

Lines changed: 45 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,23 @@
66

77
## [Unreleased]
88

9+
## [0.9.12] - 2026-07-21
10+
11+
### 新增
12+
- 备份恢复后可在进程内同步 providers 并重载 agent;提供商变更后仅重载受影响的 agent
13+
- 新增服务端时区 API(`default_timezone` / `GET /api/settings/timezone`),控制台时间展示对齐服务端时区
14+
- 记忆提炼支持为每个 agent 单独指定提取模型,并在整理记录中展示每次 extract_run 结果
15+
16+
### 修复
17+
- 修复记忆提取模型无法 fallback 导致提炼失效的问题
18+
- 修复语音输入 STT 回退处理
19+
- 修复内部 MCP gateway 在事件循环上阻塞的问题
20+
- 修复高级搜索探测接口缺失、表格分页卡在 10 条、新建会话图标提示,并加固安装脚本
21+
- 改进 Notion OAuth HTTPS 错误提示
22+
23+
### 变更
24+
- Memory 页签「全部」更名为「记忆沉淀」
25+
926
## [0.9.11] - 2026-07-19
1027

1128
### 新增

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<p align="center">
1010
<a href="https://www.python.org/downloads/"><img alt="Python 3.11+" src="https://img.shields.io/badge/python-3.11%2B-blue?logo=python&logoColor=white" /></a>
1111
<a href="https://github.com/TencentCloud/Octop/blob/main/LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-green" /></a>
12-
<a href="https://github.com/TencentCloud/Octop/releases"><img alt="Version" src="https://img.shields.io/badge/version-0.9.11-orange" /></a>
12+
<a href="https://github.com/TencentCloud/Octop/releases"><img alt="Version" src="https://img.shields.io/badge/version-0.9.12-orange" /></a>
1313
<a href="https://pypi.org/project/octop/"><img src="https://img.shields.io/pypi/v/octop" alt="PyPI" /></a>
1414
<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>
1515
<a href="https://github.com/TencentCloud/Octop"><img alt="GitHub stars" src="https://img.shields.io/github/stars/TencentCloud/Octop?style=social" /></a>

dashboard/src/locales/en.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -850,16 +850,6 @@
850850
"rankingsEmpty": "No skills in this ranking yet",
851851
"agentSkillsLib": "{{agent}}'s skills library (/skills/<name>/SKILL.md)",
852852
"noAgentSelected": "Pick an agent in the top switcher first",
853-
"tabs": {
854-
"overview": "Overview",
855-
"profile": "Profile",
856-
"library": "Memory tree",
857-
"episodes": "Emotional journal",
858-
"candidates": "All",
859-
"journal": "Activity",
860-
"proactive": "Proactive care",
861-
"settings": "Settings"
862-
},
863853
"noSkills": "No skills yet",
864854
"noSkillsDesc": "Create a custom skill — the agent will use it at the right moment.",
865855
"totalCount": "{{count}} skill(s)",
@@ -2068,6 +2058,16 @@
20682058
"deleteSuccess": "Memory deleted successfully",
20692059
"deleteFailed": "Failed to delete memory",
20702060
"noAgentSelected": "Pick an agent in the top switcher first",
2061+
"tabs": {
2062+
"overview": "Overview",
2063+
"profile": "Profile",
2064+
"library": "Memory tree",
2065+
"episodes": "Emotional journal",
2066+
"candidates": "Memory distillation",
2067+
"journal": "Activity",
2068+
"proactive": "Proactive care",
2069+
"settings": "Settings"
2070+
},
20712071
"vs": {
20722072
"title": "Semantic Search",
20732073
"description": "When enabled, memory search understands meaning (not just keywords), helping the AI find more relevant memories.",

dashboard/src/locales/zh.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2056,7 +2056,7 @@
20562056
"profile": "用户画像",
20572057
"library": "记忆树",
20582058
"episodes": "情绪日记",
2059-
"candidates": "全部",
2059+
"candidates": "记忆沉淀",
20602060
"journal": "整理记录",
20612061
"proactive": "主动关心",
20622062
"settings": "设置"

dashboard/src/pages/Agent/Memory/JournalList.test.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,7 @@ describe("<JournalList />", () => {
112112
expect(
113113
screen.getByText("处理 4 段对话,生成 2 条草稿,晋升 2 条记忆"),
114114
).toBeInTheDocument();
115-
expect(
116-
screen.getByText("扫描 4 段对话,无新增内容"),
117-
).toBeInTheDocument();
115+
expect(screen.getByText("扫描 4 段对话,无新增内容")).toBeInTheDocument();
118116
});
119117

120118
it("renders empty state on no entries", async () => {

dashboard/src/pages/Agent/Memory/RawEventsList.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,17 @@ import MemoryPipelineEmpty from "./shared/MemoryPipelineEmpty";
2323

2424
const PAGE_SIZE = 20;
2525

26-
const EVENT_TYPE_OPTIONS: { value: string; labelKey: string; fallback: string }[] = [
26+
const EVENT_TYPE_OPTIONS: {
27+
value: string;
28+
labelKey: string;
29+
fallback: string;
30+
}[] = [
2731
{ value: "", labelKey: "memory.raw.typeAll", fallback: "全部类型" },
28-
{ value: "user_message", labelKey: "memory.raw.typeUser", fallback: "用户消息" },
32+
{
33+
value: "user_message",
34+
labelKey: "memory.raw.typeUser",
35+
fallback: "用户消息",
36+
},
2937
{
3038
value: "assistant_message",
3139
labelKey: "memory.raw.typeAssistant",

dashboard/src/pages/Agent/Memory/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ const TABS: TabDef[] = [
5959
{
6060
key: "candidates",
6161
labelKey: "memory.tabs.candidates",
62-
fallback: "全部",
62+
fallback: "记忆沉淀",
6363
showPendingBadge: true,
6464
},
6565
{ key: "journal", labelKey: "memory.tabs.journal", fallback: "整理记录" },

dashboard/src/pages/Agent/Memory/shared/MemoryLayerView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,12 @@ export default function MemoryLayerView<T>(props: MemoryLayerViewProps<T>) {
9191
{loading && items.length === 0 ? (
9292
<Skeleton active />
9393
) : items.length === 0 ? (
94-
(emptyContent ?? (
94+
emptyContent ?? (
9595
<Empty
9696
image={Empty.PRESENTED_IMAGE_SIMPLE}
9797
description={emptyText ?? undefined}
9898
/>
99-
))
99+
)
100100
) : (
101101
<ul style={listStyle}>
102102
{items.map((it) => (

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "octop"
7-
version = "0.9.11"
7+
version = "0.9.12"
88
description = "Smarter self-hosted AI assistant for multiple users and agents, built on harness-agent"
99
readme = "README.md"
1010
license = { text = "MIT" }

src/octop/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
from __future__ import annotations
44

5-
__version__ = "0.9.11"
5+
__version__ = "0.9.12"

0 commit comments

Comments
 (0)