From acb8ccf3c1304085654ac5c9669a16e29855af5e Mon Sep 17 00:00:00 2001 From: VinPropane Date: Sat, 25 Apr 2026 19:28:28 -0400 Subject: [PATCH] =?UTF-8?q?NEO-26:=20fix=20D6=20rationale=20=E2=80=94=20in?= =?UTF-8?q?teractables=20out=20of=20scope=20by=20ticket=20shape,=20not=20N?= =?UTF-8?q?EO-25=20status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/NEO-26-implementation-plan.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/plans/NEO-26-implementation-plan.md b/docs/plans/NEO-26-implementation-plan.md index 03609ce..b0720e1 100644 --- a/docs/plans/NEO-26-implementation-plan.md +++ b/docs/plans/NEO-26-implementation-plan.md @@ -27,7 +27,7 @@ **Out of scope (per Linear / backlog)** - Full prompt / party UI; wire protobuf events. -- **Interactable** primary selection (NEO-25 catalog) — this story is **target lock** only unless a trivial extension falls out naturally (if not, say “none” interactable events in module doc follow-up). +- **Interactable** focus / primary selection as `SelectionEvent` — **target lock** only for this ticket (see D6); catalog exists regardless of NEO-25 lifecycle. - Changing server **`TargetState`** contracts (NEO-23); new HTTP routes. ## Acceptance criteria checklist @@ -93,4 +93,4 @@ | D3 — Non-tab `request_select_target_id` | Use cause **`tab`** (same literal as Tab path; no `direct_select`). | | D4 — Consumer | **Print only** behind `@export` flag on emitter; no HUD panel in NEO-26. | | D5 — Emit rule (v1) | **Lock id only:** emit `SelectionEvent` only when normalized **`lockedTargetId`** changes; **`validity`** / sequence updates without id change → no event (HUD keeps using `target_state_changed`). *Rationale (2026-04-25):* matches backlog “previous / next” id story, smallest payload, clear E1.M4 hook for cast target; avoids conflating soft-lock range telemetry with selection changes. Override if you want validity on this signal too. | -| D6 — Interactables | **Out of scope:** target lock only for NEO-26; interactable selection events belong with NEO-25 follow-up or a dedicated thin ticket. *Rationale:* E1M3-04 backlog is combat-target selection; folding interactables now overlaps catalog projection and slips scope. | +| D6 — Interactables | **Out of scope:** target lock only for NEO-26. *Rationale:* Linear / E1M3-04 acceptance is about **combat target** lock changes (`SelectionEvent` for tab-target), not interactable focus or “use now” flow ([NEO-9](NEO-9-implementation-plan.md) / catalog). Descriptor work ([NEO-25](NEO-25-implementation-plan.md)) can be **done** and this story still stays narrow: a unified “all selection kinds” bus would be **extra contract design** (payload + causes + wiring) that this ticket never asked for—not a dependency on NEO-25 being open. |