fix: hide offline favorites from conversation list - #76
Closed
Florious95 wants to merge 10 commits into
Closed
Conversation
Cover conversation session dock chips, workspace level-2 list, and the view overlay so offline rows cannot remain on those surfaces while idle/waiting/unknown stay visible and the favorite ledger is kept.
Filter conversation favorite chips by live ref, matching FavoritesPane. For the view overlay, use the subscribed live snapshot so an empty level2 frame cannot keep stale cache rows (#84). Favorite storage is unchanged; online idle/waiting/unknown stay visible.
Favorites must drop the row without restart when live is gone, and must not show 不在线. Session list must keep the row, mark 不在线, and refuse open. Dock/overlay hide coverage is withdrawn.
Record every level2 frame including empty for favorite reconciliation so leaving a session marks favorites offline without restart. Session list keeps seen rows and paints them 不在线 instead of deleting them. Revert dock/overlay hiding; those surfaces are not this homepage pair.
Favorites pane keeps the row and marks 不在线 without restart. Workspace level-2 list drops the live-gone row, no ghost offline. Session dock/favorite chips hide offline instead of greying them.
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.
Goal
In the conversation home Favorites list, hide favorites whose exact live
refis absent while preserving the stored favorite record, order, and reappearance after the session is live again. Online idle/unknown/waiting states remain visible.Change
FavoriteBook.rows()unchanged: it remains the storage/reconciliation source and retains offline rows.ThreePane.FavoritesPanebyFavoriteRow.isOnline.FavoriteList/management rendering semantics, persistence, protocol, and polling unchanged.Tests and acceptance
eaaa7d47d88e7e2de6c82988fe462e7adf29f86d:TestThreePane#offlineFavoriteDoesNotOpenfailed because the offline row was rendered.--rerun-tasks -Pkotlin.compiler.execution.strategy=in-process).:app:assembleRelease --max-workers=2 --rerun-tasks -Pkotlin.compiler.execution.strategy=in-process: PASS; source649f5f91f35a66de8afd73221045d8187f74664c, input APK SHA416746b3ad2c69856016ce7ce7b9add568869780bd424bb6a1c533790e42dc32.5d17659776f95026a5c22320e6c7d99b69184c9eb1d2afac5531d4ee21943263with reference signerea427eb4e14f95654a66802b6558fbbf6f93f1ca69d8117795fb7cef376cb13b.adb install -rreference→candidate succeeded with no uninstall/clear/-d; package, uid10207, and dataDir were preserved. Synthetic two-workspace fixture showed baseline 3 rows including an offline row; candidate hid only the offline row (2 rows); one restore returned all 3 in order; HOME→resume, scroll, tab navigation, and row menu remained usable.Risk / limits
No persistence or protocol change. Real server/tailnet and production
:9900were not used. PR CI currently reports no checks. Performance CONTRACT/envcheck is explicitly UNJUDGEABLE (sampler/identity gate remains blocked), so no performance pass is claimed. The Grok working indicator remains out of scope.已包含于 PR #89,完整 head 历史已进入 main 2835984;按用户合并清理授权关闭此重复 PR。保留已有验收证据。