fix: m(全件既読)の挙動を Space 送り読みフローに揃える#30
Open
hideack wants to merge 1 commit into
Open
Conversation
`m` の次フィードへの進み方が Space 送り読み(advanceSpaceReading)と 別ロジックになっており、`m` 直後の `space` が期待どおり連鎖しなかった。 - 次フィードを feedList.refresh() のカーソル都合で決めていた (送り読みの getNextFeedWithUnread とは別の並び順) - firstUnread ではなく entry[0] をプレビューするだけで、既読化も setKeepVisibleFeed も行わない - フォーカスを変えないため、content ペインで m を押した直後の space が 最初の未読をスキップ、または未開封プレビューをスクロールしてしまう m を送り読みフローに統一: markAllAsRead → getNextFeedWithUnread(refresh 前に決定)→ keepVisible 差し替え → refresh → 次フィードの firstUnread を openSelectedEntry で開いて focus=content。 未読フィードが尽きたら focus=feed で "No more unread" を表示。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
操作ログ(
keylog.jsonl)の分析中に、m(フィード全件既読)の直後にspaceを押したときの挙動に違和感があるとの指摘があり調査した。実測でも
mの過半(30/58)は content ペインで押されており、その直後のspaceが期待どおりに連鎖しないケースが再現する。原因
mハンドラの「次フィードへ進む」処理が、通常の Space 送り読み(advanceSpaceReading)と別ロジックになっていた。feedList.refresh()のカーソル都合で決めていた(送り読みのgetNextFeedWithUnreadとは別の並び順)firstUnreadではなくentry[0]をプレビューするだけで、既読化もsetKeepVisibleFeedも行わないmを押した直後のspaceがnextUnread()が index 1 から探索し先頭(最新)の未読をスキップ修正
mを送り読みフローに統一した。markAllAsRead()getNextFeedWithUnread(currentFeedId)で「現フィードより後の未読フィード」を決定(refresh()前に呼ぶ)setKeepVisibleFeedを次フィードへ差し替えてからrefresh()(既読化したフィードが確実に消える)firstUnread()をopenSelectedEntry()で開いて既読化 →focus = contentfocus = feedでNo more unreadを表示これで
m直後のspaceが通常の送り読みとまったく同じ連鎖で次の記事へ進む。確認
npx tsc --noEmit(ui.ts に新規エラーなし。既存の neo-blessed 由来 / crawler の警告は対象外)m→spaceの連鎖)🤖 Generated with Claude Code