Four silent failures the attention review found after #126 #128
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/attention-followups"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-ups to #126. The adversarial pass over that PR's comments kept reporting after it merged, and four of its findings were real. All four fail silently — nothing errors, nothing looks wrong in the DOM.
5 files, +100/−22.
1 · the workspace shell's tooltip never worked
titlewas passed to a lucide icon, which lands it on the<svg>. SVG has notitleattribute — a tooltip there needs a<title>child. And lucide'shasA11yPropcounts the key:…so passing it also dropped the
aria-hidden="true"the icon would otherwise carry, leaving an unnamed node in the accessibility tree. The attribute is present in the DOM and reads back fine; it just does nothing. Moving the tooltip to an HTML wrapper fixes both.2 ·
workingandidlecollapsed into each other under reduced motionThe two were separated by motion — a rotating ring against a still one. With the animation gone they were both green rings differing only in opacity, which is not a distinction. At rest
workingnow fills its centre and keeps a static halo: a different shape, not a brighter one.prefers-reduced-motionis a setting real operators run, and this is exactly the failure my own mock warned about when picking this idiom.3 · the guard beside it was reading the wrong CSS
Writing the test for #2 exposed it: app.css has more than one
prefers-reduced-motionblock now —startingbrought its own — so slicing from the first match read the wrong rules and then found the strings it wanted further down the file anyway. It passed for the wrong reason. Both tests now walk braces to the block that actually governs these marks.4 · the hover card printed one line from two populations
The blocked count includes the workspace shell;
runningand the denominator beside it exclude it.2 running of 2 · 3 waiting on youwas reachable. It gets its own row.Also
The CSS parity loop covered only the four attention states, while every value of the mark is a class name.
SESSION_MARKSis now the list andSessionMarkderives from it, sorunning/starting/stopped/erroredare pinned too — deleting any one of their rules now fails.Verification
Three mutations, three correct failures: removing the reduced-motion fill, deleting that block outright, and dropping a liveness rule from app.css each fail exactly the test that covers them.
Browser-verified: the tooltip sits on the wrapper with
aria-hidden="true"restored on the icon,workingcomputes filled-green againstidle's transparent ring under emulated reduced motion, and the card renderssessions 3 running of 3above a separatewaiting 2 on you.1496 tests,
tsc0 errors, eslint clean.Not taken
An exited workspace shell is told to "restart it from the ⋯ menu", but the shell's menu offers only Stop / Start shell agent, gated on the row existing rather than on the agent being up — and
SessionEnddoes not delete the row. That is a pre-existing gap this feature's wording is merely the first thing to point at, so it wants its own issue rather than a patch here.