Skip to content

enhancement: import-markdown CLI 過程監控 — 預設顯示相關 log #715

@jlin53882

Description

@jlin53882

標題

enhancement: import-markdown CLI 過程監控 — 預設顯示相關 log

分類

enhancement / CLI

嚴重程度

low(功能正常運作,但缺少過程監控)

問題描述

import-markdown CLI 執行時缺乏過程 log,使用者無從確認:

  • 掃描到哪些檔案?
  • 跳過了哪些項目?原因為何(長度不足、格式不符,去重命中)?
  • 成功匯入了哪些?
  • 失敗的原因是什麼?

目前祇有最後一行 Summary,無法追蹤進度。

預期行為

執行時能看到每個階段的相關 log,例如:

[scan] found 8 markdown files across 2 workspace(s):
  [scan] [agent-1] /path/to/agent-1/memory/2026-05-01.md
  [scan] [agent-2] /path/to/agent-2/memory/2026-05-01.md
[scan] reading: /path/to/agent-1/memory/2026-05-01.md
[scan] reading: /path/to/agent-2/memory/2026-05-01.md
[import] parsed 120 entries from 8 file(s)
[import] dedup check: enabled
  [skip] dedup [agent-1]: 記得買牛奶
[import] 115 entries need embedding (5 dedup hits)
[import] embedded batch 1/12 (10 entries)
[import] stored batch 1 (100 entries, total: 100)
...
Memory Import Status:
• Files found: 8
• Entries processed: 120
• Imported: 115
• Skipped (too short): 5
• Skipped (dedup): 5
• Embed batches: 12
• bulkStore calls: 2
• Elapsed: 3421ms

原則:相關 log 預設顯示,不需要 --verbose 之類的開關。

目前進度

✅ 已完成(PR #735

實作內容 說明
Phase 1a 平行讀取多個檔案 (Promise.all) + [scan] found N files across X workspace(s): + 逐檔 [scan] [scope] filepath
Phase 1b 解析 bullet lines,收集至 allEntries + [scan] reading: filepath
Phase 2a batchSize 控制並行 retriever.retrieve() 做 dedup check
Phase 2b embedBatchPassage() + bulkStore() + FLUSH_THRESHOLD=100
--no-dedup dedup 預設啟用,可用 --no-dedup 禁用
--batch-size 控制每批 embed 數量(預設 10)
backup dir openclaw.jsonhome 欄位解析,fix path=undefined 當機
回傳值 skippedShort, skippedDedup, errorCount, elapsedMs
skipped 語意 dedup hit 同時計入 skippedskippedDedup(PR #719 語意對齊)
Summary 格式 Memory Import Status: + Files found:Entries processed:Skipped (too short):Skipped (dedup):Errors:Embed batches:bulkStore calls:Elapsed:
Dry-run summary 完整 Memory Import Status 格式 + [DRY-RUN] No entries were actually imported.
測試 19 tests pass, 0 fail ✅

❌ 已關閉(被 PR #735 吸收)

完整實作對照表

功能 PR #719 PR #720 PR #733 PR #735
dedup 預設開啟
--no-dedup flag
retrieve() 取代 bm25Search
skippedShort/skippedDedup/errorCount 回傳
Log 格式對齊([scan][skip] dedup [scope]: ✅ 對齊
Phase 1 平行讀檔
Phase 2a 批次 dedup
Phase 2b 批次 embed + bulkStore
batch-size 參數
backup dir openclaw.json 解析
skipped 包含 dedup hits(PR #719 語意) ⚠️ ⚠️ ✅ 對齊
Scan log(Phase 1a/1b) ✅ 對齊
Summary Memory Import Status: 格式 ✅ 對齊

已知的後續優化方向

相關 Issue / PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions