The remote had one commit this branch did not (03f8a85), which adds the
Apache-2.0 LICENSE, the NOTICE and SPDX headers to every .py and .sh
file. The merge was clean - the headers sit at the top of each file and
my changes are further down.
The new files this branch added (languages.py, translations.py, the
cluster package, the new tests and scripts) were written after the
merge base, so the licence commit never saw them. They now carry the
same header, so the convention holds across the whole tree.
Nothing else changed. 883 tests passed / 8 failed - the same 8
pre-existing failures.
The UmbraAudio side of the cross-machine contract: this node registers
with the UmbraTrans controller, polls for jobs, claims them under a
lease, and writes artifacts back over NFS.
* `umbraaudio/cluster/` - configuration, PostgreSQL access, node
registration and heartbeat, the job queue, artifact storage and NFS
mount management.
* `scripts/cluster_worker.py` - the CLI: `worker`, `check-cluster`,
`register-node`.
* `scripts/backup_system.sh` / `scripts/verify_backup.sh` - whole-system
backup and integrity verification.
* `.env` - the `UMBRA_CLUSTER__*` settings. `UMBRA_CLUSTER__PG_PASSWORD`
is deliberately empty; the password comes from the environment, not
from a committed file.
`k3s-agent.yaml` is NOT committed: it contains a K3s server join token.
It is now gitignored, and the token should be rotated if that file has
ever left this machine.
ruff clean on the whole package.