Skip to content

fix: hide offline favorites from conversation list - #76

Closed
Florious95 wants to merge 10 commits into
pr/foreground-resume-refreshfrom
pr/favorites-online-filter
Closed

fix: hide offline favorites from conversation list#76
Florious95 wants to merge 10 commits into
pr/foreground-resume-refreshfrom
pr/favorites-online-filter

Conversation

@Florious95

@Florious95 Florious95 commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Goal

In the conversation home Favorites list, hide favorites whose exact live ref is absent while preserving the stored favorite record, order, and reappearance after the session is live again. Online idle/unknown/waiting states remain visible.

Change

  • Keep FavoriteBook.rows() unchanged: it remains the storage/reconciliation source and retains offline rows.
  • Filter only the conversation home projection in ThreePane.FavoritesPane by FavoriteRow.isOnline.
  • Do not use health, activity, quiet duration, subscription, or selected-workspace state as an offline signal.
  • Leave FavoriteList/management rendering semantics, persistence, protocol, and polling unchanged.

Tests and acceptance

  • Red baseline at eaaa7d47d88e7e2de6c82988fe462e7adf29f86d: TestThreePane#offlineFavoriteDoesNotOpen failed because the offline row was rendered.
  • Candidate Grok Bot affected JVM/UI suite: 54 executed, 0 failures (--rerun-tasks -Pkotlin.compiler.execution.strategy=in-process).
  • Candidate Grok Bot release: :app:assembleRelease --max-workers=2 --rerun-tasks -Pkotlin.compiler.execution.strategy=in-process: PASS; source 649f5f91f35a66de8afd73221045d8187f74664c, input APK SHA 416746b3ad2c69856016ce7ce7b9add568869780bd424bb6a1c533790e42dc32.
  • Existing controlled signing produced candidate SHA 5d17659776f95026a5c22320e6c7d99b69184c9eb1d2afac5531d4ee21943263 with reference signer ea427eb4e14f95654a66802b6558fbbf6f93f1ca69d8117795fb7cef376cb13b.
  • On isolated API35 product device, ordinary adb install -r reference→candidate succeeded with no uninstall/clear/-d; package, uid 10207, 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 :9900 were 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。保留已有验收证据。

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.
@Florious95 Florious95 closed this Sep 8, 2026
@Florious95
Florious95 deleted the pr/favorites-online-filter branch September 8, 2026 00:35
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.

1 participant