ops(svos): v0.0.24 (supersedes the unpushed v0.0.23; U22 after review) staged on nh3-svos; two-card cutover playbooks ready

This commit is contained in:
vh
2026-10-19 02:30:33 -07:00
parent 4b3f7769c0
commit ea2eba76a6
4 changed files with 108 additions and 2 deletions
@@ -0,0 +1,29 @@
# nh3-svos v0.0.24 step 2: restart ONLY svos-interface onto app-interface 0.0.8 (U22: verbs summaries + summary, namespace
# interface-summaries; the store state/apps/interface/summaries.sqlite3 is created at start). Raises a held card for
# app-interface: the WHOLE interface answers wrong-revision until Prime approves (about 30 s at v0.0.18). Run only after
# the judge's card is approved, with Prime at the board. Then Prime's two grants on ns:interface-summaries.
steps:
- name: current is d14dc94 and the judge's new revision is pinned
sudo: true
shell: |
readlink /opt/svos/current | grep -q d14dc94
python3 -c "
import sqlite3
c = sqlite3.connect('file:/var/lib/svos/state/svos.db?mode=ro', uri=True)
r = c.execute(\"select revision, state from app_manifests where slug='app-judge' order by revision desc limit 1\").fetchone(); print('judge', r)
assert r[1] == 'pinned', 'judge card not approved yet'"
changed_when: "false"
- name: Restart ONLY svos-interface (raises the held card)
sudo: true
shell: systemctl restart svos-interface; sleep 8; systemctl is-active svos-interface
verify:
- name: Interface on d14dc94; its manifest revision and card
sudo: true
shell: |
pid=$(systemctl show svos-interface -p MainPID --value); grep -q /opt/svos/releases/d14dc94 /proc/$pid/maps && echo "interface pid $pid on d14dc94"
python3 -c "
import sqlite3
c = sqlite3.connect('file:/var/lib/svos/state/svos.db?mode=ro', uri=True)
for r in c.execute(\"select slug, revision, substr(sha256,1,12), state from app_manifests where slug='app-interface' order by revision desc limit 2\"): print(r)
for r in c.execute(\"select id, kind, state, created_at, expires_at from cards where slug='app-interface' and kind='manifest' order by created_at desc limit 1\"): print(r)"
changed_when: "false"