# v2.2 implementation plan: what the hyperborea deploy exposed > **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:** two small gaps found on 2026-09-25 when crossbar went live on hyperborea. - **01-route-templates** — `PLAN.md`'s one-route-per-OpenCode-instance launcher produces route names the config has never seen, and unknown routes are 404. A route named `opencode-*` now serves every `opencode-`; leases and accounting stay per concrete route. Given: `config/config_v22_test.go`, `proxy/template_test.go`, `admin/admin_template_test.go`. - **02-broadcasts** — titan roams between two Wi-Fi networks and hyperborea is on both segments, so a wake target needs more than one broadcast address. Given: `wake/broadcasts_test.go` (+ `TestWakeBroadcasts` in the config test above). **Order matters:** the config given test covers both tasks, so `internal/config` is red on one method between task 01's commit and task 02's. Task 01's text says so; the gate runs after 02. **How this plan was made:** acceptance tests first, no reference implementation; the given tests compiled against a panic-only skeleton of the new names and failed on the v2.1 tree for the intended reasons. ## Global constraints - Everything in `AGENTS.md`. Branch `v2.2` from `master`. One task, one fresh OpenCode session, one commit. Given files are copied and never edited; earlier plans' given files stay protected. ## Changes during the run - 2026-09-25, task 01, first session: ten minutes circling the line budget — `config.go` was already at 401 lines and the task named no new file for the package. Owner fault: the task now creates `internal/config/route.go` (and allows `internal/proxy/route.go`). Session stopped and restarted on a clean tree. - 2026-09-25, task 02: the task told the implementer to modify `example.toml`, which is a v2 given file (protected). Owner fault — a replacement should have been given. The one-line change (the commented `broadcasts` list) is adopted as the v2.2 given copy of `example.toml`. - Both tasks first-gate: 01 in 21 min after the restart, 02 in 8 min. Task 02 edited `internal/config/identity.go` rather than `config.go` because that is where `Wake` lives (logged deviation, correct call — owner named the wrong file).