Adds lazy, authoritative reaction counts and reversible Gitea reaction mutations to issue, pull-request, and Updates comments.
Binds every mutation to the visible conversation and confirms resulting upstream state.
Adds accessible 44px mobile controls, offline guidance, single-flight mutation, cancel/selection focus return, and no read-state side effect.
Verification
RED-GREEN behavioral coverage in tests/test_comment_reactions.py.
Full suite: 2625 passed, 22 skipped.
Rendered 320px Playwright journey: 1 passed; no horizontal overflow and focus returns to React.
Release bundle checksum and provenance verification passed for b4f3c6d419d5cf5b1b290f92341c53d8acf0d497.
Closes #1380
## What
- Adds lazy, authoritative reaction counts and reversible Gitea reaction mutations to issue, pull-request, and Updates comments.
- Binds every mutation to the visible conversation and confirms resulting upstream state.
- Adds accessible 44px mobile controls, offline guidance, single-flight mutation, cancel/selection focus return, and no read-state side effect.
## Verification
- RED-GREEN behavioral coverage in `tests/test_comment_reactions.py`.
- Full suite: `2625 passed, 22 skipped`.
- Rendered 320px Playwright journey: `1 passed`; no horizontal overflow and focus returns to React.
- Release bundle checksum and provenance verification passed for `b4f3c6d419d5cf5b1b290f92341c53d8acf0d497`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #1380
What
Verification
tests/test_comment_reactions.py.2625 passed, 22 skipped.1 passed; no horizontal overflow and focus returns to React.b4f3c6d419d5cf5b1b290f92341c53d8acf0d497.