Repository navigation
feat(choro): M1——仓库地志面板(浏览)+ 三个只读工具 + 关键词检索 - #570
Conversation
消费面第一批(spec §7 / §10 M1,实现计划 P8–P12): - store.js:choro_edges 表补口(module_map 要依赖边),replaceChoroGraph 写边(跨模块聚合、幂等不变)。 - src/wiki/queries.js:读侧五函数(仓库列表 / repo 解析 / 模块图 / 页面 / 分节检索),slug 只从 DB 白名单解析,正文永远读磁盘真源。 - src/api.js:/choro/repos|modules|page|search 四条路由,policy 全 open, chorographyEnabled 关着统一 409 disabled(#497 先例);SECURITY.md 双语 开放读清单同步。 - src/tools.js:choro_search / choro_read_page / choro_module_map 三个只读 工具,hiddenTools 闸默认不在场(chorographyEnabled 反向语义,同 organizeEnabled);createTools 加 choro 参数,与 service 刻意分开。 - config/settings:chorographyEnabled opt-in 默认关,刻意不进 LIGHT_MODE_OFF(零每轮注入物、零热路径),旗标计数锁 111→112, CONFIGURATION.md 补行。 - lib/client.js:第二个宿主座位 dsh-mneme-wiki(panellist+main 同名对), WikiMainPanel 左树右文 + 顶部检索,只读 MD 渲染(零 innerHTML), 409/503 各有各的空态;座位清理并入 #562 的同一把扫帚。 - 测试:wiki-queries 4 / wiki-tools 4 / wiki-api 4 / client 座位锁 + 行为锁 更新为两对座位;全量 2770 pass / 0 fail / 1 skipped。
|
Caution Review failedThe pull request is closed. Walkthrough
Merge Risk:
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
概要
chorography(仓库地志)M1 档:消费面第一批——面板浏览、三个只读模型工具、关键词检索。叠在 M0(#567)之上,base 设为
feat/chorography-m0,M0 合并后 retarget 到 main。docs/plans/2026-11-05-chorography-m1.md(P8–P12 决策,含被否备选)内容
choro_edges表补口(P8):spec §7 的choro_module_map要依赖边,M0 schema 漏了。replaceChoroGraph顺手多删多插一段(跨模块聚合、同向 weight),幂等语义不变。src/wiki/queries.js:仓库列表 / repo 解析(id 或显示名,单仓自动收敛、多仓歧义带清单)/ 模块图 / 页面 / 分节检索。slug 只从 DB 白名单解析——路径拼装零用户输入,../etc/passwd形态的 slug 走未知页 404;正文永远读仓库磁盘的 MD(真源纪律 P12),盘上缺页如实报 page-missing。/choro/repos|modules|page|search,policy 全open(宿主围栏统一鉴权),chorographyEnabled关着统一 409 disabled([人格] default 卡无条件进所有没建卡的身份;面板「注入生效文本」是前端另拼的一份 #497「路由挂着、逻辑层挡」先例;queries 缺装配才 503)。SECURITY.md 双语开放读清单已同步——security-doc.test.js双向比对,漏一条 CI 就红。choro_search/choro_read_page/choro_module_map,hiddenTools 闸默认不在场(与memory_organize同款反向语义),零写工具(红线 3)。createTools加choro参数,与 service 刻意分开传(所有权模型相反)。dsh-mneme-wiki(sidebar.panellist+main同名对,挂在 feat(panel): 记忆库搬进宿主原生面板位(sidebar.panellist + main),老宿主保留回落 #562 的 inject 块内),左模块树 / 右正文 / 顶部检索,只读 MD 渲染(React 文本节点天然转义,零 innerHTML);样式全走既有语义色层,不新增渲染根。座位无条件注册(P11:inject 同名二次注册的 cordis 语义没验证过,不赌),开关关时内容层渲染空态,409/503 各有文案。chorographyEnabledopt-in 默认关(工具描述常驻 = 新增上下文成本,旗标计数锁 111→112);刻意不进LIGHT_MODE_OFF——零每轮注入物、零热路径挂载,轻量档关它省不出任何东西(config.js / CONFIGURATION.md 注释写明)。验证
wiki-queries4 /wiki-tools4 /wiki-api4 / client 座位锁 1;行为锁「panel seats」口径更新为两对座位(记忆 + 地志,各自 id/key 逐字同名、清理同扫帚)npm test2770 pass / 0 fail / 1 skipped;check-sync91 文件一致不在本批次
M2(T1 headless 生成轮 + 面板生成入口,前置 V1 实测:桌面版 headless 会不会卡)、M3(开局注入提纲 +
/choro指令 + 向量检索)。Summary by CodeRabbit