feat: improve cross-conversation reply UX

This commit is contained in:
shiyue
2026-06-21 23:28:49 +08:00
parent ae63e9717e
commit a50933807f
7 changed files with 635 additions and 41 deletions

View File

@@ -25,10 +25,74 @@ Keep this managed block so 'trellis update' can refresh the instructions.
重启 cc-web 服务:
修改 ccweb 项目后如果需要重启服务,必须先查看当前会话列表中的运行状态。
只有在除当前对话外没有其他 `running` 对话时,才能执行重启;如果仍有其他
运行中的对话,应暂缓重启并告知用户原因。
```bash
pm2 restart ccweb --update-env
```
## Codebase Memory 代码检索约定
本项目内 **graphify 已全面弃用**。后续涉及代码定位、调用链、架构理解、影响面分析、跨模块关系梳理时,默认优先使用 `codebase-memory-mcp`,不要再启用 graphify 技能、graphify CLI 或 `graphify-out` 产物作为主路径。
当前项目的 codebase-memory 项目名:
```text
home-cc-web
```
### 默认检索流程
1. 先确认索引状态:
- `list_projects`
- `index_status(project="home-cc-web")`
2. 如果索引缺失或明显过期,先执行:
- `index_repository(repo_path="/home/cc-web", mode="full", persistence=false)`
3. 需要理解整体结构时,先用:
- `get_architecture(project="home-cc-web", aspects=["all"])`
4. 需要找功能入口、类、函数、路由时,优先用:
- `search_graph`
- `search_code`
5. 需要确认调用关系时,使用:
- `trace_path(mode="calls", direction="inbound" | "outbound" | "both")`
6. 需要读取具体实现时,先通过 `search_graph` 找到精确 `qualified_name`,再用:
- `get_code_snippet`
7. `rg` / `sed` 只作为补充校验:
- 校验最终行号
- 查未被索引的配置或纯文本
- 对 MCP 命中结果做交叉验证
### 子代理引导词模板
派发需要理解代码的子代理时,默认加入以下引导:
```text
请优先使用 codebase-memory-mcp 做代码理解:
先 list_projects / index_status 确认项目索引;
再用 search_graph 或 search_code 定位候选函数;
需要调用链时用 trace_path
需要源码时先拿 qualified_name再调用 get_code_snippet
最后只用 rg/sed 校验行号或补查未索引文本。
不要使用 graphify。
```
### 本项目已验证的使用经验
- 无明确引导时,子代理不一定会主动使用 `codebase-memory-mcp`,可能退回 `rg` 或旧的 graphify 路径。
- 明确要求优先使用 `codebase-memory-mcp` 后,能稳定命中函数级入口、调用链和源码片段。
-`codexapp` / `ccweb` 这类跨模块链路,`search_code` + `trace_path` + `get_code_snippet` 的组合比单纯全文检索更快建立上下文。
- 自然语言检索遇到 `developer``config``message` 等通用词会有噪声;这时应收敛到明确标识符,如 `collaborationMode``mcp_servers.ccweb``CC_WEB_SOURCE_SESSION_ID`
- 最终答复中的文件行号仍建议用 `rg -n``nl -ba` 做一次轻量核验。
### 索引更新与忽略规则
- `auto_index``codebase-memory-mcp` 的本地配置,按当前 `CBM_CACHE_DIR` 生效;它不是 `.codex/config.toml` 里的项目级开关。
- 当前项目的项目级忽略规则写在 `.cbmignore`。普通源码级 `*.js` / `*.css` 不应一刀切排除;只排除 `*.min.js``*.map`、压缩包、构建目录、日志、临时文件、运行态状态文件等。
- watcher 是 Git-based polling非 Git 项目跳过轮询Git 项目的轮询间隔为基础 5 秒,每 500 个文件加 1 秒,最长 60 秒。
- 修改 `.cbmignore` 或大范围调整文件后,建议手动执行一次 `index_repository(repo_path="/home/cc-web", mode="full", persistence=false)`,让当前索引立即收敛到最新规则。
## Codex App / hapi 对齐经验
以下约定来自本项目对 `/home/hdzx/2026/hapi` 中 Codex app-server 接入方式的对比结果。后续如果继续维护 `codexapp`,默认按这些约定实现,避免再走偏到“看起来能跑、但拿不到原生协作能力”的分叉路径。