CHANGELOG + REPORT: paperless-ngx 18, tandoor 17, adventurelog v0.13.0
gates / gates (push) Successful in 2s

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-27 12:55:35 +02:00
parent 06ea7da7ba
commit f1a7d6c9fd
2 changed files with 34 additions and 17 deletions
+13 -17
View File
@@ -1,18 +1,14 @@
# REPORT — 2026-09-25 evening: docmost's PostgreSQL 16 → 18, the harness converts, the gate lets one app through
# REPORT — 2026-09-27: paperless-ngx → PostgreSQL 18, tandoor → 17, adventurelog → v0.13.0
- **Harness v4** (`6a4a5f0`, `7036119` dump fix): a PostgreSQL major is converted on the bench the box's way; `render`
and `--write-ladder` move a PostgreSQL 18 data mount to `/var/lib/postgresql`; `--write-ladder` writes
`engine_conversion` only when BOTH venues converted it. `test_pg_conversion.py` (10 checks).
- **`check-engine-major.py`**: a PostgreSQL major passes only with its proven, two-venue, marked ladder entry, alone in
its commit; the postgis family is judged now. Decoys: 1 genuine, 5 refused (no mark, one venue, the mark in a comment,
bundled, postgis) — red-proofed (`felhom.eu/documentation/audits/night-2026-09-26/C/C2-*`).
- **docmost moved** (`afd3a60`): `postgres:16-alpine` → `postgres:18-alpine`, mount moved, `engine_conversion` written by
the harness. Bench (throwaway LXC 9401, destroyed): converted in 11.0 s, check equal over 48 tables, seed read back, 0
kills; negative control C3 → `failed`. Box: 9202 through the product (see the controller REPORT). **docmost's own
limit 384M → 512M** (`09` §3 decision 39): the watch measured 91 % at 384M and 80.4 % at 512M — Node sizes its heap
from the limit (R-693). The Hungarian prerequisite line changed with it; `copy_freeze` updated on purpose (the gate
caught the first push).
- **nextcloud** `after_load: php occ files:scan --all` (`9cc829c`, the Part E helper): a file written after the last
backup is invisible after a load until the rescan (measured).
- **Not moved:** adventurelog v0.13.0 (R-655) — its `SKIP_WORLD_DATA=1` switch and the cached dataset file are now
measured; the move needs a choice between the two options written in the row.
Brief: version-travel (Parts B and C). Architecture read: `09-update-architecture.md` §3 decisions 35–42, §6.4 parts 4, 5, 10.
| app | move | bench (LXC 9401) | box 9202 (guarded Update) | commit |
|---|---|---|---|---|
| paperless-ngx | postgres 16 → 18 (+ mount) | converted 35.4 s, 72 tables equal, seed ✓, anon peak 40.0 % | converted, done 64.6 s, seed ✓ | `46affe0` |
| tandoor | postgres 16 → 17 | converted 23.6 s, 100 tables equal, seed ✓, anon peak 78.7 % (app) | converted, done 52.3 s, seed ✓ | `53b84ca` |
| adventurelog | v0.12.1 → v0.13.0 (+ health + world-data fixes) | healthy 217 s, file reused, seed ✓, anon peak 73.0 % | done 204 s (5-min wait), file reused, seed ✓ | `06ea7da` |
Engine gate on the push range printed `ALLOWED` for both PostgreSQL moves. Catalog gates: all OK. Not moved:
calcom, claper (no headless seed route checked this session), immich and the PostGIS family (out of scope).
Observation: under the drill's 90 s health wait adventurelog v0.13.0 is undone (its backend needs ~3 min at first
start); the product default is 5 min.