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:
await authn.checkUser()
- reset/close transient UI state (dashboard/menu if needed)
- re-render current URL subject (or re-run equivalent of initial databrowser render path)
- avoid requiring page reload
Acceptance criteria
- Logout does not require manual browser reload to restore a usable databrowser view.
- Login/sessionRestore behave consistently with logout transition handling.
- 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.
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 similarlylogin/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
F5to get the normal outline/dashboard view back.Environment / observed on
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:
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:
await authn.checkUser()Acceptance criteria
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.