mesh/delivery merged: source.main moved to novox/mesh-host@998d8f737008
mesh/check being carried to 5dc3a8e17f97 on 998d8f737008 | from fabfdf04f78a
The journal of an unpack sat at <target>.unpacked.json, in a directory the module's account may write: a forged one would make the root engine remove or adopt any path it named. It now lives under <statedir>/unpacked/<sha256 of the target>.json, mode 0600, names its target, and is refused whole when an entry is not filepath.IsLocal or a parent is not above the target. It goes when the archive is taken off, whether its state record still said what it unpacked or not. The launcher's stop grace for a host on trial rises from 20 s to 75 s and the unit's TimeoutStopSec is 120 s (openrc the same), past the host's own 60 s wait for the apply in flight, so neither cuts a save off again. Tests folded as rows into existing ones (the repository is over its unit budget): the journal's rows, a forged entry and parent refused, the journal gone with a record that lost its Unpacked; the test that passed on main dropped; the stop test waits on its own line, not a sleep, and no longer consumes the save it waits for. Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
21 lines
736 B
Desktop File
21 lines
736 B
Desktop File
[Unit]
|
|
Description=Novox Mesh node host
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
# One line of policy: run the launcher at boot (novox/hq ADR 0005). Restarting the host,
|
|
# backing off, giving up and rolling back are all the launcher's, where they can be tested.
|
|
# Restart= here is a backstop for the launcher itself being killed, not the mechanism.
|
|
[Service]
|
|
ExecStart=/usr/lib/nox-mesh-host/launch
|
|
Restart=always
|
|
RestartSec=5s
|
|
StateDirectory=mesh-host
|
|
KillMode=mixed
|
|
# Past the launcher's own stop grace (75 s), which is past the 60 s the host waits for the apply in
|
|
# flight to end and save (novox/hq issue 1585): the service manager's kill is the last resort.
|
|
TimeoutStopSec=120
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|