feat: ingest 進度可見性 + Ctrl-C 安全回復 (Closes #2)

issue #2:--all-pending 長時間本地 Ollama 攝入全程靜默,使用者不確定有沒有在
跑、又不敢中斷。三處補強:

- 進度可見:每份來源印 [i/N] 起始行、長文件逐分段印「分段 k/n」、每個
  knowledge-item 印「↳ 新增/更新」、完成印「✓」,全部 flush=True 即時顯示。
  最會靜默的分段迴圈正是重點回報處。
- Ctrl-C 安全:KeyboardInterrupt 不是 Exception 子類,原本會略過善後、把使用者
  留在 ingest 分支且無指引。改為獨立攔截——commit 在迴圈之後,故 main 必然未受
  影響——印出可照做的回復指令(git checkout main && git stash -u &&
  git branch -D <branch>),以結束碼 130 收場。

selfcheck_ingest 新增:驗進度標記出現;驗中斷後 main HEAD 未動、停在 ingest
分支、且照文件回復指令實測能回到乾淨 main(驗結果可用,非字串存在,§13.4)。
README §7 補一列。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
LittleYellow
2026-07-23 23:45:59 +08:00
parent 04f4fd5ead
commit 4add7fa9d9
3 changed files with 73 additions and 9 deletions

View File

@@ -210,6 +210,7 @@ mcp/server.py # MCP 薄殼
| lint 報 `source_ref 不在 manifest` | 跑 `tools/diag_refs.py` 分類成因:帳本掉條目→補登走 PR§14.3路徑字串岔開→修規則§12別逐頁改。 |
| `LLM 輸出驗證失敗(含 fallback` | 本地模型連主模型 + fallback 都無法產出合規 JSON檢查 Ollama 是否在線、模型是否拉好。 |
| `push 失敗(無 remote 或離線)` | 正常;分支已保留本地,手動 push 後開 PR。 |
| ingest 跑很久、看不到進度/想中斷 | 已逐來源 `[i/N]` 逐分段回報進度。Ctrl-C 安全main 不受影響,中斷時會印回復指令(`git checkout main && git stash -u && git branch -D <branch>`),續跑 `--all-pending` 自動接續。 |
---