Files
felhom.eu/documentation/audits/version-travel-2026-09-26/B

B — the next PostgreSQL apps (2026-09-27)

Targets (09 §3 decision 42, read from each upstream): paperless-ngx → 18 (upstream compose ships postgres:18 at /var/lib/postgresql, Django ~5.2.5, psycopg 3); tandoor → 17 (upstream compose ships postgres:16-alpine; Django 5.2.16 documents up to 17). calcom and claper were not taken (no seed route in the fixtures); outline, rallly, zipline have none (R-624).

app bench (LXC 9401, apps/<app>/bench/) box 9202 (apps/<app>/box/)
paperless-ngx converted 35.4 s, check equal over 72 tables, seed ✓; memory anon peaks: webserver 40.0 %, postgres 3.8 %; 0 restarts precondition: Tier 2 copy of 00:30Z; converted 16 → 18 in 10.6 s (72 tables, 812 rows equal); done 64.6 s; seed ✓; pre-conversion copy KEPT
tandoor converted 23.6 s, 100 tables equal, seed ✓; tandoor app anon peak 78.7 % (cgroup 97.8 % = file cache), postgres 5.1 % converted 16 → 17 in 11.4 s (100 tables, 687 rows equal); done 52.3 s; seed ✓ — this run found R-699

Written into the live catalog by upgrade-test.py --write-ladder (46affe0, 53b84ca); the engine gate printed ALLOWED for both. Bench created and destroyed this session (B1-bench-create.txt, B9-bench-destroy.txt). demo-hp runs paperless-ngx: its automatic leg converts it on its next night (controller 0.275.0).