LittleYellow
|
4add7fa9d9
|
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>
|
2026-07-23 23:45:59 +08:00 |
|
LittleYellow
|
04f4fd5ead
|
feat: 新增 diag_refs — source_ref↔manifest 對帳診斷
lint 的「source_ref 不在 manifest」只報對不上、不辨成因。diag_refs 把每個
對不上的 source_ref 分成五類(hash 不符/路徑字串岔開/檔名 hash 後綴岔開/
檔在磁碟未登記/完全無對應),各附修法,讓「補帳本(§14.3)」與「修規則
(§12)」的相反處置不再混為一談。純唯讀、結束碼 0/1,可當搬機或改 manifest
後的閘門。附 selfcheck 驗五型別分類、結束碼與零寫檔。README §3.3/§6/§7/§8 同步。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-23 23:45:23 +08:00 |
|
LittleYellow
|
b2eb4fbfa3
|
docs: 清除 markdown lint 警告(MD040 補語言標註、MD060 關閉)
- MD040:AGENTS.md 四處與 README.md 一處的 fenced code block 補上語言標註
(目錄樹與格式範例用 text,index.md / log.md 的範例用 markdown)。
- MD060:本專案文件表格一律按終端顯示寬度對齊(CJK 佔 2 欄),而 MD060 以
字元位置比對管線符號,對 CJK 無感,兩者不可能同時滿足。選擇保留顯示寬度
對齊(人類在編輯器裡讀得順),以 .markdownlint.jsonc 關閉該規則並註明理由。
順帶修正 AGENTS.md §3.1 表格 entity 列的對齊——該列混入 ASCII 的 API,
原本比其他列短 1 欄。
未處理 MD013(行長 > 80):VS Code 的 markdownlint 擴充預設不啟用此規則,
且 §3.1 表格在維持顯示對齊的前提下無法壓到 80 字元以內。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-22 07:35:44 +08:00 |
|
LittleYellow
|
0b4c2bbb15
|
修復中文路徑 preflight 與 BM25 核心詞落空,測資改照現實建
兩個 bug 同源於自檢測資「照能過建、不照現實建」:
- ingest preflight:git status --porcelain 預設會把含中文或空格的路徑加引號
轉義,raw/ 白名單比對因此失效,中文檔名的 convert 產出被誤判為 raw/ 以外的
未提交變更而中止攝入。舊測資用 ASCII 檔名,整條路徑從未被走過。
- search:BM25Okapi 的 idf 在 df >= N/2 時 <= 0(rank_bm25 對負 idf 的替代值
epsilon x average_idf 在 average_idf 為負時同樣為負),與 search() 的 s > 0
過濾相乘,會讓「每頁都提到的核心詞」查詢全數落空——知識庫愈小、詞愈核心
愈嚴重,MCP 的 search_wiki 一併受害。改用 Lucene 式恆正 idf。
舊測資每個查詢詞都只出現在一頁(df=1),恰好避開此配置。
變更:
- tools/ingest.py:preflight 比對前剝除 git 的轉義引號
- tools/search.py:_BM25 子類覆寫 _calc_idf 為 log(1 + (N-df+0.5)/(df+0.5))
- tools/selfcheck_ingest.py:新增 preflight 中文檔名放行 / 非 raw 擋下的檢查
- tools/selfcheck_search.py:新增與既有頁共用核心詞的測資,鎖住 idf 退化
- tools/convert/selfcheck.py、tools/selfcheck_lint.py:測資檔名改中文+空格
- AGENTS.md §13.4:新增「測資照現實建,不是照能過建」規則
- README.md §3.2:補 convert 產出應保持未提交、由 ingest 一併 commit 的流程
驗證:四個自檢全數通過;分別移除兩個修法後對應檢查會失敗。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-22 07:21:45 +08:00 |
|
LittleYellow
|
1d1454e1b9
|
docs: 新增 README 使用手冊
操作導向的安裝/使用說明(環境、四大工作流、MCP、疑難排解);
schema 與規則仍以 AGENTS.md 為正本,不複製其內容(§11 雙棧規則)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-21 07:00:21 +08:00 |
|