Launcher: strip the window back to what's worth reading

A pass for less prose and fewer boxes.

- Header shows the version and node; the port is already in the addresses
  below it, and the module list belonged in the log.
- Settings: "Network" over the port (no explanation under it), "Startup"
  instead of "Starting up", and no node chooser — the path stays visible,
  since which node runs is the first thing worth knowing when it won't.
- Permissions: one line per permission — a status dot, its name, and the one
  thing you can do about it. The standing explanation is gone and the
  modules' own reasons moved to each row's tooltip. Local network results
  still appear under their row after a check, with a short line and a link
  only when nothing answered at all. Re-check sits centred at the bottom,
  outside the group.

The app-level "notify me" switch goes with it: macOS's own per-app
notification setting already does that job, so notifications now follow the
permission alone, asked for by the row's Enable button rather than on first
run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Waters Church
2026-09-11 11:10:22 -04:00
co-authored by Claude Opus 5
parent 1dbd55aa24
commit e1bceb3e60
9 changed files with 188 additions and 227 deletions
+9 -6
View File
@@ -78,9 +78,11 @@ it while the server runs restarts it.
### Permissions
The pane lists what the installed modules declare in their manifests
(`"permissions": [ … ]` — see [docs/MODULE-GUIDE.md](../../docs/MODULE-GUIDE.md)),
with the module's own reason:
One line per permission: a status dot, its name, and the one thing you can do
about it. What appears is what the installed modules declare in their
manifests (`"permissions": [ … ]` — see
[docs/MODULE-GUIDE.md](../../docs/MODULE-GUIDE.md)); hover a row to see which
module asked, and why.
- **Microphone** — asked for directly, with the status macOS reports.
- **Local Network** — macOS has no API that reports whether this was granted,
@@ -88,8 +90,9 @@ with the module's own reason:
services (which is what raises the prompt) and tries every upstream the
admin page is pointed at, then says what the result means. Nothing
answering, when the gear is on, means macOS is withholding access.
- **Notifications** — the launcher's own, for a server that stops while
nobody is watching.
- **Notifications** — the launcher's own, so a server that stops while nobody
is watching still reaches someone. Turn them off for ProdDash in System
Settings if you'd rather not have them.
On first run the launcher asks for what the modules declare, while someone is
still at the keyboard, rather than halfway through a service.
@@ -121,7 +124,7 @@ still at the keyboard, rather than halfway through a service.
| What you see | What it means |
| --- | --- |
| "Can't find the ProdDash folder" | Point it at the folder with `server.js` in it, under Settings. |
| "Node.js 18 or newer isn't installed" | Install Node, or set the path under Settings. A GUI app inherits almost no `PATH`, so a node in an unusual place has to be named. |
| "Node.js 18 or newer isn't installed" | Install Node. A GUI app inherits almost no `PATH`, so one in an unusual place may not be found — Settings shows which one is in use. |
| "ProdDash stopped 4 times in two minutes" | The server is failing on startup — the Log tab has its own error. |
| LTC shows no signal | Permissions tab → Microphone. If it says granted and the input is still silent, the server may be an older copy started outside the launcher — Stop, then Start. |
| Nothing on the network answers | Permissions tab → **Check Access**. |