dsh-memoryleak > 好记性不如烂笔头,有了 memoryleak 你就不会 memoryleak。 > 一个把记事本带进 DSH 的插件:记的东西全是本地 Markdown 文件,git 和任何编辑器都能直接用,换个工具也带得走。 > [!WARNING] > ⚠️ 隐私警示:谨慎使用本插件 ⚠️ > > 任何 dsh 工作目录都可以把笔记写进同一个 Vault——这同样意味着你的领导很容易通过蒸馏(distill)你的 Vault 摸清你的动态。 > > - 当前请谨慎使用本插件,想清楚什么能记、什么不能记。 > - 后续会推出**「失联即焚」功能。在此之前,务必做好云备份,甚至不要把 Vault 放在公司电脑上。 > - 在此之后,更要做好备份,防止系统自燃更新历史 ## 你能用它干什么 你在写代码的时候,总有各种事想顺手记下来:这个 bug 怎么修的、明天要跟进什么、哪天要交什么材料。这些事放进专门的笔记软件就散落各处,放在脑子里又会漏。这个插件把它们集中存在你自己指定的一个目录(Vault)里: - 先选一个 Vault,只用选一次。刚装好时设置是空的,执行任意 /ml 命令会引导你选一个本地文件夹:输入路径时Tab 自动补全**(↑↓ 选候选,输 e 补盘符、~ 开头是用户目录),或直接用当前工作区;目录不存在会自动创建。之后所有日志、待办都固定写进这个目录,不再跟着会话的工作区跑。换项目、换会话,记的事都在同一个地方。 - 想到什么,一句话记下来。输入 /ml 明天找财务对一下发票 回车,这句话就写进了今天的日志文件(2026-08-16.md)。文件就在 Vault 根目录,打开就能看,提交 git 就能留痕。 - 待办带结构和优先级。输入 /ml todo add 交季度报告,会弹一个固定表单问你类型和重要程度,各选一项、选完自动提交;选到 deadline / sleep 时输入区变成日期选择器(日历 + 今天/明天/本周/本月快捷键),点一下就定好日期。有截止日的到期自然浮出来;不急的可以设成"睡到"某天再提醒你。 - 找文件像 VSCode 一样快。输入 /ml view 加几个字母,输入框上方弹出候选列表,↑↓ 选、Tab 补全、回车打开。 - 以上全部不花一个 token。所有命令都在本地完成,不经过大模型,不进对话历史。 ## 安装 bash dsh plugin --profile web add github:warmwine/dsh-memoryleak # 重启 dsh web 生效 # 卸载:dsh plugin --profile web remove dsh-memoryleak 装好之后在输入框敲 /ml help 看全部命令。 ## 记的东西长什么样 全部是普通 Markdown 文件,放在 Vault 根目录。每天的日志叫 2026-08-16.md,每周的叫 2026W33.md(用哪种在设置里选): markdown start: 2026-08-10 ← 周志模板自带的起止日期 end: 2026-08-16 ## MemoryLeak ← /ml 记的流水账都在这里 - 上午重构了扫描器 - 下午修了候选卡错位 ## Todo ← /ml todo add 存的待办在这里 - [ ] (ml:deadline 2026-09-01 urgent) 完成设计稿 - [ ] (ml:sleep 2026-12-01 low) 学一遍内部源码 - [ ] (ml:anytime medium) 整理收藏夹 - [x] (ml:active low done:2026-08-16) 复盘一次上线 待办有四种类型: | 类型 | 日期 | 是什么 | | ---------- | ---- | ----------------------------------------------------------------- | | deadline | 必填 | 有截止日的事,到点就出现在列表里 | | sleep | 必填 | 暂时不想看见的事,到唤醒日才自动出现(出现时会自动改写成 active) | | anytime | 不填 | 随便什么时候搞一下的事 | | active | 不填 | sleep 睡醒之后的样子,系统自动转换,不用手动写 | 优先级三档:urgent(紧急)、medium(中等)、low(低)。完成一件事时(/ml todo d)会自动在后面记上完成日期(done:2026-08-16),取消完成或撤销时自动去掉。就算你手动把文件的格式改坏了,那一条也只是变回普通待办,不会丢。 ## 命令一览 完整说明输入 /ml help 随时看,这里列个速查: | 命令 | 干什么 | | ---------------------------------- | ------------------------------------ | | /ml init | 指定/更换 Vault 目录(唯一的设置入口) | | /ml <文本> | 记一笔到今天(或本周)的日志 | | /ml todo add <内容>(简写 n) | 加待办,弹表单选类型和优先级 | | /ml todo list(简写 l) | 列出待办,默认只看没完成的 | | /ml todo list all / open / done | 按状态过滤 | | /ml todo list <关键词> | 按关键词过滤 | | /ml todo d <序号>(简写 done) | 把列表里第几条标成完成(或取消完成) | | /ml todo u(简写 undo) | 反悔刚才那次 d,连按可以一路撤回去 | | /ml view(简写 v) | 看今天(或本周)的日志 | | /ml view <文件名几个字母> | 模糊找文件直接打开 | | /ml help(简写 h) | 看这份说明 | Vault 未设置时,除 help / init 外的所有命令都会直接报错并提示先执行 /ml init——init 是唯一严格的目录设置入口,不会自动弹引导。 输入 /ml view 后继续打字,输入框上方会弹实时候选:当前日志排第一个,下面是匹配的文件。↑↓ 换选中的,Tab 把文件名补全到命令里,回车直接打开,Esc 关掉。 设置分两层,都是手改友好的 YAML: - 全局层存在 ~/.dsh/settings.yamlmemoryleak: 段(DSH 官方统一位置,和其他插件同款)。GUI 设置面板 → MemoryLeak 分区改的就是它:Vault 目录(「浏览…」弹系统目录选择对话框,「清除」一键置空)、扫描哪些扩展名、排除哪些目录、数量上限、默认过滤、用日志还是周志、两个模板的内容。 - Vault 层是 Vault 根目录下的 .memoryleak.yaml。GUI 保存与 /ml init 都会双写——全局与这个文件同步为同一份,换台机器把整个 Vault 拷走、设置跟着走。读取时此文件里的键优先级更高(vault 路径除外——它只认全局层,文件里写了也无效);缺键回退全局层,全局层也没有就用默认值;文件写坏了也不崩,按缺失处理。手改这个文件仍可读,但下次 GUI 保存会被覆盖。 ## 两件可能让你困惑的事 新建会话里命令没反应? DSH 的设计是:一个会话在发出第一条消息之前不挂聊天记录区,所以这时跑任何斜杠命令(包括官方的 /plan)结果都看不见,但命令其实执行了,文件也写了。随便发一条消息,之前的命令卡片就会补出来。 改了代码没生效? 浏览器部分(设置窗口、候选卡、命令卡片)刷新页面就行;核心逻辑(命令处理、扫描、文件读写)在服务端,要重启 dsh web。 ## 开发 bash pnpm install pnpm test # 261 个测试 代码分三层:src/core/ 是纯逻辑,不碰文件系统,测试直接跑;src/adapters/ 负责真实的文件读写(测试用内存版替换);src/index.jssrc/client.js 分别是服务端和浏览器两端。 给 AI 留了接口但还没启用:新的待办格式只需要注册一个新的解析策略;renderTodoJson 输出稳定的 JSON,将来 AI 可以直接按这个格式读和筛待办。 ## License MIT