戳記要證明「看過」,不是「跑過」(inkstone/ISEP#72 → comment 4873)
2026-08-27 實犯:`ticket where … >/dev/null 2>&1` 之後直接 `ticket new`—— 戳記寫成功了,命中的 72 張一眼沒看,於是開出 arcrun-rag#147, 而第一名 arcrun-rag#104 講的是同一件事,已經開了 13 天。 ⇒ 舊戳記證明的是「這個程序被執行過」,而「有沒有看」在 stdout 那一端, 閘本來完全碰不到。 做法:把 stdout 那一端變成機械事實,不是文字判斷。 - `fd_is_devnull(fd)`:fstat 問得出來的事實。刻意只認 /dev/null 這一種 (寫進檔案讀得回來、pipe 有下游,只有 /dev/null 物理上找不回來)。 - `where` 把 `shown` 記進戳記;順便替前 3 名補內文摘要——今天的實害正是 「光看標題看不出是同一條線」(#104 的標題完全沒提 ingest)。 - `new` 的閘一之二:命中 >0 且 shown 為假就擋,並把那份被丟掉的清單 交到眼前;只要 stderr 不是 /dev/null,這一次的擋就記成「看過了」, 重下一模一樣的指令就會過——成本落在「看」,不落在「寫」。 - 刻意排在閘二**之前**:否則第一次就帶 `--not-a-comment "理由"` 的人 永遠看不到候選清單,理由是閉著眼睛寫的。 - 舊格式戳記(沒有 shown 欄位)當成沒看過(fail-closed)。 不該擋的(測試覆蓋):沒命中就不吵、看過了就不吵、`--not-a-comment` 既有欄位照舊、不判斷理由寫得好不好(leo 2026-08-17 已證偽文字層判準)。 測試 17/17:scripts/test-ticket-where-seen-guard.sh(離線,不打真實 Gitea、 不留測試票;離開碼 2=擋、1=放行走到網路才炸)。docs/TESTING.md 新增 A13。 plugin.json 升到 0.8.0——版本沒動=沒有人吃得到。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,24 @@ bash scripts/test-ticket-api-bypass-guard.sh
|
||||
`⏭️ SKIP`,不算失敗,但也不算驗過)。
|
||||
**失敗**:任何一條不符,特別看「不該擋」那幾條——誤攔比漏擋更該修。
|
||||
|
||||
### A13 — 搜尋戳記要證明「看過」,不是「跑過」:17 條
|
||||
```
|
||||
bash scripts/test-ticket-where-seen-guard.sh
|
||||
```
|
||||
**該看到**:`通過 17 條,失敗 0 條`。全程離線(`TICKET_HOST` 指到連不上的位址:
|
||||
離開碼 2 =被閘擋、離開碼 1 =閘全放行走到網路才炸),**不打真實 Gitea、不留測試票**。
|
||||
|
||||
**它在守什麼**(inkstone/ISEP#72 → comment 4873,2026-08-27 實犯):
|
||||
`ticket where … >/dev/null` 之後 `ticket new`——戳記寫成功了,命中的 72 張一眼沒看,
|
||||
於是開出 `arcrun-rag#147`,而第一名 `arcrun-rag#104` 是同一件事、已經開了 13 天。
|
||||
|
||||
**失敗**:
|
||||
- 「★」那兩條紅 ⇒ 今天這個形狀會再發生一次(尤其第二條:先寫好 `--not-a-comment`
|
||||
理由就能閉著眼睛開票)
|
||||
- 「不該擋」3 條任一紅 ⇒ **誤攔**,這比漏擋嚴重——沒命中也吵、看過了還吵,
|
||||
人就學會忽略它
|
||||
- 最後那組 `fd_is_devnull` 紅 ⇒ 判準從「fstat 問得出來的事實」滑回猜文字
|
||||
|
||||
### A11 — 討論串裡的任務要長成子票:22 條
|
||||
```
|
||||
bash scripts/test-comment-carries-task-guard.sh
|
||||
@@ -265,6 +283,7 @@ B2(信標那行)/B3(setup 輸出)/B4(閘的訊息)三個畫面
|
||||
| A2 版本三處一致 | 總管 | ✅ |
|
||||
| A3 打 tag 閘 | 總管 | ✅ 3/3 |
|
||||
| **A4 新增 Gitea 東西側門閘** | 總管 | ✅ 24/24(2026-08-27,inkstone/ISEP#72) |
|
||||
| **A13 戳記證明看過不是跑過** | 總管 | ✅ 17/17(2026-08-27,inkstone/ISEP#72→4873) |
|
||||
| A5 搜尋跨 repo | 總管 | ✅ |
|
||||
| A6 標籤對齊+冪等 | 總管 | ✅ 14 repo,第二次 0/0 |
|
||||
| **A9 人閘警察管路** | 總管 | ✅ 14/14(2026-08-26) |
|
||||
|
||||
Reference in New Issue
Block a user