Row 77, round 3 (round 2 rebased onto row 95). Rocko built it. This covers row 75's N1-N5 and Vikunja 146 and 147. `install --copy ID` refuses unless every ExecStart path of the bus unit, read from `systemctl --user show` so drop-ins count, lies inside that copy. It also refuses when the unit isn't loaded, no unit is loaded, ExecStart has no path, or systemctl fails. COPY_PATHS gains packages/tasks/src and packages/tasks/fields.json. Every copy directory is 0555. TOOLS.md and the webui README give the removal command and the rollback floor. Candidate manifest d9880f4c92d1d976027562a03cc5dd07512954e86f49f1da0ebb34e642a955f5 (10 paths, 8 applied by the patch, 2 packet files already committed), base2e26fbe1, packet agents/rocko/work/queue-77/r2b/. Approvals on round 3: Darkwing 27979 and Filbert 27985 (Filbert round 2: 27898). Sage's gate rerun 22:32:51Z-22:35:12Z on459c4fc6plus the patch (row 92 included), manifest 10/10: webui 101, control-board 124, and every scripts/test-*.sh exited 0 (test-release 4, Docker cases skipped at a dead socket). Live at the next Console install and restart (decision 109). Mos makes that call. Co-Authored-By: Claude Opus 5.5 <[email protected]>
39 lines
1.6 KiB
Plaintext
39 lines
1.6 KiB
Plaintext
# Mosaic Console: `node packages/webui/src/cli.mjs serve`, one instance.
|
|
# Rendered by scripts/webui-service.sh from packages/webui/systemd/; @REPO@,
|
|
# @PATH@, @NODE@ and the serve flags below are filled in at install time.
|
|
# @REPO@ is the read-only copy `install --copy ID` names, and the flags
|
|
# pass the canonical checkout as --checkout for the queue read (row 77).
|
|
# Edit the template and reinstall; do not edit the installed unit.
|
|
#
|
|
# The Console reads the bus through the human transport, so whoever starts
|
|
# this unit holds the human's capability. Jason starts and restarts it
|
|
# (`systemctl --user enable --now mosaic-webui`), and so may Mos under lead
|
|
# decision 102, which accepts that sends then enter the trail as Jason. Any
|
|
# other agent starting it works around the human proof (lead decisions 62
|
|
# and 94). The unit sets no MOSAIC_*, CLAUDE*, CODEX* or PI_* variable.
|
|
[Unit]
|
|
Description=Mosaic Console
|
|
Documentation=file://@REPO@/packages/webui/README.md
|
|
StartLimitIntervalSec=600
|
|
StartLimitBurst=5
|
|
|
|
[Service]
|
|
Type=simple
|
|
WorkingDirectory=@REPO@
|
|
Environment=PATH=@PATH@
|
|
# The server binds 127.0.0.1 only. Usage, config and listen refusals
|
|
# (a port already in use included) exit 2 and are not retried; fix the
|
|
# flags or free the port, then start it again.
|
|
ExecStart=@NODE@ @REPO@/packages/webui/src/cli.mjs serve @FLAGS@
|
|
Restart=on-failure
|
|
RestartSec=15
|
|
RestartPreventExitStatus=2
|
|
# `systemctl --user stop` sends SIGTERM; the server stops accepting and
|
|
# closes. Open connections that outlast TimeoutStopSec are killed.
|
|
KillSignal=SIGTERM
|
|
TimeoutStopSec=30
|
|
NoNewPrivileges=yes
|
|
|
|
[Install]
|
|
WantedBy=default.target
|