Adds a bounded Recent activity panel to the active Today update sheet for issues and pull requests. It supports newest-page loading, safe Markdown rendering, older-page pagination with reading-position preservation, stale-response rejection, and actionable retry without disabling composition.
Verification
RED: new controller tests failed for missing activity loading, retry, pagination, and view lifecycle behavior before implementation
Focused: 12 passed in tests/test_today_progress.py
Full suite: 2007 passed, 7 skipped
Mobile render at 320×568: no panel/list horizontal overflow; both activity controls rendered at 44px
Core gzip: 101372 bytes (99 KiB budget: 101376)
Closes #1060
Adds a bounded Recent activity panel to the active Today update sheet for issues and pull requests. It supports newest-page loading, safe Markdown rendering, older-page pagination with reading-position preservation, stale-response rejection, and actionable retry without disabling composition.
## Verification
- RED: new controller tests failed for missing activity loading, retry, pagination, and view lifecycle behavior before implementation
- Focused: `12 passed` in `tests/test_today_progress.py`
- Full suite: `2007 passed, 7 skipped`
- Mobile render at 320×568: no panel/list horizontal overflow; both activity controls rendered at 44px
- Core gzip: 101372 bytes (99 KiB budget: 101376)
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 #1060
Adds a bounded Recent activity panel to the active Today update sheet for issues and pull requests. It supports newest-page loading, safe Markdown rendering, older-page pagination with reading-position preservation, stale-response rejection, and actionable retry without disabling composition.
Verification
12 passedintests/test_today_progress.py2007 passed, 7 skipped