原先按 head sha 存已查看,作者一推新提交 head sha 变了,全部勾一起清空——
哪怕只改了一个文件也把没动的勾全冲掉。改成 GitHub「Viewed」式的内容感知:
按每个文件的变更指纹 (status|additions|deletions) 存,拉文件时与当前指纹比对,
只有真改动过的文件掉勾,没动的保留;比对后顺手剪掉盘上失配/消失的条目。
Gitea 的 ChangedFile 不返回 blob sha、compare 端点也不支持任意 commit sha,
故用上述三元组作指纹(文件一改几乎必变其一),零额外请求。
- prReviewStore: 形状改为 issueNumber → {path: sig},导出 read/writeConfirmedSigs
- prFiles: handleGetPrFiles 按指纹过滤+剪枝,顺带去掉不再需要的 getPullRequest 调用
- 消息 pr-files/show 去掉无人消费的 headSha/mergeBase;pr-review/set 改发 {path: sig}
- usePrFiles: 删 headSha,setConfirmed 把路径映射成指纹再发
Superpowers-clurdra
一个用于 VS Code 的 obra/superpowers 文档浏览与执行插件,聚焦 docs/superpowers/ 目录下的 spec 和 plan 文件。
功能
- 在活动栏提供
Superpowers入口,打开专用面板 - 自动扫描
docs/superpowers/specs和docs/superpowers/plans - 用表格展示 spec、plan、日期、进度与状态
- 支持刷新、预览打开、删除关联 spec/plan 文件
- 支持在面板里直接运行 plan
- 运行 plan 前自动创建独立 git worktree,隔离实现过程
- 支持把 plan 状态标记为进行中、需要测试、已完成
适用目录结构
docs/
superpowers/
specs/
plans/
插件会读取 Markdown 文件的第一个 H1 作为标题,并从文件名中提取日期。
Plan 运行方式
运行 plan 时,插件会:
- 根据 plan 文件名生成
feature/...分支名 - 按配置创建 git worktree
- 用
systemd-run --user在 worktree 目录后台执行opencode run
默认执行命令等价于:
systemd-run --user --unit=opencode-plan-xxx --working-directory '/path/to/worktree' zsh -c 'opencode run '\''实施 docs/superpowers/plans/xxx.md'\'' --model '\''alibaba-coding-plan-cn/glm-5'\'' --agent '\''build'\'''
配置项
插件提供这些 VS Code 配置:
superpowers.runMessage: 运行 plan 时传给opencode run的消息模板,支持$plan_relative_pathsuperpowers.runModel: 运行 plan 时使用的模型superpowers.runAgent: 运行 plan 时使用的 agentsuperpowers.worktreeDirectory: worktree 目录模板,支持$project_root、$project_name、$feature_name
默认值:
{
"superpowers.runMessage": "实施 $plan_relative_path",
"superpowers.runModel": "alibaba-coding-plan-cn/glm-5",
"superpowers.runAgent": "build",
"superpowers.worktreeDirectory": "$project_root.worktrees/$feature_name"
}
开发
安装依赖:
pnpm install
常用命令:
pnpm build
pnpm dev
pnpm test
pnpm lint
pnpm typecheck
打包扩展:
pnpm ext:package
技术栈
- TypeScript
- VS Code Extension API
- reactive-vscode
- Vitest
许可证
MIT