OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:warmwine/dsh-memoryleak
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
好记性不如烂笔头,有了 memoryleak 你就不会 memoryleak。 一个把记事本带进 DSH 的插件:记的东西全是本地 Markdown 文件,git 和任何编辑器都能直接用,换个工具也带得走。
[!WARNING] ⚠️ 隐私警示:谨慎使用本插件 ⚠️
任何 dsh 工作目录都可以把笔记写进同一个 Vault——这同样意味着你的领导很容易通过蒸馏(distill)你的 Vault 摸清你的动态。
- 当前请谨慎使用本插件,想清楚什么能记、什么不能记。
- 后续会推出「失联即焚」功能。在此之前,务必做好云备份,甚至不要把 Vault 放在公司电脑上。
- 在此之后,更要做好备份,防止系统自燃。
你在写代码的时候,总有各种事想顺手记下来:这个 bug 怎么修的、明天要跟进什么、哪天要交什么材料。这些事放进专门的笔记软件就散落各处,放在脑子里又会漏。这个插件把它们集中存在你自己指定的一个目录(Vault)里:
/ml 命令会引导你选一个本地文件夹:输入路径时Tab 自动补全(↑↓ 选候选,输 e 补盘符、~ 开头是用户目录),或直接用当前工作区;目录不存在会自动创建。之后所有日志、待办都固定写进这个目录,不再跟着会话的工作区跑。换项目、换会话,记的事都在同一个地方。/ml 明天找财务对一下发票 回车,这句话就写进了今天的日志文件(2026-08-16.md)。文件就在 Vault 根目录,打开就能看,提交 git 就能留痕。/ml todo add 交季度报告,会弹一个固定表单问你类型和重要程度,各选一项、选完自动提交;选到 deadline / sleep 时输入区变成日期选择器(日历 + 今天/明天/本周/本月快捷键),点一下就定好日期。有截止日的到期自然浮出来;不急的可以设成"睡到"某天再提醒你。/ml view 加几个字母,输入框上方弹出候选列表,↑↓ 选、Tab 补全、回车打开。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(用哪种在设置里选):
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.yaml 的 memoryleak: 段(DSH 官方统一位置,和其他插件同款)。GUI 设置面板 → MemoryLeak 分区改的就是它:Vault 目录(「浏览…」弹系统目录选择对话框,「清除」一键置空)、扫描哪些扩展名、排除哪些目录、数量上限、默认过滤、用日志还是周志、两个模板的内容。.memoryleak.yaml。GUI 保存与 /ml init 都会双写——全局与这个文件同步为同一份,换台机器把整个 Vault 拷走、设置跟着走。读取时此文件里的键优先级更高(vault 路径除外——它只认全局层,文件里写了也无效);缺键回退全局层,全局层也没有就用默认值;文件写坏了也不崩,按缺失处理。手改这个文件仍可读,但下次 GUI 保存会被覆盖。新建会话里命令没反应? DSH 的设计是:一个会话在发出第一条消息之前不挂聊天记录区,所以这时跑任何斜杠命令(包括官方的 /plan)结果都看不见,但命令其实执行了,文件也写了。随便发一条消息,之前的命令卡片就会补出来。
改了代码没生效? 浏览器部分(设置窗口、候选卡、命令卡片)刷新页面就行;核心逻辑(命令处理、扫描、文件读写)在服务端,要重启 dsh web。
pnpm install
pnpm test # 261 个测试
代码分三层:src/core/ 是纯逻辑,不碰文件系统,测试直接跑;src/adapters/ 负责真实的文件读写(测试用内存版替换);src/index.js 和 src/client.js 分别是服务端和浏览器两端。
给 AI 留了接口但还没启用:新的待办格式只需要注册一个新的解析策略;renderTodoJson 输出稳定的 JSON,将来 AI 可以直接按这个格式读和筛待办。
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: memory-management。