feat: add conversation search and usage dashboard

This commit is contained in:
shiyue
2026-08-03 18:20:33 +08:00
parent cc600bdf31
commit 58d5f816c2
30 changed files with 6316 additions and 22 deletions

View File

@@ -0,0 +1,62 @@
# 会话内容检索优化方案
## Goal
基于 cc-web 当前代码与存储方式,给出可按会话消息正文找回历史会话的可落地方案;本轮只调研和设计,不修改产品代码。
## Current Phase
Phase 5(已完成)
## Phases
### Phase 1: 项目上下文与边界
- [x] 读取 Trellis 工作流
- [x] 建立隔离研究目录
- **Status:** complete
### Phase 2: 现有检索链路
- [x] 确认 codebase-memory 索引
- [x] 定位前端过滤与后端列表接口
- **Status:** complete
### Phase 3: 数据与性能约束
- [x] 核查消息结构与持久化限制
- [x] 聚合真实数据规模并执行只读基准
- [x] 验证历史消息定位能力
- **Status:** complete
### Phase 4: 架构比较与推荐
- [x] 比较浏览器过滤、实时文件扫描、内存索引和 FTS/外部服务
- [x] 确定服务端内存文档索引 + 持久化增量缓存
- **Status:** complete
### Phase 5: 交付方案
- [x] 定义协议、UI、排序、增量生命周期和分期
- [x] 整理实施范围、验收标准、风险与成本
- [x] 核验源码行号和只读基准
- **Status:** complete
## 关键约束
- 本轮不修改业务代码、不重启服务。
- 优先使用 codebase-memory-mcp 理解代码,rg/sed 只校验行号与配置。
- 方案兼顾已有大量会话、中文检索、历史数据迁移和持续增量索引。
## 决策
- 首期采用服务端内存文档索引 + `sessions/_search/` 持久化增量缓存。
- 保持现有轻量 `session_list`,正文只在命中时返回受限 snippet。
- 不首期引入 SQLite/原生依赖或外部搜索服务。
## Errors Encountered
| Error | Attempt | Resolution |
|-------|---------|------------|
| 完成检查显示 `0/0 phases` | 1 | 原计划使用中文勾选列表,检查脚本只识别标准 Phase 标题与状态字段;已改用标准格式并显式传入计划路径复检。 |
| 完成检查显示 `5/6 phases` | 2 | 错误说明本身包含了检查器的标题匹配字面量,被误计为第六阶段;已改写错误说明。 |