Skip to content

feat(reader): keep read items viewable while their feed stays listed - #128

Merged
azu merged 1 commit into
masterfrom
claude/project-thread-w18acz
Sep 23, 2026
Merged

azu merged 1 commit into
masterfrom
claude/project-thread-w18acz

Conversation

@claude

@claude claude Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Requested by azu · project thread

Before: a GitHub repository marked read stayed in the feed list with (0), but going back to it (a or a click) showed "No unread items in this feed.", because GitHub Notifications only returns unread notifications. Pressing m on a repository emptied the open view the same way.

After: going back to a recently visited, read repository shows the notifications that were just marked read, styled as read. They stay viewable while the feed is listed as recently visited (the last 5 navigations) and are dropped from memory once it leaves the list. Marking read still happens when leaving a feed, as before.

How: the reader (not the GitHub source) remembers the items it marked read per feed in ReaderModel.readItems. load() appends the ones a reload lacks, withReadItems also patches a reload that finished before the mark-read request, and opened() prunes entries for feeds that are no longer recently visited. Sources that return read items themselves (Inoreader) see no change because items are deduplicated by ID. RECENT_FEEDS moved from reader-view.ts to reader-model.ts so the list rule and the pruning share it.

Tests: new unit tests in reader-model.test.ts and reader.test.ts (an in-memory source option that drops read items, like GitHub); the GitHub Playwright tests now expect the read notifications after a and m. vp check, vp test (179) and vp run test:e2e (35) pass locally.

🤖 Generated with Claude Code

https://claude.ai/code/session_01J7Sk49N296ejxiMDDfcnEp


Generated by Claude Code

GitHub Notifications returns unread notifications only, so going back to a
repository that was just marked read showed an empty feed even though it is
still listed as recently visited. The reader now keeps the items it marked
read in memory while their feed is among the recently visited ones, and adds
them to reloads that lack them. Read state is still set on departure.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J7Sk49N296ejxiMDDfcnEp
@claude claude Bot assigned azu Sep 23, 2026
@claude
claude Bot requested a review from azu September 23, 2026 07:33

@azu azu left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@azu
azu marked this pull request as ready for review September 23, 2026 07:36
Copilot AI lite review requested due to automatic review settings September 23, 2026 07:36
@azu
azu merged commit b857b67 into master Sep 23, 2026
10 checks passed
@azu
azu deleted the claude/project-thread-w18acz branch September 23, 2026 07:36

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants