This file is the fastest entry point for the next Go implementation session now that the v1 feature set and MCP SDK migration are already in place for codex-mem.
Audience:
- maintainers continuing Go implementation work
- contributors starting a new coding session in this repository
Use this when:
- you are about to implement or extend the Go codebase
- you want the shortest path back into active development work
- you need a current restart point instead of the original Phase 1 bootstrap guidance
Do not use this for:
- normal user onboarding
- MCP client registration
- packaged-binary operations
Primary references:
The repository already has:
- the v1 scope, session, note, handoff, retrieval, privacy, and AGENTS tool surface implemented
- SQLite storage, embedded migrations, and FTS-backed retrieval working
- direct named conformance coverage for the current v1 matrix scenarios (
C01throughC12) - conformance and hardening coverage for the shipped v1 behavior
serveandserve-httpboth wired throughmodelcontextprotocol/go-sdkdoctor --json, stdio smoke test, HTTP smoke test, and readiness check in place- the old hand-written MCP runtime removed from the active code path
Do not restart from early-project tasks such as:
- Go module initialization
- repository layout selection
- SQLite driver or migration-style selection
- MCP library selection
- basic MCP transport/runtime scaffolding
Those decisions are already made and implemented.
Current standing decisions worth preserving:
- repository-local configuration loads from
configs/ - configuration loading uses
viper - SQLite uses
modernc.org/sqlite modelcontextprotocol/go-sdkis the only MCP runtime path- do not point
GOCACHEinto the repository workspace; if a cache override is needed for local verification, use a temp directory outside the project tree
Start from a new post-v1 feature or operator-facing follow-up slice, not from the original Phase 1 foundation plan.
Good default shape:
- read the current tracker to confirm the active target and any open handoff notes
- choose one small user-visible or operator-visible improvement now that the baseline and conformance matrix are already in place
- implement it without changing the existing eleven-tool surface unless that change is intentional
- keep
go test ./..., the readiness/smoke checks, and the named conformance cases green - update the tracker and this kickoff doc if the restart guidance changes again
If the next session touches MCP behavior:
- extend the SDK-backed path instead of adding a parallel custom runtime
- preserve the existing handler/domain boundary in
internal/mcp/handlers.go - preserve the
/mcpHTTP entrypoint and origin-allowlist behavior unless the change explicitly targets them - verify compatibility with:
go test ./...go run ./scripts/mcp-smoke-testgo run ./scripts/http-mcp-smoke-testgo run ./scripts/readiness-check
Read in this order:
- Go Development Tracker
- Go Implementation Plan
- the relevant spec file under docs/spec/ for the feature you are changing
- MCP Integration if the work touches stdio or HTTP behavior
Use a prompt like:
Read docs/go/maintainer/dev-kickoff.md and docs/go/maintainer/development-tracker.md, confirm the next feature slice, implement it on top of the existing go-sdk-based MCP runtime, and update the tracker as you go.