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:
2026-08-12 15:07:55 +08:00
parent 5a140faf1f
commit 5322103459
3 changed files with 20 additions and 15 deletions
+2
View File
@@ -353,9 +353,11 @@ func TestExtractorEmptyBlocksNonTextDirect(t *testing.T) {
// ── t181:預設一律走 Workers AI(免金鑰)────────────────────────────────────── // ── t181:預設一律走 Workers AI(免金鑰)──────────────────────────────────────
// //
// leo 2026-08-04 特別交代(這是本測存在的理由): // leo 2026-08-04 特別交代(這是本測存在的理由):
//
// 「default 用 Workers AI,你要用 Gemini 要**特別去選取**,**不管你現在是否有填金鑰**」 // 「default 用 Workers AI,你要用 Gemini 要**特別去選取**,**不管你現在是否有填金鑰**」
// 「只要更新版本,就已經 default workers AI 了,除非去一個地方切換你指定的 AI 來源」 // 「只要更新版本,就已經 default workers AI 了,除非去一個地方切換你指定的 AI 來源」
// 「不然我會有很多質疑,**花在解釋為什麼 Gemini 不管用上**」 // 「不然我會有很多質疑,**花在解釋為什麼 Gemini 不管用上**」
//
// ⇒ 判準是 ExtractorExplicit(使用者主動選過),**不是**「有沒有金鑰」。 // ⇒ 判準是 ExtractorExplicit(使用者主動選過),**不是**「有沒有金鑰」。
func TestT181DefaultsToWorkersAI(t *testing.T) { func TestT181DefaultsToWorkersAI(t *testing.T) {
cases := []struct { cases := []struct {
+6 -3
View File
@@ -18,6 +18,7 @@
// · 之後任何人新增第 N 個寫檔點——沒有任何機制會提醒他要帶標記 // · 之後任何人新增第 N 個寫檔點——沒有任何機制會提醒他要帶標記
// //
// ⇒ 這正是「規則寫了、卻沒有機制驗證有沒有照做」的同款(頂層 CLAUDE.md 記過 // ⇒ 這正是「規則寫了、卻沒有機制驗證有沒有照做」的同款(頂層 CLAUDE.md 記過
//
// history-firstKBDB-firststage-first 三個同形狀的事故)。 // history-firstKBDB-firststage-first 三個同形狀的事故)。
// //
// ══════════════════════════════════════════════════════════════════════════ // ══════════════════════════════════════════════════════════════════════════
@@ -120,8 +121,10 @@ func snapshotTree(t *testing.T, root string) map[string]footprintEntry {
return out return out
} }
// sortedKeys 讓 t.Log 印出來的清單順序穩定(人要拿它當實測輸出貼進 issue)。 // sortedFootprintKeys 讓 t.Log 印出來的清單順序穩定(人要拿它當實測輸出貼進 issue)。
func sortedKeys(m map[string]footprintEntry) []string { // 名字不叫 sortedKeysconvert_table.go 已經有一支同名的(吃 map[string][]byte),
// 同一個 package 裡不能重名。
func sortedFootprintKeys(m map[string]footprintEntry) []string {
ks := make([]string, 0, len(m)) ks := make([]string, 0, len(m))
for k := range m { for k := range m {
ks = append(ks, k) 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) { func logTree(t *testing.T, title string, snap map[string]footprintEntry) {
t.Helper() t.Helper()
t.Logf("──── %s%d 個檔案)────", title, len(snap)) t.Logf("──── %s%d 個檔案)────", title, len(snap))
for _, k := range sortedKeys(snap) { for _, k := range sortedFootprintKeys(snap) {
t.Logf(" %s", k) t.Logf(" %s", k)
} }
} }