feat(home): paginate activity feed to fill screen height #365
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
thwap/steeper!365
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/354-home-paginate-activities"
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?
What
Load home activity feed now calculates pages needed based on screen height (
h - 16rows available,ceil(rows/50)pages). Fetches all needed pages in a loop, async via goroutine. Renders viaQueueUpdateDraw.Why
Previously only fetched page 1 (~30-50 events), leaving blank space at the bottom of large terminals. Subsequent loads benefit from per-page API cache (CachedClient).
Closes #354
Review
Result: Approved — no blocking issues.
Summary: Paginates home activity feed to fill screen height.
Loadnow spawns async goroutine, calculates pages needed (h - 16rows /ceil(row/50)), fetches up to 10 pages (500 events). UsesQueueUpdateDrawfor goroutine-safe render.Non-blocking:
loadAsyncsilently swallows all errors,Loadalways returns nil. Callers never see failures. Also potential data race on concurrentLoadcalls.Checklist:
New commits pushed, approval review dismissed automatically according to repository settings
Re-Review
Result: Approved — no blocking issues. #366 addressed.
Changes since previous review:
loadErr error+mu sync.MutextoHomeViewloadAsyncnow stores errors under lock for all API failuresloadErrcleared on successLastError()method for callers to check async load statusfetchActivitiestakes username param and returns slice (avoids lock-ordering issues)All concerns from #366 are resolved.