feat(webui): the Console as a user service (#1569, row 75)
scripts/webui-service.sh render|install|uninstall|status and the packages/webui/systemd/mosaic-webui.service.in template, on the bus-service.sh pattern. install writes the unit to a temp file, renames it and runs only `systemctl --user daemon-reload`. There is no start, stop, enable or restart verb: the Console reads the bus through the human transport, so Jason starts it from his own shell (lead decisions 62 and 94). Serve's flags pass through, including row 74's preview set, each held to a character set the unit can carry. The unit sets no MOSAIC_*, CLAUDE*, CODEX* or PI_* variable and does not restart on serve's exit 2. Tests in packages/webui/tests/service.test.mjs; TOOLS.md entry. Author: Rocko. Candidate manifest 7dc571dbe87a484f465c82e1965e499c57d9af047bfe702faa3fe041138dd154 (agents/rocko/work/queue-75/, base43d2328f, no drift on the manifest paths to8b351c3d). Approved by Filbert, comment 27430 on #1569, with five non-blocking notes placed in row 77. Sage gate rerun on a worktree of8b351c3dwith the patch: manifest OK; webui 50/50; test-auth 15, conductor 17, config 24, discord 66, extension-package 18, foundation 44, queue 27, release 14, task 98, all passed, 0 failed. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -238,6 +238,37 @@ stdin and stdout it exits 4 with the usage.
|
||||
Exit codes: `0` ok · `1` failed or outcome unknown · `2` invalid input ·
|
||||
`3` refused or config problem · `4` usage. Details: `packages/cli/README.md`.
|
||||
|
||||
## Console service (`scripts/webui-service.sh`)
|
||||
|
||||
```bash
|
||||
scripts/webui-service.sh render [FLAGS] # print the unit
|
||||
scripts/webui-service.sh install [--dir DIR] [--no-reload] [FLAGS]
|
||||
scripts/webui-service.sh uninstall [--dir DIR] [--no-reload]
|
||||
scripts/webui-service.sh status [--dir DIR]
|
||||
# FLAGS: [--port N] [--business ID] [--board URL]
|
||||
# [--public-host NAME --auth-header HEADER --allow-user ID]
|
||||
```
|
||||
|
||||
The systemd user unit `mosaic-webui.service` runs the Console,
|
||||
`node packages/webui/src/cli.mjs serve`, with serve's flags as given:
|
||||
`--port` defaults to 7332 (7330 is the operator's own Console), and the
|
||||
preview set goes all three or none. The template is
|
||||
`packages/webui/systemd/mosaic-webui.service.in`. `install` writes a temp
|
||||
file, renames it and runs `systemctl --user daemon-reload`; `uninstall`
|
||||
refuses while the unit is active; `status` prints the unit state and
|
||||
`GET /healthz` on the installed port. Each value is held to a plain
|
||||
character set the unit can carry (no space, `%`, `$`, quote, backslash,
|
||||
`&` or `|`) and refused otherwise. The unit sets no `MOSAIC_*`, `CLAUDE*`,
|
||||
`CODEX*` or `PI_*` variable. Serve's exit 2 (usage, config, or a port
|
||||
already in use) is not restarted.
|
||||
|
||||
There is no start, stop, enable or restart verb. The Console reads the bus
|
||||
through the human transport, so whoever starts it holds the human's
|
||||
capability; an agent starting it, even through systemd, works around the
|
||||
human proof (lead decisions 62 and 94). Jason starts it from his own shell:
|
||||
`systemctl --user enable --now mosaic-webui`.
|
||||
Exit codes: `0` ok · `1` failed or refused · `4` usage.
|
||||
|
||||
## Discord connector (`scripts/discord.sh`)
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user