Files
correx/HANDOFF-codex.md
T
kami ae0b23df3f chore: sprint handoffs + Lsp4j runner live-proof
Add per-agent sprint handoff docs (Sonnet/Codex/opencode) mapping the
1-week sprint's two goals to concrete Vikunja tasks. Kept in repo root
(docs/ is gitignored). Includes hanging Lsp4jDiagnosticsRunner change +
its live-proof test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rdo9fe7SujNVeyZA8YkpkD
2026-07-21 00:36:25 +04:00

2.3 KiB

Handoff — Codex

Sprint goal focus: Well-specified, self-contained bugs with tight file pointers. Low ambiguity — the spec is in each Vikunja ticket.

Read the full task body in Vikunja (project 4) before starting each — get_task_details <id>. Mark each Doing on start, and commit green work referencing the task # when done.

Tasks

#266 — Retire pm.repoRoot(), unify session workspace-root to ONE source

The workspace root is plumbed through THREE sources that can diverge (boot-static ProjectMemoryService.repoRoot(), per-session boundWorkspace?.workspaceRoot, sessionConfig.workspace?.workspaceRoot). A stopgap already made sessionWorkspaceRoot(sessionId) read the bound value; this task RETIRES the vestigial boot root. Collapse to canonical boundWorkspace?.workspaceRoot (invariant #9, replay-safe). ⚠️ The shared L3 namespace project:<repoRoot> is used by ProjectMemoryService AND ArchitectContradictionChecker AND the concept compiler — all must switch together or memory keys drift. Pointers: ServerModule.kt, memory/ProjectMemoryService.kt, BootWorkspace.kt, Main.kt, workspace/WorkspaceResolver.kt, git/GitRunBranchTransport.kt. Do this before #189.

#189 — Server repo-map scan uses cwd, not session workspace_root

Symptom of the same #266 divergence (repoRoot() vs bindWorkspace). Read #266 first — its canonical-root fix may absorb this. Confirm #189 still needs its own change after #266 lands; if not, close it referencing #266.

#191 — Resolve/validate generated manifest dependencies before plan lock or scaffold accept

A scaffolded manifest (e.g. package.json) needs its deps resolvable / a setup step (npm ci) before the build gate can pass — otherwise the gate fires into absent node_modules. Land this EARLY — Sonnet's #263/#267 live run depends on it going green.

#264 — Review loop can't converge

The review loop loops back changes_requested indefinitely with scope drift. Bound iterations + anchor the reviewer to the fixed DoD so it can't keep expanding scope. Kill the drift.

#40 — Build-gate: toolchain-aware command resolution

A flat command alias can't serve two toolchains (e.g. npm vs gradle). Resolve build commands per detected toolchain. Related to #263 (the build gate) and #191.