Fix #31: emoji reaction icons + per-comment summary #40

Merged
crueber merged 2 commits from fix/issue-31 into main 2026-09-04 17:04:41 +00:00
Owner

Reaction picker buttons render unicode emoji glyphs (no new deps) with the wire words kept in aria-label/title; each opened/commented event renders its reaction_summary as an emoji+count chip row with toggle semantics; reaction_changed rows read e.g. reacted eyes on #0. Live update rides the existing reload()+SSE-invalidate path (verified in-browser). Decision appended to docs/features/02 Decisions. Tests: node --test 190 pass (incl. new reactions.test.js); real-browser dark+light with zero console errors. Known limitation: post-mutation refetch can lose a race against ccSWR stale cache serves on disk-starved hosts (follow-up with evidence to come).

Reaction picker buttons render unicode emoji glyphs (no new deps) with the wire words kept in aria-label/title; each opened/commented event renders its reaction_summary as an emoji+count chip row with toggle semantics; reaction_changed rows read e.g. reacted eyes on #0. Live update rides the existing reload()+SSE-invalidate path (verified in-browser). Decision appended to docs/features/02 Decisions. Tests: node --test 190 pass (incl. new reactions.test.js); real-browser dark+light with zero console errors. Known limitation: post-mutation refetch can lose a race against ccSWR stale cache serves on disk-starved hosts (follow-up with evidence to come).
Picker buttons render unicode glyphs (no new deps) with the wire words
kept in aria-label/title; each opened/commented event renders its
reaction_summary as an emoji+count chip row (toggle semantics);
reaction_changed rows read 'reacted eyes on #N' with glyph.
Decision appended to docs/features/02 Decisions.
<p> exposes no landmark/group semantics, so aria-label on it is
ignored by assistive tech; the actionsFor button row already uses
role=group — match it.
Sign in to join this conversation.
No description provided.