Repository navigation
Commit f7e64bc
authored
release: v0.8.3(会话实测 6 项:守卫绕过闭环 + 提交面收窄 + 报告指令前置) (#31)
来自真实多仓修复会话的反馈批次(门禁在主工作树拦 3 次、又被 4 种命令形态
静默绕过、长报告把指令段截掉):
1) 守卫绕过闭环(4 形态实测漏网 + 0.8.2 roots 层击穿)
- 切段扫描前展开 $(...) 与反引号内层文本(ro=$(git push…) 实测静默放行)
- 段首归一化剥 shell 控制引导词 if/then/else/elif/while/until/do/!
(if git push; then、for x; do git push; done 实测静默放行)
- resolve_project_roots 与 is_guarded 同源判定 + git -C <path> 显式仓边界:
0.8.2 ①只修了 _guarded_mode,roots 层仍用原始 tokens[0]——git -C /
FOO=1 git / sudo git 三形态 is_guarded=True 但 roots=[] → main 静默放行
2) commit 面按命令链收窄(staging_intent)
- 纯 git commit → 仅 staged;add -A/-a/-u 或 commit -a → 扩到未暂存/未跟踪;
git add <paths> → 并入 extra(PreToolUse 时 add 未执行、暂存区是旧的);
并行会话的未暂存 WIP 不再拦无关提交(本会话实测误拦点)
- lanes/extra 进缓存键(窄面 pass 被宽面复用 = 绕过);extra 按仓根换算 +
各仓存在性过滤;UPS 保持三路宽口径(软门无命令可预测,注释+协议已改)
3) 报告结构:整调用声明/skipGate/同意边界前置到首行综述紧后;总长硬上限
REPORT_MAX_CHARS=3000;超限保头保尾截细节(尾部日志路径不截掉)
4) 存量归因:delta 下项目级命令报错文件全部在改动集外 → skipped + 完整日志
(防"历史债不还就永远提交不了 → 只能 skipGate"的信誉清零)
5) append_files=false:java/kotlin/rust/go/csharp/vbnet/terraform/protobuf/elm
九个项目级命令不再被追加文件路径(mvn javadoc:jar foo.java → Unknown
lifecycle phase 假失败)
6) SessionStart 版本积压检测(version_backlog_note 纯函数)+ 缓存指纹轻量化
(name-only+stat 替代全仓全文 diff,staged 由 index mtime 兜底)
契约同 commit 同步:__protocol__.md §4(归一化/同源判定/指令前置/上限/存量
skip/lanes 语义)+ openspec hook-protocol(MUST 扩写 + 新 Requirement: The
commit face SHALL match the actual staging surface + 3 Scenario);README 双语
与 4 份 manifest → 0.8.3。
验证:unittest 120 OK(+26:tests/test_session_fixes_20260922.py)、
run_all 141/0、validate_languages_json 11 规则、README/manifest 一致性全绿1 parent 7f86fdf commit f7e64bc
11 files changed
Lines changed: 902 additions & 78 deletions
File tree
- hooks
- openspec/specs/hook-protocol
- scripts
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
73 | 80 | | |
74 | 81 | | |
75 | 82 | | |
76 | 83 | | |
77 | 84 | | |
78 | 85 | | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
85 | 99 | | |
86 | 100 | | |
87 | 101 | | |
| |||
90 | 104 | | |
91 | 105 | | |
92 | 106 | | |
93 | | - | |
94 | | - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
95 | 118 | | |
96 | 119 | | |
97 | 120 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
62 | 104 | | |
63 | 105 | | |
64 | 106 | | |
| |||
140 | 182 | | |
141 | 183 | | |
142 | 184 | | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
143 | 199 | | |
144 | 200 | | |
145 | 201 | | |
| |||
0 commit comments