packages/cli adds mosaic inbox, decide, tasks, agents and trail over the human-cli transport, and mosaic bus start, stop and status as the trusted host (unit mosaic-bus@<business>, scripts/bus-service.sh). The host boots packages/bus/src/process.mjs, passes config.trackers from the tracker.* variables (lead decision 70), and runs a notifier child. The notifier DMs each open blocking decision once and sends an 08:00 America/Chicago digest, journaled in notify/<business>/sent.jsonl at 0600 with no Discord ids. A torn journal tail is copied aside and truncated; a malformed line, a directory looser than 0700 or a symlinked journal refuses (lead decision 71). packages/discord gains dmRecipient, createDm and notify.mjs. Candidate agents/rocko/work/slice1-s4, baseb9b6cf00, build.patch b52f7d68, manifest e858504e (29 files). Darkwing approved round 2 on #1521 (comment 26855), Filbert approved round 2 (comment 26856). The packet's mutant table lists M28 as killed; it survived, and BUILD-LOG records the correction. Integration gate in a worktree on2557e29dwith the patch applied: bus 67, business 60, cli 49, control-board 124, discord 178, ledger 78, mosaic 69, queue 148, seat 19, tasks 51 and webui 14, all with no failures. Conversation is 149/3, the same K1, K3 and K10 cases that fail on the base; S4 doesn't touch the package. Every scripts/test-*.sh is green, with test-release 14/14 and test-task 98/98 on the existing gate2 compose network. A scratch test, not in this commit, booted the real host with trackers against S3's fake Vikunja: the adapter went ready and a task.close on a missing task answered task-not-found after a Vikunja read. Co-Authored-By: Claude Opus 5.5 <[email protected]>
34 lines
1.2 KiB
Plaintext
34 lines
1.2 KiB
Plaintext
# Mosaic bus host, one instance per business: mosaic-bus@<business>.
|
|
# Rendered by scripts/bus-service.sh from packages/cli/systemd/; @REPO@ and
|
|
# @PATH@ are filled in at install time. Edit the template and reinstall; do
|
|
# not edit the installed copy. The bus store allows one broker per data
|
|
# root, so run one instance per data root (packages/cli/README.md).
|
|
[Unit]
|
|
Description=Mosaic bus host (%i)
|
|
Documentation=file://@REPO@/packages/cli/README.md
|
|
StartLimitIntervalSec=600
|
|
StartLimitBurst=5
|
|
|
|
[Service]
|
|
Type=simple
|
|
WorkingDirectory=@REPO@
|
|
Environment=PATH=@PATH@
|
|
# The host reads the system config and the business file, boots the broker
|
|
# (packages/bus/src/process.mjs) and starts the notifier. Config problems and
|
|
# refusals exit 3, usage 4, invalid input 2: none of those is retried. A
|
|
# child that dies takes the host down with exit 1, and the unit restarts
|
|
# the pair.
|
|
ExecStart=@REPO@/scripts/mosaic bus start %i
|
|
Restart=on-failure
|
|
RestartSec=15
|
|
RestartPreventExitStatus=2 3 4
|
|
# `systemctl --user stop` sends SIGTERM to the host, which stops the
|
|
# notifier after its poll in flight, then closes the broker.
|
|
KillSignal=SIGTERM
|
|
KillMode=mixed
|
|
TimeoutStopSec=60
|
|
NoNewPrivileges=yes
|
|
|
|
[Install]
|
|
WantedBy=default.target
|