Repository navigation
Description
要解决的问题 / Problem
仓库地志 界面显示 还没有登记的仓库。先在仓库目录里跑 dsh-mneme-choro <仓库路径> --apply 生成骨架页并登记,然后回到这里。
完全是不存在的,dsh-mneme-choro 没注册到path里,用户怎么可能手动跑起来这个命令,完全就是AI自己编的。Readme.md也是纯AI写的,鲸言鲸语,人类看不到,只能发给AI研究。
期望的方案 / Proposed solution
AI分析的结果:
一、为什么 cmd 里提示“无效命令”
dsh-mneme-choro 确实在这个包里(package.json 的 bin 字段声明了它 → bin/dsh-mneme-choro.mjs)。但包不是全局安装,而是装在 DSH 的 profile 依赖里:
代码块
C:\Users\Naught.dsh\profiles\web\node_modules@modusensus\dsh-mneme
npm 只为全局包在 PATH 中放 shim。这个包的 shim 只在 ...\profiles\web\node_modules.bin\ 里,不在 PATH。cmd 找不到它。
二、可以直接复制的命令(我实测跑通了)
代码块
"C:\Users\Naught.dsh\profiles\web\node_modules.bin\dsh-mneme-choro.CMD" "D:\你的仓库" --apply
等价写法:
代码块
node "C:\Users\Naught.dsh\profiles\web\node_modules@modusensus\dsh-mneme\bin\dsh-mneme-choro.mjs" "D:\你的仓库" --apply
如果想以后直接敲 dsh-mneme-choro,就把 C:\Users\Naught.dsh\profiles\web\node_modules.bin 加进系统 PATH。
三、那句提示文案是错的,不怪你看不懂
面板写“在仓库目录里跑 dsh-mneme-choro <仓库路径> --apply”。我实测了两件事:
cd 进仓库、不带参数跑 → 只打印帮助,什么都不做
参数是必须的,而且它跟“当前目录”无关
所以正确姿势是传路径,不是 cd 进去裸跑。这条文案把“cd 进去”和“传路径参数”混在一起,是插件自己的 bug。
另外提醒:你当前目录 H:\doc_research 不是 git 仓库,实测会被直接拒绝:
代码块
拒绝运行(not-git):... chorography 的每条出处锚点都要能对着提交核验,非 git 目录拒绝生成。
四、完整流程(4 步,顺序不能乱)
开开关:设置 → 记忆(mneme)→ 功能 → 「仓库地志(chorography)」→ 重启 DSH。不开这个,跑完命令面板照样是空态。
先 dry-run(不加 --apply,零写入,只看数字):
代码块
"...\dsh-mneme-choro.CMD" "D:\你的仓库"
确认数字合理再加 --apply,写入 <仓库>.chorography\ 并登记进 memory.db。
回面板看「仓库地志」页。
补一句现状:你的 memory.db 里 choro_repos 是 0 行,所以面板显示空态完全正常——确实一次都没登记过。
考虑过的替代方案 / Alternatives considered
说人话就是这功能默认不开,开关也不是在dsh设置里而是在这个插件的设置里,但是左边栏单独的 ”仓库地志“(也不知道哪个天才AI想出来的怪名字) 根本没说明自己是哪个插件来的功能。刚更新一头雾水。跑插件设置里还找不到,这玩意开关藏在二级菜单里。
开了也用不了,给的提示毫无意义。
我说,虽然插件AI写、UI也是AI写,活人总是要参与一下测试吧?
实现口径确认 / Implementation gates (维护者会逐项核对)
- 新行为开关应 opt-in 默认关,注册进 settings 白名单 / new toggles opt-in by default + settings whitelist
- 涉及 schema 变更时需配幂等迁移 / idempotent migration for schema changes
- 接受带回归测试的验收线 / acceptance includes regression tests
披露 / Disclosure
- 本提案由 AI 辅助整理(人工审核后提交)/ Drafted with AI assistance, reviewed by a human
Activity
modusensus commentedon Nov 8, 2026
修好了,本地提交在分支
fix/607-choro-hints(commit6026e85,未 push)。谢谢 @NaughtDZ ——你把这四条列出来的方式帮了大忙,尤其是「完全就是 AI 自己编的」这句,问题定性得很准。改了什么
根因:提示让人「在仓库目录里跑
dsh-mneme-choro <仓库路径> --apply」,这句话两处都不成立。插件装在 profile 依赖里,npm 只为全局安装把 shim 放进 PATH,<profile>/node_modules/.bin不在 PATH 上;而参数与 cwd 无关,cd进仓库裸跑只打印帮助、什么都不做。所以不是文案不好看,是给出了一条照着抄必然失败的命令。dsh-mneme/src/wiki/cli-hint.js(新增 90 行)import.meta.url逐级上溯(上限 6 层)找「同时存在bin/dsh-mneme-choro.mjs与package.json」的目录,产出node "<entry>" <repo> --apply。刻意不按固定 dirname 次数推导——src/与lib/同层、src/wiki/在第二层、bin/在第一层,写死层数只要有一处调用方挪位置就悄悄算错,而算错的表现正是又给一条跑不起来的命令(与本 issue 同源)。也只给node <entry>一种形态:.bin的 shim 在 hoisted 与 pnpm isolated 两种 linker 下位置不同,猜错就是再给一条错的。找不到入口返回null,调用方退回通用文案,不硬编假路径。dsh-mneme/src/choro-command.js/choro命令的「仓库没登记」文案接上真实入口。dsh-mneme/src/api.jsGET /choro/repos响应新增cliCommand字段;/choro/page的 409hint同样接上。面板 bundle 拿不到 CLI 路径,所以命令串由服务端算好下发。dsh-mneme/src/tools.jsdsh-mneme/src/wiki/t1.jsnot-registered拒绝原因接上。dsh-mneme/src/lang.jsnoRepo/stale两条文案加一个可选命令参数,缺省时回落原文案(中英两段都成对)。dsh-mneme/lib/client.jswhere文案点名开关位置「设置 → 记忆库设置 → 功能开关 → 它什么时候写进去 → 仓库地志(chorography)」并说明要重启 DSH 才生效;③pageMissing从「重跑 CLI」改成「点顶部『重建骨架』即可」——面板里本来就有那个按钮,让人离开面板去跑命令是多余的一步。关于你说的第 4 条(开关藏在「它什么时候写进去」组里、左边栏又没标明属于哪个插件):空态与禁用态现在都直接写出这条路径,并说明它属于本插件(记忆库)。没做的是给左边栏的「仓库地志」入口加来源标注——那要动宿主的 panel 注册结构,超出这条 issue 的范围,需要的话单开一条我再做。
复制按钮的一个细节:剪贴板在非安全上下文里不存在,所以失败分支必须说话(
announce「复制失败,请手动选中命令文本」),不能静默——静默失败就又是一次「点了没反应」。怎么验证的
新增
dsh-mneme/test/wiki-cli-hint.test.js,5 例:test//src//src/wiki//bin/)——写死层数的实现在这里必然红;bin/与package.json;bin/或只有package.json)返回null,不硬编假路径;'\'',逐字比对;--help,断言退出码 0 且输出含--apply——你这条 issue 的验收标准就是「用户照着能跑起来」,字符串断言证明不了这件事。变异自证(各改一处、跑、还原):
src/同层写死」)其余验证:
(本仓库
src/与lib/是同步产物,两边都改了;lib/client.js是手写面板 bundle,没有src/对应物。)现状
fix/607-choro-hints,commit6026e85,只本地提交,未 push、未开 PR(维护者合并流程)。Merge pull request #608 from slow-stack/feat/kb-qoder-parity
feat(kb): 知识库面板改仓库卡片,一键批量整理地志页 (#615)
feat(choro): CLI 命令由服务端推导,五个入口共用(#607) (#627)
Merge pull request #638 from slow-stack/feat/ext-switches-v013
feat(panel): 无座位键补位——热度排序/实体召回/图谱锚定/地志子开关上墙(美化第三刀)
modusensus commentedon Nov 11, 2026
修在 #627:报告的四条同源于「提示里的命令照着抄必然失败」——插件 shim 不在 PATH 上(npm 只为全局安装写 shim)、参数又与 cwd 无关(
cd进仓库裸跑只打印帮助)。现在命令串从插件自身位置推导(src/wiki/cli-hint.js),产出node "<entry>" <repo> --apply这样能直接粘贴就跑的一条。随后地志侧又落了一串改进:#608(对齐 Qoder + 知识库第二层)、#615(知识库面板改仓库卡片)、#631(侧栏入口旗标门控)、#638(扩展子系统总闸提到设置页首屏)。均已随 v0.14.0-beta.1 / beta.2 发布。
谢谢 @NaughtDZ 的报告——四条列得很准。若还有提示不准或照抄失败的地方,欢迎另开新 issue。