# v2.1 implementation plan: fixes found while running v2 > **For the implementing model:** do not work from this file. The owner gives you one task file at > a time. This file is the index for the owner and the reviewer. **Goal:** close the two defects and one gap found while v2 ran, without new features. - **01-cancel-record** — a delivered response is never recorded as a 499; cancellation is what the reverse proxy observed. Found 2026-09-25 by the intermittent `Errors:2` in `TestQueueFullIs503`; verified with a diagnostic build; the given `internal/proxy/served_test.go` reproduces it on every run. - **02-props-loaded-only** (to be written after v2 merges) — the poller asks `/props?model=X` only for models `/v1/models` lists as loaded, because llama-server's router autoloads a model named in that query (`models_autoload`). See the v2 README's note of 2026-09-25. - ~~03-timing-margins~~ — done by the owner directly (test-only work, no implementer task): the remaining ordering sleeps in `limiter_test.go`, `proxy_test.go` and `cancel_test.go` now wait on limiter state (`Queued`/`InFlight`); the one sleep left is a deliberate lower bound. Five clean `-race` runs of both packages except the 499 defect task 01 fixes. **How this plan was made:** acceptance tests first; no reference implementation. The given test for task 01 was run against the v2 tree (fails six of six) and against a throwaway fix that follows the task's rule (passes four full package runs with the v1 cancel tests); the throwaway was discarded. ## Global constraints - Everything in `AGENTS.md`. Branch `v2.1` from `master` after v2 merges. One task, one fresh OpenCode session, one commit. Given files are copied and never edited. ## Changes during the run (none yet)