# TKMind v1.49 Port Ledger Worktree: `/Users/john/Project/tkmind_go-v149` · branch `upgrade/v1.49-tkmind` · upstream `v1.49.0` 决策与阶段见 Memind 仓库 [TKMIND_V1_49_MIGRATION.md](../Memind/TKMIND_V1_49_MIGRATION.md)。 ## Port queue (from upgrade/goose-1.47 → v1.49) | Priority | Path / module | Status | Notes | |----------|---------------|--------|-------| | P0 | `crates/goose/src/session/session_manager.rs` (PG) | done | `postgres_storage.rs` + env `GOOSE_SESSION_DB_URL`; schema v16 | | P0 | `crates/goose-server/src/routes/tkmind_compat.rs` | done | → `crates/goose/src/acp/tkmind/compat.rs` | | P0 | `POST /agent/start` + update_provider/session | done | `acp/tkmind/agent.rs` | | P0 | `GET /sessions/{id}/events` + `POST .../reply` + `POST .../cancel` | done | `acp/tkmind/session_events.rs` + `session_event_bus.rs` | | P1 | `platform_extensions/mod.rs` + projectmemory | done | harness bootstrap state | | P1 | `platform_extensions/developer/workspace_path.rs` | done | path isolation helpers for aider/openhands | | P1 | `platform_extensions/aider.rs` + `openhands.rs` | done | `aider__code` / `openhands__code`; smoke `check-goosed-v149-executors.mjs` | | P1 | sandbox-fs stdio MCP via `extension_overrides` | done | `GET /agent/tools` + `GET /sessions/{id}/extensions`; smoke `check-goosed-v149-sandbox-fs.mjs` | | P2 | `providers/inventory` custom_tkmind | done | declarative `/config/custom-providers` + `check-goosed-v149-provider.mjs` | | P2 | `deploy/coding_router.sh` | done | copied from tkmind_go 1.47 → `tkmind_go-v149/deploy/` | ## Milestone 1 - [x] `cargo build --release --package goose-cli --bin goose` (minimal mode) - [x] `bash Memind/scripts/run-goosed-v149-local.sh` → `curl -sk https://127.0.0.1:18049/status` = ok - [x] P0 routes compile and respond (`GET /sessions` → `{"sessions":[]}`) ## Milestone 2 - [x] PG session read/write on isolated DB (`schema_version=16` @ `goose_sessions_v149_dev`) - [x] sandbox-fs MCP load (`scripts/check-goosed-v149-sandbox-fs.mjs` → `sandbox-fs__write_file` etc.) - [x] one H5 `/agent/start` smoke on 18049 (`scripts/check-goosed-v149-agent-start.mjs`) - [x] `/sessions/{id}/reply` + `/sessions/{id}/events` SSE (`scripts/check-goosed-v149-reply-smoke.mjs`; provider optional — `Provider not set` Error validates bus) - [x] aider + openhands platform extensions (`scripts/check-goosed-v149-executors.mjs`)