fix(collector): 修好 #60 的編譯——測試用的 sortedKeys 與 convert_table.go 撞名
上一批把修法寫完了但沒編譯過:vault_footprint_test.go 自己定義了一支 sortedKeys,而 convert_table.go 早就有同名的(吃 map[string][]byte), 同一個 package 裡不能重名。改名成 sortedFootprintKeys,並順手把本分支 碰過的三個檔 gofmt 過。 驗收(實跑): bash collector/verify-60.sh → ✅ 全部通過(五關) go test -count=1 ./... → ok collector 9.6s / ok supervisor 12.2s Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -271,9 +271,9 @@ func TestMultiAccountInheritsExtractor(t *testing.T) {
|
||||
|
||||
// 機器層有 Extractor+GeminiAPIKey;帳號層 AccountConfig 無這些欄位(正是 t108 場景)
|
||||
cfg := &DirectConfig{
|
||||
Manifest: filepath.Join(t.TempDir(), "m.json"),
|
||||
Library: "kb",
|
||||
Extractor: "gemma", ExtractorExplicit: true,
|
||||
Manifest: filepath.Join(t.TempDir(), "m.json"),
|
||||
Library: "kb",
|
||||
Extractor: "gemma", ExtractorExplicit: true,
|
||||
GeminiAPIKey: "k-test",
|
||||
CardIngestWF: "rag_ingest_card",
|
||||
IngestWF: "rag_ingest_direct",
|
||||
@@ -329,7 +329,7 @@ func TestExtractorEmptyBlocksNonTextDirect(t *testing.T) {
|
||||
// t182:明示「使用者選過、但沒有可用引擎」=真正的無萃取器狀態。
|
||||
// (不能只寫 Extractor:""——那現在會被正規化成 workers-ai,測不到這條防禦閘。)
|
||||
Extractor: "gemma", ExtractorExplicit: true, GeminiAPIKey: "",
|
||||
IngestWF: "rag_ingest_direct",
|
||||
IngestWF: "rag_ingest_direct",
|
||||
RemovedWF: "rag_takedown_direct",
|
||||
MaxRemoved: DefaultMaxRemovedRatio,
|
||||
}
|
||||
@@ -353,9 +353,11 @@ func TestExtractorEmptyBlocksNonTextDirect(t *testing.T) {
|
||||
// ── t181:預設一律走 Workers AI(免金鑰)──────────────────────────────────────
|
||||
//
|
||||
// leo 2026-08-04 特別交代(這是本測存在的理由):
|
||||
// 「default 用 Workers AI,你要用 Gemini 要**特別去選取**,**不管你現在是否有填金鑰**」
|
||||
// 「只要更新版本,就已經 default workers AI 了,除非去一個地方切換你指定的 AI 來源」
|
||||
// 「不然我會有很多質疑,**花在解釋為什麼 Gemini 不管用上**」
|
||||
//
|
||||
// 「default 用 Workers AI,你要用 Gemini 要**特別去選取**,**不管你現在是否有填金鑰**」
|
||||
// 「只要更新版本,就已經 default workers AI 了,除非去一個地方切換你指定的 AI 來源」
|
||||
// 「不然我會有很多質疑,**花在解釋為什麼 Gemini 不管用上**」
|
||||
//
|
||||
// ⇒ 判準是 ExtractorExplicit(使用者主動選過),**不是**「有沒有金鑰」。
|
||||
func TestT181DefaultsToWorkersAI(t *testing.T) {
|
||||
cases := []struct {
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ func TestTidy_RenamesLegacyCardsOnly(t *testing.T) {
|
||||
// 使用者自己的東西(絕對不准動)
|
||||
mine := map[string]string{
|
||||
"journals/2026_08_10.md": "我的日記",
|
||||
"pages/讀書筆記.md": "我的筆記",
|
||||
"pages/讀書筆記.md": "我的筆記",
|
||||
}
|
||||
for rel, body := range mine {
|
||||
p := filepath.Join(root, filepath.FromSlash(rel))
|
||||
|
||||
+10
-7
@@ -18,7 +18,8 @@
|
||||
// · 之後任何人新增第 N 個寫檔點——沒有任何機制會提醒他要帶標記
|
||||
//
|
||||
// ⇒ 這正是「規則寫了、卻沒有機制驗證有沒有照做」的同款(頂層 CLAUDE.md 記過
|
||||
// history-first/KBDB-first/stage-first 三個同形狀的事故)。
|
||||
//
|
||||
// history-first/KBDB-first/stage-first 三個同形狀的事故)。
|
||||
//
|
||||
// ══════════════════════════════════════════════════════════════════════════
|
||||
// 所以這一批補的是「足跡測試」,不是再多一支點測
|
||||
@@ -120,8 +121,10 @@ func snapshotTree(t *testing.T, root string) map[string]footprintEntry {
|
||||
return out
|
||||
}
|
||||
|
||||
// sortedKeys 讓 t.Log 印出來的清單順序穩定(人要拿它當實測輸出貼進 issue)。
|
||||
func sortedKeys(m map[string]footprintEntry) []string {
|
||||
// sortedFootprintKeys 讓 t.Log 印出來的清單順序穩定(人要拿它當實測輸出貼進 issue)。
|
||||
// 名字不叫 sortedKeys:convert_table.go 已經有一支同名的(吃 map[string][]byte),
|
||||
// 同一個 package 裡不能重名。
|
||||
func sortedFootprintKeys(m map[string]footprintEntry) []string {
|
||||
ks := make([]string, 0, len(m))
|
||||
for k := range m {
|
||||
ks = append(ks, k)
|
||||
@@ -133,7 +136,7 @@ func sortedKeys(m map[string]footprintEntry) []string {
|
||||
func logTree(t *testing.T, title string, snap map[string]footprintEntry) {
|
||||
t.Helper()
|
||||
t.Logf("──── %s(%d 個檔案)────", title, len(snap))
|
||||
for _, k := range sortedKeys(snap) {
|
||||
for _, k := range sortedFootprintKeys(snap) {
|
||||
t.Logf(" %s", k)
|
||||
}
|
||||
}
|
||||
@@ -151,9 +154,9 @@ func newVaultWithRealJournals(t *testing.T) (root string, preexisting map[string
|
||||
mustMkdir(t, filepath.Join(root, "journals"))
|
||||
|
||||
preexisting = map[string]string{
|
||||
"logseq/config.edn": "{:default-home {:page \"contents\"}}",
|
||||
"pages/contents.md": "- 我的目錄頁",
|
||||
"pages/讀書筆記.md": "- leo 自己寫的讀書筆記",
|
||||
"logseq/config.edn": "{:default-home {:page \"contents\"}}",
|
||||
"pages/contents.md": "- 我的目錄頁",
|
||||
"pages/讀書筆記.md": "- leo 自己寫的讀書筆記",
|
||||
"journals/2026_08_10.md": "- 今天想到的事,這是我自己寫的日記",
|
||||
"journals/2026_08_11.md": "- 昨天的日記",
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user