SolidOS / SolidOS/solid-panes

Logout leaves databrowser blank/stale until manual reload

Open
#627 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
106
Forks
52
Avg merge
13h 35m
Merged PRs (30d)
10

Description

Summary

After logout, the databrowser UI can end up blank or stale and does not reliably recover until a manual browser reload. This appears to be a client lifecycle issue in the current solid-panes/mashlib integration, not a server-specific auth failure.

Expected behavior

On logout (and similarly login / sessionRestore), the client should consistently re-render from current URL state without requiring a manual reload.

Actual behavior

Header/auth state updates, but the main databrowser view is not always reinitialized/rerendered. In practice, users sometimes need F5 to get the normal outline/dashboard view back.

Environment / observed on

  • mashlib: 2.2.0
  • Server tested: JavaScriptSolidServer (JSS) with mashlib CDN mode
  • Also compared with Pivot server behavior (different hosting model, static assets), which may mask this by effectively reloading/reinitializing in its flow.

Why this seems client-side

Current flows react to auth events (header/dashboard updates), but there is no guaranteed “auth transition -> rerender current subject” path equivalent to a full databrowser bootstrap.

Symptoms suggest:

  • logout triggers partial UI updates (header/menu/dashboard close),
  • but not a deterministic re-render/init of main subject view.

Proposal

Create a single auth-transition handler in client code (solid-panes/mashlib) used for:

  • authSession.events.on('login', ...)
  • authSession.events.on('logout', ...)
  • authSession.events.on('sessionRestore', ...)

Handler should:

  1. await authn.checkUser()
  2. reset/close transient UI state (dashboard/menu if needed)
  3. re-render current URL subject (or re-run equivalent of initial databrowser render path)
  4. avoid requiring page reload

Acceptance criteria

  1. Logout does not require manual browser reload to restore a usable databrowser view.
  2. Login/sessionRestore behave consistently with logout transition handling.
  3. Works across hosting styles:
    • static databrowser asset hosting (e.g., Pivot)
    • server-generated databrowser HTML wrappers (e.g., JSS)

Notes

As a temporary server-side mitigation, forcing location.reload() on logout works, but this should not be the long-term fix. The robust fix should live in the client lifecycle so behavior is server-agnostic.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No specific files or tests are named. Start by locating the authSession login, logout, and sessionRestore handlers and the current databrowser bootstrap or URL-subject rendering path in solid-panes/mashlib; verify transitions in JSS and Pivot-style hosting without requiring a manual reload.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
authentication, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.