Skip to content

Feature: land a fresh install on Settings instead of an empty dashboard - #8

Merged
SandObserver merged 1 commit into
mainfrom
feat/first-run-lands-on-admin
Aug 9, 2026
Merged

SandObserver merged 1 commit into
mainfrom
feat/first-run-lands-on-admin

Conversation

@SandObserver

Copy link
Copy Markdown
Owner

Summary

  • Add landingAfterSetup(items) to ui/js/dashboard-logic.js: returns /admin when items is an empty array, null otherwise, including for anything that is not an array.
  • Use it in both exits from showSetupPrompt() in ui/js/dashboard.js: the Skip handler after dismiss-setup, and the success branch of doSet() in place of the unconditional location.reload().
  • POST /api/auth/set-password sets the session cookie before responding, so the Set path lands on Settings already authenticated rather than bouncing to the login page.
  • No placeholder or demo items are introduced; / remains reachable and stays empty until the user adds something.
  • Add a [Unreleased] → Changed entry.

Testing
All green. Added 3 tests covering the empty install, an install with items, and non-array inputs; mutation-checked by loosening the emptiness test.

Checklist

  • Stays within the project constraints: one container, no runtime dependencies, no build step (see CONTRIBUTING.md).
  • Tests added or updated for new logic, and the full suite, lint, and typechecks pass.
  • Docs updated if behavior or configuration changed.
  • CHANGELOG.md updated under Unreleased if the change is user-visible.

A new install has no items, and the setup prompt fires on first load, so both
Skip and Set returned the user to a dashboard with nothing on it and nothing to
act on. Both paths now go to Settings when there is nothing to show, which is
where the first app or widget is added.

The dashboard itself stays genuinely empty: no placeholder items, and opening
it directly afterwards is unchanged. The decision is a pure function so it can
be tested without a DOM.
@SandObserver SandObserver added the enhancement New feature or request label Aug 9, 2026
@SandObserver
SandObserver merged commit c664fa2 into main Aug 9, 2026
4 checks passed
@SandObserver
SandObserver deleted the feat/first-run-lands-on-admin branch August 9, 2026 20:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant