Files
felhom.eu/documentation/audits/pg-last-six-2026-09-30/tools/sparky_undo.sh
T
admin 25cb3eb9c1
gates / gates (push) Successful in 29s
The last six PostgreSQL apps decided; the gate's wait seen live by day; catalog currency; stale rows
- R-463 CLOSED: rallly, outline, sparkyfitness -> PostgreSQL 18 (catalog 25ffd89 / aeb0cd6 / 1666572),
  each proven on the bench and on 9202 through the guarded Update with one undo case; zipline,
  adventurelog, immich stay on 16 by 09 decision 42's rule (upstream runs 16 / 16 / 14).
- Part F: bookstack, kimai, audiobookshelf, n8n, navidrome, grafana, komga moved on both venues;
  immich not (R-732: its first start OOM-killed its database on the bench).
- R-687 item 4 PROVEN LIVE on demo-hp: two deferrals while the leg stepped two apps, the whole-guest
  backup on the first poll after, success; config + window put back and read back.
- Catalog currency audit (Part D): 25/53 behind inside a major, 19 across; night-updatable 28 -> 31 (+1).
- R-446 and R-440 narrowed (measured on demo-hp); R-624 corrected (outline, rallly, zipline have routes);
  R-548 note (demo-hp's local tier refused for space since 09-27).
- New rows: R-730 (the ISO 1.29.0 build commit cannot be proven -> no tag; installer-v* is the script's
  line), R-731 (tag-shape switches), R-732. Register 361 -> 364.
- 09 §3: the 2026-09-30 operator notes (by day; Tester-2 pre-checks done; decision 52 not needed, not
  recorded); §6.4 dated currency note. STATUS, CONTEXT, REPORT-pg-last-six-2026-09-30.md.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-30 14:47:12 +02:00

31 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# sparkyfitness's undo case on 9202. Its happy path ran FIRST (box/sparkyfitness/move.txt), so the app is on 18;
# the undo case needs it on 15 again. Through the product only: remove (stop + remove with data), the DRILL
# catalog put back at 15 (a revert commit in the drill repo — never the live catalog), a fresh install at 15,
# seed + C1, the drill step put back, then undocase.py. Evidence: box/sparkyfitness/undo-*.txt.
set -u
cd "$(dirname "$0")"
D=/mnt/5_hdd/felhom.eu/drill/app-catalog-drill
L=../box/sparkyfitness/undo-setup.txt
exec > >(tee -a "$L") 2>&1
echo "# $(date -u +%FT%TZ) sparkyfitness undo-case setup"
python3 - <<'PY'
import sys; sys.path.insert(0, '.')
import walk as w
w.login()
w.remove("sparkyfitness")
print("volumes left:", w.guest("docker volume ls -q | grep -i sparky || echo none").strip())
PY
git -C $D pull -q --rebase origin main
STEP=$(git -C $D log --format=%h -1 --grep='DRILL sparkyfitness: sparkyfitness-db postgres:15-alpine -> postgres:18-alpine')
echo "drill step commit: $STEP"
git -C $D revert --no-edit "$STEP" >/dev/null && git -C $D push -q origin main && git -C $D log --oneline -1
python3 -c "
import sys; sys.path.insert(0,'.'); import walk as w; w.login(); print('sync_rescan', w.sync_rescan('sparkyfitness','postgres:15-alpine'))"
timeout 1500 python3 boxmove.py prep sparkyfitness sparky 2>&1 | tail -8
REV=$(git -C $D log --format=%h -1)
git -C $D revert --no-edit "$REV" >/dev/null && git -C $D push -q origin main && git -C $D log --oneline -1
python3 -c "
import sys; sys.path.insert(0,'.'); import walk as w; w.login(); print('sync_rescan', w.sync_rescan('sparkyfitness','postgres:18-alpine'))"
timeout 1500 python3 undocase.py sparkyfitness sparky sparkyfitness-db sparky sparkyfitness_db 2>&1 | grep -E 'RESULT|before:|after:|setup|control|phase \+' | cut -c1-200