Two owner fixes (refinement round 2, 2026-09-24) in the question
dock's ask questions (quiz untouched):
1. ESC ESCAPES THE OTHER TYPING: the ask's "Type your own answer…"
row auto-focuses its input on selection, and once in it there was
no way out — arrows moved the caret (the typing-surface guard), so
keyboard navigation was stranded. Esc in that input now blurs it
(focus falls to the page) and pins kbdIdx to the Other row, so:
the row STAYS selected (deselection is a deliberate act, never a
side effect), the typed text survives, the arrow walk resumes
immediately, and the row stays the walked row. stopPropagation
keeps the window chain from reading this Esc as abort-turn.
2. SPACE DESELECTS A SELECTED OTHER: the walk's Space on the Other
row selected it; now Space on an already-selected Other CLEARS
the pick — focus never drops back into the typing field (the
core's toggleOther has no single-select off-path; the off-path
lives in kbdAct, keeping `selected` intact in multi). Re-selecting
— walking back and Space, or a click — is the way back into the
field. Clicking the selected row keeps its old meaning (choose
Other); only the walk's Space gained the off-path, per spec.
3. MULTISELECT CHECK GLYPH BIGGER: the ✓ inside the multiselect
checkboxes drew at the 11px text-xs rung — small next to the 16px
box. Now text-base (14px on this app's ladder) + leading-none.
The single-select dot and the quiz's rows are unchanged. (Pinned
live: 14px computed in the 16px box; the span only mounts on a
checked row, so no static pin — noted in the render test.)
Live-verified on :3001 (fabricated ask chats, keyboard-only flows):
select via Space focuses the input; type; Esc → focus BODY, row
still selected, text kept; Space → deselected, focus stays out;
re-select → input focused again; listed option displaces in
single-select. Multi: Other coexists with checked options through
the whole sequence. 901/901.