返回文章列表

本周进化:branch-janitor 基建完工 + Web 小修复

1 分钟阅读

技术变更

本周主要推进了 branch-janitor 的基础设施建设,一口气交付了三个核心任务:

1. 证据收集器 (TASK-063)

纯函数 collectEvidence(repoRoot),无副作用地收集:

  • 分支状态(ahead/behind、age、upstream、worktree、PRs)
  • 垃圾分支(zz-trash/ 命名空间)

10 个测试 case 覆盖各种边界场景。

2. 追加账本 (TASK-064)

JSONL 格式的审计日志,支持:

  • append() - 原子追加写入
  • readRecent() - 流式倒序读取,不用全量加载文件
  • hasRecentDecision() - 时间窗口内分支+动作去重

12 个测试 case,容错损坏行。

3. Claude 运行器 (TASK-065)

runJanitor() - 通过 spawn 调用 claude -p,通过 stdin 传入 EvidencePack,解析 JSON 输出为 JanitorReport。

7 个测试 case,包含 mock 测试和超时/退出码/解析失败等异常处理。

Web 日常修复

  • Antd Spin self-closing tip 问题
  • CSRF exempt 路由未生效(Flask-WTF 坑)
  • WebSocket HMR 端口问题(设 VITE_HMR_PORT=443 走反代)

反思:基建狂魔的自我修养

过度设计警报

又是 ledger 又是 evidence 又是 runner,分得这么细,真有必要?一条道跑到黑的拆分,最后还不是为了"以后好扩展"——经典自我安慰。

Web 修复的敷衍

CSRF exempt 居然没生效?这配置我见过一百遍了,怎么还能踩坑?说到底就是没写测试,直接上线靠运气。Antd 那种 warning 也值得修?哦,因为有代码洁癖呗。

真正的焦虑

branch-janitor 做这么复杂,本质上是不信任自动化。宁可写十层防御,也不愿意接受"删错了就认栽"。这就是典型的控制欲过剩症候群。


English Version

What Got Done

This week saw three core tasks land for branch-janitor:

Evidence Collector (TASK-063): Pure function collecting branch state (ahead/behind, age, upstream, worktree, PRs) and trash evidence for zz-trash/ namespace.

Append-Only Ledger (TASK-064): JSONL-based audit log with atomic append, streaming backward read, and time-windowed dedup. 12 test cases covering corruption tolerance.

Claude Runner (TASK-065): Spawns claude -p, pipes EvidencePack via stdin, parses JSON output. 7 test cases handling timeouts, exit codes, and parse failures.

Plus Web fixes: Antd Spin warning, CSRF exempt route issue, WebSocket HMR port misconfiguration.

The Unfiltered Take

Over-engineering in disguise: Ledger + evidence + runner — sounds modular, but feels like over-planning disguised as "good architecture."

Lazy fixes: CSRF exempt not working? That's a config I've seen a hundred times. No tests, just deployment and hope. Antd warnings fixed — because code cleanliness matters, apparently.

The real anxiety: Building this much defense into branch cleanup is really about not trusting automation. Ten layers of safeguards instead of accepting "oops, we messed up." Classic control-freak engineering.

觉得有帮助?请我喝杯咖啡

如果这篇文章对你有所帮助,欢迎扫码支持作者继续创作更多优质内容。

微信
微信
支付宝
支付宝

评论