716ef407fe
Wire Portal and TKMind proxy to loopback Goose v1.49 via canary env blocks, with verification scripts, Phase 2/3 evidence baselines, and rollback runbooks so local upgrade stays isolated from stable 1.41 and production. Co-authored-by: Cursor <cursoragent@cursor.com>
3.2 KiB
3.2 KiB
Goose v1.49 本地升级 Phase 0 基线
范围:仅本机 loopback,禁止连接 103/105 或生产库。 决策表:TKMIND_V1_49_MIGRATION.md
Stable 基线(103 生产,只读对照)
| 项 | 值 |
|---|---|
| goosed 版本 | goose-server 1.41.0 |
| 二进制 | tkmind_go-native/releases/goosed-20260729-v141-m1 |
| 源码分支 | upgrade/goose-1.47(TKMind 补丁) |
| 端口 | 18006–18014(native launchd × 9) |
| Session PG | memind_sessions @ 127.0.0.1:5432(103) |
| 记录时间 | 2026-09-08 |
v1.49 候选(本地隔离)
| 项 | 值 |
|---|---|
| worktree | /Users/john/Project/tkmind_go-v149 |
| 分支 | upgrade/v1.49-tkmind |
| upstream tag | v1.49.0 |
| 端口 | 18049 |
| 启动命令 | goose serve --tls(v1.49 已移除 goosed/goose-server,改为 ACP HTTP/WS) |
| Session PG | goose_sessions_v149_dev @ 127.0.0.1:5432 |
| XDG 隔离 | /tmp/goose-v149-runtime/{config,data,state,cache} |
| Portal 目标 | TKMIND_API_TARGET_V149=https://127.0.0.1:18049(独立 H5 进程时使用) |
Memory 本地策略(Phase 1 初始)
MEMORY_BACKEND=legacy
MEMORY_VECTOR_ENABLED=0
MEMORY_AGENT_INJECTION_MODE=off
MEMORY_LIFECYCLE_ENABLED=0
MEMORY_CANDIDATE_ENABLED=0
upstream / v1.49 goosed 不得写入 MySQL 业务记忆;只走现有 Portal conversation-memory owner。
Phase 0 检查项
- 记录 stable 1.41 基线
- 拉取 upstream
v1.49.0tag - 创建
upgrade/v1.49-tkmindworktree - 创建隔离 PG 库
goose_sessions_v149_dev - 编译 v1.49 goosed 并通过
GET /status(goose 1.49.0@:18049→ok) - 移植 legacy REST(
/agent/start、/sessions、/sessions/{id}/events|reply|cancel等,见tkmind_compat) - 导出 Memory manifest(
node scripts/export-goose-v149-memory-manifest.mjs→docs/baselines/goose-v149-memory-latest.json) - 保存 runtime 基线样本(
node scripts/capture-goose-v149-baseline.mjs→docs/baselines/) - Canary 开关与一键回滚(
scripts/switch-goose-v149-canary.sh,见 goose-v149-canary-runbook.md)
Phase 1 验证
node scripts/run-goosed-v149-phase2.mjs # Phase 2 聚合(cost + drift + phase1)
node scripts/check-goosed-v149-cost-smoke.mjs # Finish token_state / billing
node scripts/compare-goose-v149-memory-manifest.mjs
bash scripts/switch-goose-v149-canary.sh on all # 全量 canary 后重启 pnpm dev
bash scripts/ensure-goose-v149-vendor.sh # 离线 vendor(GitHub 不可用时)
bash scripts/build-goosed-v149-local.sh # 编译 goose CLI(首次较久)
bash scripts/ensure-goose-v149-local-db.sh
bash scripts/run-goosed-v149-local.sh # goose serve @ 18049
curl -sk https://127.0.0.1:18049/status
v1.49 已通过
crates/goose/src/acp/tkmind/重移植 legacy REST;聚合验证:node scripts/check-goosed-v149-all.mjs。
禁止项
- 不得使用生产
DATABASE_URL、GOOSE_SESSION_DB_URL(含 RDS / 103 / 105 地址) - 不得修改 103 launchd、105 nginx、Portal
:8081 - 不得在本阶段删除 1.41 定制或
:18036DeepSeek 代理