add a reusable visualViewport controller for issue, pull-request, and unread-update conversation composers
keep composer controls and live status visible above mobile keyboards while preserving drafts and restoring scroll
make offline-shell coverage match every local dashboard runtime asset, including task-overlay history
Verification
strict RED observed before controller implementation and before dashboard/offline integration
focused: 27 passed
full suite: 585 passed
headless Chromium at 390px verified all three sheets at a 420px keyboard-reduced viewport; textarea, submit button, and live status remained visible with no page errors
Closes #323
## What changed
- add a reusable visualViewport controller for issue, pull-request, and unread-update conversation composers
- keep composer controls and live status visible above mobile keyboards while preserving drafts and restoring scroll
- make offline-shell coverage match every local dashboard runtime asset, including task-overlay history
## Verification
- strict RED observed before controller implementation and before dashboard/offline integration
- focused: 27 passed
- full suite: 585 passed
- headless Chromium at 390px verified all three sheets at a 420px keyboard-reduced viewport; textarea, submit button, and live status remained visible with no page errors
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 #323
What changed
Verification