Skip to content

fix(entitlement): no dead Checking… — every terminal state lands somewhere - #166

Merged
Blankll merged 1 commit into
masterfrom
fix/entitlement-terminal-states
Oct 7, 2026
Merged

Blankll merged 1 commit into
masterfrom
fix/entitlement-terminal-states

Conversation

@Blankll

@Blankll Blankll commented Oct 7, 2026

Copy link
Copy Markdown
Member

Summary

Mirror of geek-fun/dockit#513. The Checking… state had three dead ends where the UI spun forever — the exact "stuck with no feedback" class it was meant to eliminate.

Dead end Before After
Lease rejected server-side (SESSION_REJECTED) lease dropped, view empty → infinite Checking… lands on Session expired with the re-login CTA
Persistent refresh failure, no cached view view left empty → infinite Checking… lands on Unknown + check-failed copy + Refresh
Persistent refresh failure, cached view exists view kept, but the action rethrew → unhandled rejection cached view stays (offline contract); the action resolves
Logged-out settings visit Badge spun "Checking…" forever no session → no plan → Unknown

Also: UserMenu reuses the exported GEEKFUN_BASE_URL from authService instead of a duplicate hardcoded constant.

Test plan

  • 13 store tests incl. terminal-failure landing, cached-view degradation, lease-rejection landing
  • cargo test 412, jest 454, eslint + vue-tsc clean

…where

Mirror of geek-fun/dockit#513. The 'checking' state had three dead ends
where the UI spun forever:

- a rejected lease dropped the lease and left the view empty — land on
  the session-expired state (re-login CTA) instead
- persistent refresh failure without a cached view left the view empty —
  land on Unknown with the check-failed copy; a hydrated cached view
  still degrades to itself (offline contract)
- the rethrow on terminal failure was dead semantics — every caller is
  fire-and-forget, so it only produced unhandled rejections; the action
  now always resolves with the state on screen
- planState reported 'checking' for logged-out visitors — no session,
  no plan: 'unknown'

Also dedupes the console base URL: UserMenu now reuses the exported
GEEKFUN_BASE_URL from authService instead of its own copy.
@Blankll
Blankll merged commit 6235cb1 into master Oct 7, 2026
3 checks passed
@Blankll
Blankll deleted the fix/entitlement-terminal-states branch October 7, 2026 14:36
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