feat(svos): v0.0.14 live on nh3-svos + nh3-dev (cards approved 0909); hermes task runtime on the query-file route (Prime)

This commit is contained in:
vh
2026-10-17 09:11:10 -07:00
parent f843cd92b1
commit 77b75aa172
3 changed files with 68 additions and 1 deletions
+23
View File
@@ -23,6 +23,29 @@ configuration, enrollment and acceptance.
| App-consistent hook | svos-dev's `/etc/qemu/fsfreeze-hook.d/50-svos` stops the SVOS services on freeze and restarts the ones that were running on thaw. ⚠ **Debian's qemu-ga does NOT run fsfreeze hooks unless configured** (no `-F` in the unit, no `qemu-ga.conf` by default). Here `/etc/qemu/qemu-ga.conf` points it at **`/usr/local/sbin/fsfreeze-dispatch`** (`configs/qemu-ga/fsfreeze-dispatch`), which unlike the stock `/etc/qemu/fsfreeze-hook` propagates failure: if a freeze hook fails, it thaws that hook and the completed ones and exits 1, so qemu-ga refuses the freeze. **Live drill 2026-10-05 1952–1953 (services running):** quiesced backup `vm/111/2026-10-06T02:52:11Z` → kernel+interface down ~1–2 s, back by themselves, health ok. Refused freeze (temporary `60-drill-refuse` after 50-svos, since removed) `vm/111/2026-10-06T02:53:03Z` → the dispatcher unwound and restarted the services, and then **⚠ vzdump did NOT abort: it logged `ERROR: unable to freeze guest fs`, backed up UNFROZEN (crash-consistent, app live), and reported `Backup job finished successfully`, rc 0.** Both images mapped from PBS and mounted read-only (`ro,noload`) on nh3-pve-2, never booted: `svos.db` integrity ok (each image still carries its ~0.9 MB WAL: keep `-wal` with the db when restoring), interface `pins.sqlite3` integrity ok, config/key/config-generation hashes equal live, table counts equal live except `events`. **Monitoring:** `scripts/check-backup-freshness.sh` now reads the LOG of every OK vzdump task and reports ERROR lines; a freeze/thaw error is an APPLICATION-CONSISTENCY FAILURE, verdict **DEGRADED, exit 4** (alerted by the daily wrapper to infra-hermes). nh3-pve-2 was not in the check's node lists at all before 2026-10-05; it is now. Drill B is acknowledged by UPID in the script |
| Monitoring | Beszel native agent 0.18.7 (`playbooks/beszel-native.yaml`, `configs/beszel-agent/hosts/nh3-svos.env`), hub system `t6y646ifa3x7xxv`, alerts CPU>95%/15m, Disk>85%/5m, Memory>90%/10m, offline/2m. Up 2026-10-05 |
## Release 3726d73 / v0.0.14, the task-seat success gate (2026-10-17 0908–0910; Prime's in-session go, svos-dev thread `01M5558E19Q3ZK4RRZXQG6A2Y9`)
- **Kit:** kernel 0.0.14, connector base 0.0.10, app-interface 0.0.6, app-terminal 0.0.5 wheels and web build UI 0.0.19, all from a clean archive of
the tag. Everything else was carried byte-identical from 33a7077 (no source change; uv.lock changed only versions). Kit sha256 `380e64f6…`.
Staged first (`nh3-svos-3726d73-v0.0.14-stage.yaml`), then three phases in svos-dev's order:
- **A** (`nh3-svos-3726d73-v0.0.14.yaml`): offline backup to `backup/pre-3726d73` (schema 13 `svos.db` plus the v1 `briefs.sqlite3`, both via the
sqlite backup API with integrity ok, plus the config tar and `instance.toml.pre-3726d73`). Kernel READY in 0.73 s, with migration 0014, now schema 14.
- **B** (`nh3-dev-svos-3726d73-v0.0.14.yaml`): nh3-dev `current → 3726d73`, plus `[seat_host].scan_patterns` pointing at hermes's
`tools/threat_patterns.py` (backup `terminal.toml.pre-3726d73`). Only svos-terminal was restarted.
- **C** (`…-interface.yaml`): interface start (briefs v1→v2), then the front-door inventory (33a7077 becomes previous).
- **Cards:** terminal revision 5 (`9822cb2f…`, raised 0908:53) and interface revision 4 (`898902b4…`, raised 0909:04). Prime approved both,
at 0909:20 and 0909:27. All 7 apps were up by 0909:33.
- **Hermes query-file route** (Prime, same go): `task_argv` is now `hermes chat --query-file {task} --oneshot -Q --ignore-rules -t {toolsets}
--max-turns {max_turns} --run-budget {deadline_seconds} -m {model}`, with `task_toolsets = ["terminal", "file"]` and `task_max_turns = 200`
(`nh3-svos-hermes-query-file-route.yaml`, backup `instance.toml.pre-queryfile`). Config gen is now `c0e9beefe9bde65b`.
- **Rollback:**
- nh3-svos: stop the apps and the kernel, then restore `svos.db` and `state/apps/interface/briefs.sqlite3` from `backup/pre-3726d73`, then
restore `instance.toml.pre-3726d73`, then `current → releases/33a7077`, then start.
- nh3-dev: `current → releases/33a7077`, then restore `terminal.toml.pre-3726d73`, then restart svos-terminal.
- Both apps' older revisions would raise cards again.
- ⚠ **Card audio fails every time:** `synthesis_failed` on every card since at least 10-11, today's included; the Matrix summons do
arrive. This predates v0.0.14. Reported to svos-dev.
## Release 452a592 / v0.0.11, U15 task seats slice 1 (2026-10-13 2131–2133; Prime's 2010 go via svos-dev, thread `01M4WAGAS2Z0P8J6GZRSCRPH2Q`)
- **Order:** tonight's 21:30 vzdump of VM 111 finished 21:31:30, then `playbooks/svos-releases/nh3-svos-452a592-v0.0.11.yaml`