Skip to content

Commit 2e53b79

Browse files
committed
add 1.10.2 release notes
1 parent c676804 commit 2e53b79

File tree

8 files changed

+211
-21
lines changed

8 files changed

+211
-21
lines changed

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ Sdcb Chats 是一个强大且灵活的大语言模型前端,支持 21+ 主流
1717

1818
<img alt="chats" src="https://github.com/user-attachments/assets/106ece3f-d94d-460e-9313-4a01f624a647" />
1919

20-
## 🆕 最新版本(1.10.1
20+
## 🆕 最新版本(1.10.2
2121

22-
- 📅 发布日期:2026-02-15
23-
- 🐳 沙箱管理器增强:环境变量管理、会话信息卡片、文件管理与编辑体验升级
24-
- ⚡ 性能改进:高频接口支持服务端 ETag 缓存与 304,移除前端聊天列表本地缓存
25-
- 🗺️ 交互优化:新增 ChatMiniMap 导航,滚动控制从输入框迁移
26-
- 🔐 安全与可用性:API Key 创建后一次性展示完整 Key,列表默认脱敏
27-
- 📦 Code Interpreter 镜像流水线升级:支持构建运行号标识、预装 ripgrep、非 main 分支发布 latest manifest
22+
- 📅 发布日期:2026-03-10
23+
- 🔍 Request Trace:新增入站/出站 HTTP 请求全链路追踪,记录关键时间点、状态码、异常和正文与原始数据
24+
- 🧑‍💼 管理后台:新增请求跟踪工作台,支持筛选、详情查看、原始下载、双记录对比、Excel 导出和按筛选删除
25+
- ⚙️ 采集治理:支持采样率、include/exclude 规则、URL 参数脱敏、保留周期和热刷新
26+
- ♻️ 生命周期管理:新增队列容量保护与定时自动清理,降低持续采集对业务链路的干扰
27+
- 🛠️ 其它改进:统计卡片按时间范围统计,长用户消息支持折叠,Anthropic 协议兼容性继续改进
2828

29-
👉 [查看 1.10.1 发布说明](./doc/zh-CN/release-notes/1.10.1.md) · [查看全部版本](./doc/zh-CN/release-notes/README.md)
29+
👉 [查看 1.10.2 发布说明](./doc/zh-CN/release-notes/1.10.2.md) · [查看全部版本](./doc/zh-CN/release-notes/README.md)
3030

3131
## 快速开始
3232

README_EN.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ Sdcb Chats is a powerful and flexible frontend for large language models, suppor
1717

1818
<img alt="chats-en" src="https://github.com/user-attachments/assets/40d2376e-58a0-4309-a2f5-5ed8262a0c2e" />
1919

20-
## 🆕 Latest Release (1.10.1)
20+
## 🆕 Latest Release (1.10.2)
2121

22-
- 📅 Release Date: 2026-02-15
23-
- 🐳 Sandbox Manager upgrades: environment variable management, richer session info, improved file manager and editor flows
24-
- ⚡ Performance: high-frequency APIs now use server-side ETag caching with 304 handling; frontend chat list local cache removed
25-
- 🗺️ UX: new ChatMiniMap navigation and scroll controls moved out of ChatInput
26-
- 🔐 Security & usability: API keys show full value once at creation and stay masked in list views
27-
- 📦 Code Interpreter image pipeline updates: run-version marker, preinstalled ripgrep, and latest manifest publishing on non-main branches
22+
- 📅 Release Date: 2026-03-10
23+
- 🔍 Request Trace: adds end-to-end inbound and outbound HTTP tracing with timing points, status codes, errors, body capture, and raw payload storage
24+
- 🧑‍💼 Admin workspace: adds a dedicated request trace page with filtering, details, raw downloads, compare view, Excel export, and bulk delete by filters
25+
- ⚙️ Trace governance: adds sampling, include/exclude rules, URL parameter redaction, retention policies, and hot-refreshable configuration
26+
- ♻️ Lifecycle management: adds bounded queue protection and scheduled cleanup to reduce long-running trace pressure
27+
- 🛠️ Other improvements: dashboard summary cards now follow the selected time range, long user messages can collapse, and Anthropic compatibility is improved further
2828

29-
👉 [View 1.10.1 Release Notes](./doc/en-US/release-notes/1.10.1.md) · [View All Releases](./doc/en-US/release-notes/README.md)
29+
👉 [View 1.10.2 Release Notes](./doc/en-US/release-notes/1.10.2.md) · [View All Releases](./doc/en-US/release-notes/README.md)
3030

3131
## Quick Start
3232

doc/en-US/release-notes/1.10.2.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<!-- Language: en-US -->
2+
<p><a href="./README.md">📋 All Versions</a> <span style="float:right"><b>English</b> | <a href="../../zh-CN/release-notes/1.10.2.md">简体中文</a></span></p>
3+
4+
# Chats 1.10.2 Release Notes
5+
6+
> Release Date: 2026-03-10 (47 commits since main)
7+
8+
1.10.2 is an observability-focused release centered on **Request Trace**. It introduces **inbound and outbound HTTP request tracing**, a new **admin request trace workspace**, and **configurable sampling, filtering, redaction, and retention policies**, together with export, compare, bulk delete, and scheduled cleanup support. It also includes a small set of admin dashboard, message UX, and Anthropic compatibility improvements.
9+
10+
## 🎯 Core Features
11+
12+
### 1) Request Trace: end-to-end inbound and outbound HTTP tracing
13+
14+
- 🔍 **Two-way capture**: adds `InboundRequestTraceMiddleware` and `OutboundRequestTraceHandler` to trace both inbound user requests and outbound service-to-service HTTP calls.
15+
- 🧭 **Trace metadata**: records `TraceId`, user, source, HTTP method, full URL, status code, error type, and key timestamps for request start, request body completion, response header completion, and response body completion.
16+
- 📦 **Body and raw payload capture**: stores request/response headers, text bodies, raw binary payloads, and body length statistics for troubleshooting encoding, compression, and gateway passthrough issues.
17+
- 🔗 **Broader backend coverage**: request tracing is wired into multiple outbound HTTP call paths, making it easier to correlate upstream requests with downstream dependency behavior.
18+
19+
### 2) New admin request trace workspace
20+
21+
- 🧑‍💼 **Dedicated admin page**: adds `/admin/request-trace` to the admin navigation for centralized trace inspection.
22+
- 🔎 **Advanced filtering**: supports filtering by time range, URL, TraceId, username, and direction, with query state preserved in the URL for refresh and sharing.
23+
- 🧱 **24 selectable columns**: allows per-scenario column selection and persists visible columns in URL query parameters.
24+
- 👀 **Details and downloads**: each trace supports full request/response header and body inspection, `.dump` export, and raw request/response binary downloads, with explicit guidance when the response body is binary-only.
25+
- 🆚 **Two-trace compare**: supports side-by-side comparison for two selected traces, with an option to hide identical fields.
26+
- 📤 **Export and cleanup**: supports Excel export for the current filter set (up to 10000 rows) and bulk deletion by current filters.
27+
28+
### 3) Configurable capture rules, redaction, and retention
29+
30+
- ⚙️ **Independent inbound/outbound config**: inbound and outbound tracing can be enabled and tuned separately for sample rate, minimum duration, header/body capture, and retention days.
31+
- 🎯 **Include/exclude filters**: supports include and exclude rules by source, URL patterns, HTTP methods, and status codes, with quick presets for common gateway scenarios.
32+
- 🕶️ **Redaction improvements**: adds configurable URL parameter redaction and improves default redaction ordering to reduce the risk of sensitive values being stored.
33+
- ♻️ **Hot refresh**: trace configuration is stored in the database config table and refreshed by a background service without requiring a restart.
34+
35+
## 🏗️ Architecture & Engineering
36+
37+
### 1) Persistence and lifecycle management
38+
39+
- 🗄️ **Two-table storage model**: adds `RequestTrace` and `RequestTracePayload`, separating metadata from large payload content and keeping them consistent through cascading delete.
40+
- 📇 **Indexes and scheduled cleanup**: adds indexes on `StartedAt`, `UserId`, `TraceId`, and `ScheduledDeleteAt`; scheduled cleanup runs every 30 minutes to remove expired traces.
41+
- 🚦 **Queue protection**: adds `RequestTraceQueue:Capacity` and uses a bounded in-memory queue with `DropWrite` behavior to protect the main request path under pressure.
42+
- 🧵 **Async persistence**: tracing persistence is queue-based and asynchronous, reducing synchronous I/O pressure while keeping multi-stage timing and exception capture intact.
43+
44+
### 2) Stability refinements for the tracing pipeline
45+
46+
- 🧪 **Edge-case test coverage**: adds unit tests for `CaptureStreams`, `ObservedHttpContent`, `RequestTraceHelper`, `RequestTracePersistService`, and `RequestTraceQueue`.
47+
- 🛡️ **Stability fixes**: fixes missing 401 inbound traces, empty-pattern matching, details dialog overflow, redundant payload deletion, and binary/JSON presentation issues.
48+
- 🧰 **Config capacity**: expands `Config.Value` to `NVARCHAR(MAX)` so larger JSON trace configs can be stored safely.
49+
50+
## 🎨 Other Improvements
51+
52+
### Admin dashboard and message UX
53+
54+
- 📊 **Dashboard summary cards**: admin summary cards now compute chat count and active users based on the currently selected time range.
55+
- ✂️ **User message collapse**: long user messages can now collapse inside the message bubble with an approximately 5.5-line preview.
56+
- 🧠 **Thinking display refinement**: removes the fixed max-height cap from `ThinkingMessage` expansion so long reasoning content behaves more naturally.
57+
58+
### Protocol compatibility and dependency updates
59+
60+
- 🔧 **Anthropic compatibility fixes**: fixes lost tool results during Anthropic message conversion (#122) and improves thinking signature compatibility for the DeepSeek Anthropic protocol path.
61+
- 🔤 **Readable MCP JSON**: preserves readable Unicode when fetching MCP tool input schemas instead of over-escaping JSON.
62+
- ⬆️ **Frontend dependency update**: upgrades the frontend to `Next.js 16.1.6` and aligns related browser compatibility dependencies.
63+
64+
## 🐛 Stability Fixes
65+
66+
- Fixes Request Trace default redaction ordering and field ordering issues.
67+
- Fixes request/response capture timing so traces can start earlier and body capture becomes more complete.
68+
- Fixes scrolling and overflow behavior in the Request Trace details dialog for long headers and long bodies.
69+
- Simplifies the include/exclude rule organization in the trace config dialog to reduce configuration friction.
70+
71+
## ⬆️ Upgrade Notes
72+
73+
- Run DB migration: `src/scripts/db-migration/1.10/1.10.2.sql`
74+
- Adds the `RequestTrace` main table and the `RequestTracePayload` payload table
75+
- Adds indexes for `StartedAt`, `UserId`, `TraceId`, and `ScheduledDeleteAt`
76+
- Expands `Config.Value` to `NVARCHAR(MAX)` to support larger JSON configuration payloads
77+
- New config keys:
78+
- `RequestTraceQueue:Capacity`: controls the in-memory request trace queue capacity, default `1000`
79+
- `RequestTraceCleanup:Enabled`: controls scheduled auto-cleanup, default `true`
80+
- Upgrading does not automatically enable Request Trace for all traffic; the actual capture scope still depends on the inbound/outbound tracing rules, sample rate, and retention policy configured by the admin.
81+
- If you plan to enable request tracing in a high-concurrency environment, set sample rate, URL filters, and retention days first to avoid unnecessary database write and storage pressure.

doc/en-US/release-notes/README.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,21 @@ This page indexes all major version release notes for the Chats project, from th
77

88
---
99

10-
## [1.10.1](1.10.1.md) - 2026-02-15 ⭐ Latest Release
10+
## [1.10.2](1.10.2.md) - 2026-03-10 ⭐ Latest Release
11+
12+
**Core Highlights**: Request Trace end-to-end tracing · Admin request trace workspace · Sampling/filtering/redaction/retention policies · Export, compare, and scheduled cleanup · Small UX and compatibility improvements
13+
14+
- 🔍 **Request Trace**: adds inbound and outbound HTTP request tracing with timing points, status codes, errors, body capture, and raw payload downloads
15+
- 🧑‍💼 **Admin Workspace**: adds a dedicated request trace page with filters, 24-column customization, details, raw downloads, two-trace compare, Excel export, and bulk delete by filters
16+
- ⚙️ **Trace Governance**: supports separate inbound/outbound settings, sample rate, include/exclude filters, URL parameter redaction, and retention policies
17+
- ♻️ **Lifecycle Management**: adds bounded queue protection and scheduled cleanup to reduce long-running trace storage pressure
18+
- 🛠️ **Other Improvements**: updates dashboard summary card metrics, adds long user message collapse, and improves Anthropic protocol compatibility
19+
20+
[View Full Release Notes →](1.10.2.md)
21+
22+
---
23+
24+
## [1.10.1](1.10.1.md) - 2026-02-15
1125

1226
**Core Highlights**: Sandbox Manager Enhancements · Server-side ETag Caching · ChatMiniMap Navigation · API Key Management Upgrades · Code Interpreter Image Pipeline Updates
1327

doc/zh-CN/release-notes/1.10.2.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<!-- Language: zh-CN -->
2+
<p><a href="./README.md">📋 所有版本</a> <span style="float:right"><a href="../../en-US/release-notes/1.10.2.md">English</a> | <b>简体中文</b></span></p>
3+
4+
# Chats 1.10.2 发布说明
5+
6+
> 发布日期:2026-03-10(相对 main 以来 47 次提交)
7+
8+
1.10.2 是一次以 **Request Trace(请求跟踪)** 为核心的可观测性增强版本。新版本新增 **入站/出站 HTTP 请求追踪****管理员请求跟踪工作台****可配置的采样/过滤/脱敏/保留策略**,并补齐导出、对比、批量删除与自动清理能力。除此之外,还包含少量管理后台统计、消息展示和 Anthropic 协议兼容性改进。
9+
10+
## 🎯 核心功能
11+
12+
### 1) Request Trace:入站/出站 HTTP 请求全链路追踪
13+
14+
- 🔍 **双向采集**:新增 `InboundRequestTraceMiddleware``OutboundRequestTraceHandler`,同时记录用户进入服务的入站请求和服务调用外部依赖的出站请求。
15+
- 🧭 **链路信息**:记录 `TraceId`、用户、来源、HTTP 方法、完整 URL、状态码、异常类型,以及请求开始、请求体完成、响应头完成、响应体完成等关键时间点,便于定位慢请求和异常链路。
16+
- 📦 **正文与原始数据**:同时保存请求/响应头、文本正文和原始二进制数据,并补充请求体/响应体长度统计,适合排查编码、压缩和网关透传问题。
17+
- 🔗 **后端接入范围**:请求跟踪已接入多处出站 HTTP 调用场景,便于把用户请求与下游依赖串到同一条排障链路里。
18+
19+
### 2) 管理后台新增“请求跟踪”工作台
20+
21+
- 🧑‍💼 **独立管理页**:管理员后台新增 `/admin/request-trace` 页面,并加入侧边导航,方便集中查看最近请求记录。
22+
- 🔎 **高级筛选**:支持按时间范围、URL、TraceId、用户名和方向(入站/出站)查询,请求列表和筛选条件可直接通过 URL 分享或刷新恢复。
23+
- 🧱 **24 列可选视图**:支持自定义显示列,并把列配置持久化到 URL 查询参数,方便不同排障场景快速切换视图。
24+
- 👀 **详情与下载**:单条请求支持查看完整请求/响应头体,并提供 `.dump` 下载和请求/响应原始二进制下载;遇到二进制响应时会明确提示改用 raw 下载。
25+
- 🆚 **双记录对比**:支持选中两条 trace 并排对比,并可隐藏相同字段,更适合比较两次请求为何返回不同结果。
26+
- 📤 **导出与清理**:支持按当前筛选条件导出 Excel(最多 10000 行),也支持按当前筛选批量删除历史 trace。
27+
28+
### 3) 采集策略、脱敏与保留周期可配置
29+
30+
- ⚙️ **独立配置**:入站和出站请求跟踪分开配置,可分别控制是否启用、采样率、最小时长、请求头/正文采集和数据保留天数。
31+
- 🎯 **包含/排除规则**:支持按来源、URL 模式、HTTP 方法和状态码设置 include/exclude 规则,并提供常见网关/接口的快速预设。
32+
- 🕶️ **脱敏增强**:新增可配置 URL 参数脱敏规则,并改进默认脱敏顺序,减少敏感信息误入库风险。
33+
- ♻️ **热刷新**:追踪配置来自数据库配置表,后台刷新服务会自动加载新配置,无需重启即可生效。
34+
35+
## 🏗️ 架构与工程
36+
37+
### 1) 持久化与自动治理能力补齐
38+
39+
- 🗄️ **双表模型**:新增 `RequestTrace``RequestTracePayload` 两张表,元数据与大载荷分离存储,并通过级联删除保持一致性。
40+
- 📇 **索引与清理**:新增按 `StartedAt``UserId``TraceId``ScheduledDeleteAt` 的索引;自动清理服务每 30 分钟删除已过期记录,减少追踪数据无限增长。
41+
- 🚦 **队列保护**:新增 `RequestTraceQueue:Capacity` 配置项,使用有界内存队列承接写入压力,队列满时采用 `DropWrite` 策略保护主流程。
42+
- 🧵 **异步写入**:请求追踪改为队列化异步持久化,并补齐多阶段时间点和异常场景捕获,降低同步 I/O 对业务请求的影响。
43+
44+
### 2) 请求跟踪链路的细节稳定性打磨
45+
46+
- 🧪 **边界情况覆盖**:补充 `CaptureStreams``ObservedHttpContent``RequestTraceHelper``RequestTracePersistService``RequestTraceQueue` 等单元测试。
47+
- 🛡️ **稳定性修复**:修复 401 入站请求未被记录、空模式匹配、详情滚动显示、冗余 payload 删除、二进制与 JSON 展示等一批 request trace 细节问题。
48+
- 🧰 **配置承载能力**`Config.Value` 扩展为 `NVARCHAR(MAX)`,用于存储更复杂的请求跟踪 JSON 配置。
49+
50+
## 🎨 其它改进
51+
52+
### 管理后台与消息体验
53+
54+
- 📊 **仪表盘摘要卡片**:管理后台统计卡片改为基于当前时间范围计算会话量与活跃用户,摘要口径与筛选条件保持一致。
55+
- ✂️ **用户消息折叠**:长用户消息支持在消息气泡内展开/折叠,默认提供约 5.5 行预览,减少超长输入对刷屏的影响。
56+
- 🧠 **Thinking 展示优化**:移除 `ThinkingMessage` 的固定最大高度限制,长推理内容展开更自然。
57+
58+
### 协议兼容与依赖更新
59+
60+
- 🔧 **Anthropic 兼容修复**:修复 Anthropic 消息转换时 tool result 丢失问题(#122),并修复 DeepSeek Anthropic 协议下的 thinking signature 兼容性。
61+
- 🔤 **MCP JSON 可读性**:拉取 MCP 工具输入 schema 时保留可读 Unicode 文本,避免 JSON 被过度转义。
62+
- ⬆️ **前端依赖升级**:前端升级到 `Next.js 16.1.6`,并同步整理浏览器兼容相关依赖。
63+
64+
## 🐛 修复与稳定性
65+
66+
- 修复 Request Trace 默认脱敏策略和字段顺序问题。
67+
- 修复请求体/响应体观测流的捕获时机,能更早记录请求并改善 body 捕获完整性。
68+
- 修复 Request Trace 详情对话框在长头部、长正文场景下的滚动和溢出显示。
69+
- 修复请求跟踪配置弹窗的筛选规则组织方式,简化 include/exclude 的理解成本。
70+
71+
## ⬆️ 升级提示
72+
73+
- 运行数据库迁移脚本:`src/scripts/db-migration/1.10/1.10.2.sql`
74+
- 新增 `RequestTrace` 主表和 `RequestTracePayload` 子表
75+
- 新增 `StartedAt``UserId``TraceId``ScheduledDeleteAt` 相关索引
76+
-`Config.Value` 扩展为 `NVARCHAR(MAX)`,以支持更大的 JSON 配置
77+
- 新增配置项:
78+
- `RequestTraceQueue:Capacity`:控制请求跟踪内存队列容量,默认 `1000`
79+
- `RequestTraceCleanup:Enabled`:控制定时自动删除是否启用,默认 `true`
80+
- Request Trace 不会因为升级自动对所有流量开启采集;实际采集范围仍取决于管理员在后台配置的入站/出站规则、采样率和保留策略。
81+
- 如果准备在高并发环境开启请求跟踪,建议先配置采样率、URL 过滤和保留天数,避免产生不必要的数据库写入与存储压力。

0 commit comments

Comments
 (0)