Files
mesh-host/module.json
T
jschoubben 1a628a4d22 The host declares its own successor, as an archive at a versioned path
novox/hq ADR 0141 and 04-ISSUES/142. The host half of the delivery has
been built and tested since 0141 and has never had a version to work on:
versions side by side, the newest runs, the running one stands aside
between reconciles, rollback picks a directory. This is the declaration
that gives it one.

One archive, unpacked to /usr/lib/nox-mesh-host/versions/${version}. The
version resolves to the artifact's digest, so an unchanged build lands at
the path it already had and re-composing a declaration moves nothing.

Not circular: the host applying this is a different version from the one
being written, and neither writes over the other — the kernel refuses to
truncate a running executable, which is the reason the path carries the
version rather than a link pointing at "current".

**The launcher is deliberately not delivered here.** The one on these
machines predates the versions mechanism and runs the fixed binary path,
so a delivered version is inert until it is replaced — and replacing it
from the mesh means writing over a running shell script, which sh reads
incrementally. That wants a designed swap rather than a file resource, and
it is the last piece rather than this one.
2026-09-30 11:33:12 +02:00

25 lines
431 B
JSON

{
"module": "mesh-host",
"version": "1",
"slug": "host",
"build": {
"artifacts": [
{
"name": "host-arch",
"kind": "bundle",
"language": "go",
"system": "arch",
"from": "cmd/mesh-host"
}
]
},
"resources": [
{
"id": "next",
"type": "archive",
"artifact": "host-arch",
"path": "/usr/lib/nox-mesh-host/versions/${version}"
}
]
}