mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-11-01 23:07:30 +00:00
批 1,不含 SDK 仓与目录改名。 - go.mod 第 1 行 module 路径 - 366 个 .go 文件的完整前缀 github.com/JianFeeeee/HomeAgent 机械替换 (857 处,仅完整前缀;展示名/注释里的 HomeAgent 字样留给批 5) - 未改:third_party 目录名、SDK 自身 go.mod module、go.mod replace 目标、 homed/waiter 可执行名、.hmap 后缀
54 lines
1.7 KiB
Go
54 lines
1.7 KiB
Go
package knowledge
|
||
|
||
import (
|
||
"log"
|
||
|
||
"github.com/JianFeeeee/HologramAgent/internal/knowledge"
|
||
)
|
||
|
||
// runKnowledgeMigration 是本迁移的真实实现(原 cmd/homed 的整块平移:
|
||
// 语句、日志文本、错误语义不变,只把 cfg 参数换成 root)。
|
||
func runKnowledgeMigration(root string) {
|
||
const (
|
||
// defaultApply = false ⇒ 启动时只扫描并报告,不改名。
|
||
defaultApply = false
|
||
// maxRenamePerRun 限制单次重命名数:给失控的目录规模设上限,
|
||
// 避免启动阶段被一次大迁移拖住。
|
||
maxRenamePerRun = 200
|
||
)
|
||
items, err := knowledge.PlanMigration(root)
|
||
if err != nil {
|
||
log.Printf("[homed] 知识库迁移扫描失败(跳过): %v", err)
|
||
return
|
||
}
|
||
need, illegal := 0, 0
|
||
for _, it := range items {
|
||
if it.Illegal {
|
||
illegal++
|
||
} else if it.NewName != "" {
|
||
need++
|
||
}
|
||
}
|
||
if need == 0 && illegal == 0 {
|
||
return
|
||
}
|
||
if illegal > 0 {
|
||
log.Printf("[homed] 知识库迁移:%d 条名称非法(含 .. / 点段 / 隐藏段),写入与删除均已拒绝,需人工处理", illegal)
|
||
}
|
||
if need == 0 {
|
||
return
|
||
}
|
||
log.Printf("[homed] 知识库迁移:%d/%d 条目录名待规范化(例:%s → %s)", need, len(items),
|
||
items[0].OldName, items[0].NewName)
|
||
if !defaultApply {
|
||
log.Printf("[homed] 知识库迁移:当前为只报告模式。确认清单后执行:homed-kb-migrate -root %s -apply", root)
|
||
return
|
||
}
|
||
if need > maxRenamePerRun {
|
||
log.Printf("[homed] 知识库迁移:需改名 %d 条超过单次上限 %d,本次只处理前 %d 条",
|
||
need, maxRenamePerRun, maxRenamePerRun)
|
||
}
|
||
applied, failed := knowledge.ApplyMigration(root, items, maxRenamePerRun)
|
||
log.Printf("[homed] 知识库迁移完成:成功 %d,失败 %d", applied, failed)
|
||
}
|