Commit Graph
7 Commits
Author SHA1 Message Date
Admin b5c1710b99 [fix](client): sign in with the email the hub identifies, not a username
Sign-in labels the single identity field 'Username', but `login()` sends it as
`email` and dcntrlized-auth resolves accounts by the email column. Typing the
username of a seeded account ('admin') therefore fails with 'invalid
credentials' while the password is correct. The field is now labelled Email,
with an email keyboard and a matching placeholder, in sign-in mode only —
registration still has a separate username and email.
2026-10-19 15:03:29 +01:00
Admin 1f62137754 [fix](client): move the instance address field above the notice that points at it
The 'No instance configured' row said 'Set your instance address above' while
the field lived two cards further down, so a fresh install had an instruction
and no visible way to follow it. The Connection card is now the first card.
2026-10-19 09:20:42 +01:00
Admin ff07df7ae6 [fix](client): paint the app background and default the theme to dark
Every screen but Login set `backgroundColor: bg` itself, so the login page and
the boot loader fell through to the platform's white surface while the text
tokens stayed light — white on light, unreadable. The palette in
`theme/tokens.ts` is fixed dark by construction, and `Uniwind.setTheme` defaulted
to light, so heroUI's own surfaces were light too. Paint the background at the
root, on the login screen and on the loader, and default the theme to dark.
2026-10-19 09:20:42 +01:00
Admin 7c4788afba [feat](client): surface expiry, endings, and device health in the app
The alert detail screen now creates with a lifetime (1/3/7/14 days) and shows expiresAt, lists subscriber rows by their non-identifying fields, and renders each ending (delivered, expired, disarmed, deleted) as a terminal state instead of a stale alert. Settings configures the single instance origin and reports the real readiness/listening checklist; the trigger pad keeps its 1200ms hold, and time helpers format the deadline and last-seen values.
2026-10-19 02:34:20 +01:00
Admin dcfc9a5df8 [feat](client): scan an instance-relative join payload
The service mints /api/alarm/a/{alertId}#{token} with no host, so the QR renders against the configured instance and keeps working when the instance moves or is reached by another name. The scanner now matches path shape and fragment and never the host, so legacy alarm.dcntrlized.org codes and other instances codes still join; error copy distinguishes a malformed code from a wrong-alert token.
2026-10-19 02:34:20 +01:00
Admin a29d9b775e [feat](client): address one instance origin instead of connection modes
Apps reach every service through Maestro on one port; direct service addressing is no longer a supported deployment, and Maestro has no per-service hostname or host-port route. Replace the maestro/direct modes and the serviceRef lookup with one configured origin and the fixed paths /api/alarm/{action,auth,ws}, defaulting dev builds to 127.0.0.1:8080 through adb reverse. The old mode-specific body wrapping and the direct-mode socket branch go with it.
2026-10-19 02:30:51 +01:00
Admin 2df34ab938 init 2026-10-18 22:42:00 +01:00