Quality of life: in-app dialogs, selections in the URL, editable widgets, token dialog, gallery search, status history, stream errors that say why, tab reordering and shortcuts, log out everywhere
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
8ee2a2d293
commit
d7ed4d8549
@@ -183,22 +183,26 @@ machine; hub terminals not leaking into another machine's page; CORS only on sen
|
||||
token list never exposing hashes; cookie flags; deep nesting, empty bodies, odd methods
|
||||
and `every=` values on the sensor API; phone drawer, key bar and picker.
|
||||
|
||||
## Quality of life — noted, not done
|
||||
## Quality of life — all ✅ done 2026-09-19, each verified in the browser
|
||||
|
||||
- **Selections aren't in the URL.** Services, Cron and Disks forget what was selected on
|
||||
reload, and can't be linked to. `#/grid/services/nginx.service` would fix both.
|
||||
- **Browser Back with unsaved file edits** still leaves without asking (page and machine
|
||||
changes ask; Back needs the history entry put back on Cancel).
|
||||
- **Prompts are browser `prompt()`/`confirm()` boxes** — rename, new file, delete, token
|
||||
name. They work, and look nothing like the rest of the console, worst on a phone.
|
||||
- **Two step token creation** (name, then patterns) wants to be one small dialog, with the
|
||||
patterns pickable from the catalog like the widget picker.
|
||||
- **Widgets can't be edited**, only removed and re-added; no way to change a title or type.
|
||||
- **The Widgets gallery has no search**, and 300+ tiles on `grid` is a long scroll.
|
||||
- **A custom widget's sparkline starts empty for states and counts** (no history kept for
|
||||
the background status sensors — only the sampler's ring remembers).
|
||||
- **Embeds poll nothing while hidden but say nothing when the token is wrong** beyond
|
||||
"check the token"; a 401 and an unreachable host look the same.
|
||||
- **Default widget titles for patterns are the raw pattern** ("CPU.CORE.*.USAGE").
|
||||
- **Terminal tabs can't be reordered**, and there's no keyboard shortcut to switch.
|
||||
- **The hub's own session cookie is 30 days sliding with no "log out everywhere".**
|
||||
1. ✅ **Selections are in the URL.** `#/grid/services/ssh.service`, `#/hub/cron/job:…`,
|
||||
`#/hub/files/%2Fetc`: reload keeps them, links carry them, leaving a page drops them.
|
||||
2. ✅ **Browser Back with unsaved file edits asks**, like page and machine changes do.
|
||||
3. ✅ **No more browser `prompt()`/`confirm()` boxes** — all 30 are in-app dialogs (`askYes`,
|
||||
`askText` in `ui.tsx`): Enter submits, Escape or a tap outside cancels, destructive
|
||||
ones are red and say what they do ("Close", "Delete"), and they fit a phone.
|
||||
4. ✅ **Token creation is one dialog**: name, patterns, and the machine's own sensor families
|
||||
as chips to click.
|
||||
5. ✅ **Widgets can be edited** — sensor, type and title — in place, from Customize.
|
||||
6. ✅ **The Widgets gallery has a search** over IDs, names and labels (so "gitea" finds its
|
||||
container's sensors).
|
||||
7. ✅ **Status sensors keep a history** (300 readings each: an hour of container memory, two
|
||||
days of drive wear), so their sparklines have a past.
|
||||
8. ✅ **A stream that fails says why**: "the token was rejected", "too many live streams are
|
||||
open", "that machine is unreachable", "can't reach Ham Lab" — in embeds and on Monitors.
|
||||
9. ✅ **Pattern widgets get readable default titles**: `cpu.core.*.usage` → "CPU core usage".
|
||||
10. ✅ **Terminal tabs reorder** — drag on a desktop, ‹ › on a touch screen, remembered per
|
||||
machine in the browser — and **Alt+Shift+←/→** switches tabs, **Alt+Shift+T** opens one,
|
||||
with the keyboard left in the terminal each time.
|
||||
11. ✅ **"Log out everywhere"** in Settings ends every session on every device (tokens are
|
||||
not sessions and keep working).
|
||||
|
||||
Reference in New Issue
Block a user