Commit Graph

341 Commits

Author SHA1 Message Date
admin 25ffd89ea6 rallly: PostgreSQL 16 -> 18, converted by the box (R-463)
The ONLY image move in this commit. Written by upgrade-test.py --write-ladder from both venues:
- bench LXC 9401 (harness v4): converted 16 -> 18 in 21.4 s, check equal over 31 tables, the seeded
  poll read back, 10-minute memory watch peak 61.6 % (anon), 0 kills, 0 restarts;
- box 9202 (controller 0.283.1, the product's guarded Update, drill catalog): converted, done in
  32.8 s, PG_VERSION 18, the poll read back through the front door. Undo case on 9202 first: the
  load failing (adminpack, which 18 lacks) -> undone in 57.5 s, back on 16, the poll read back.
Target 18: rallly's own upstream compose runs postgres:18-alpine at /var/lib/postgresql at
v4.11.1 (09 decision 42's rule). The data mount moves with the image (pg_mounts_for).
Evidence: felhom.eu/documentation/audits/pg-last-six-2026-09-30/

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-30 12:54:11 +02:00
admin e6f3ec2087 Fixtures: sparkyfitness, rallly and outline seed through their own front door (R-462, R-624)
- Sparkyfitness: better-auth sign-up/sign-in, a check-in weight stored and read back; a wrong
  password and an empty date must read as absent. Waits out the app's own 429 (one client
  address behind traefik).
- Rallly: sign-up, the six-digit e-mail code READ (select only) from the app's own
  verifications row in place of a mailbox, verify-email, sign-in, polls.make, readback by the
  public polls.get; an unknown id must be not found.
- Outline: the self-hosted first-run route installation.create (workspace + admin, refused once a
  team exists), an API key with Outline's own CSRF pair, a document, readback by documents.info;
  an unknown id must 404 and a wrong key 401.
- outline and rallly leave the NoRoute list: both had a front-door route after all.

Measured on the bench (LXC 9401) and on 9202 2026-09-30:
felhom.eu/documentation/audits/pg-last-six-2026-09-30/

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-30 12:53:35 +02:00
admin 6446197925 Sign-up locked twice (after_setup + case-insensitive blocks); wanderer closable (decision 48); ghost/HA/gramps probes; probe-measured gate; decoy fixture fix
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
2026-09-29 17:00:18 +02:00
admin f7d91069fb wanderer: first step says anyone can make an account (decision 47; not gated, R-714)
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
2026-09-29 11:24:38 +02:00
admin 6faf432e22 Setup gate on 28 more apps; signup_block on 11 (decision 47); claper R-713 base64; FIRST-ADMIN current
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
2026-09-29 11:08:56 +02:00
admin d0e7e2eb51 Setup gate on immich/n8n/audiobookshelf/uptime-kuma (decision 46); mealie/wger/calibre-web after_install; romm/zipline stale notes; grafana R-708; wger R-712
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
2026-09-29 09:19:05 +02:00
admin 580f3904d3 REUSE + README: the after_install convention (decision 45)
gates / gates (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-28 19:00:07 +02:00
admin a791aae057 FIRST-ADMIN.md: the 53-app first-admin audit (decision 45); CHANGELOG + REPORT
gates / gates (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-28 18:59:24 +02:00
admin ccd17da3c4 bookstack: after_install replaces the default admin@admin.com / password with a generated one (decision 45)
gates / gates (push) Successful in 1s
Proven on 9202 with controller 0.279.0 (drill 5ac5daf): the default no longer logs in, the generated first
password from the app page does, a wrong one does not. Copy freeze: bookstack's new/changed strings signed off.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-28 18:53:57 +02:00
admin 5248472cdb copy freeze: claper's four new/changed Hungarian strings signed off (decision 45)
gates / gates (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-28 18:48:08 +02:00
admin 9dc8a0531d claper: after_install replaces the seeded admin@claper.co / claper password with a generated one (decision 45, R-702)
Proven on 9202 with controller 0.279.0 (drill catalog c4cfb83): the default no longer authenticates, the
generated first password from the app page does, a wrong one does not; a restore keeps it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-28 18:47:37 +02:00
admin 82da54415c CHANGELOG + REPORT: calcom 1536M and PostgreSQL 18
gates / gates (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-28 11:49:25 +02:00
admin 037f956519 calcom: postgres 16 -> 18, mount to /var/lib/postgresql (engine conversion, bench + box proven; 09 decision 43)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-28 11:49:07 +02:00
admin 9555e73618 calcom: memory 768M -> 1536M — v6.2.0 was OOM-killed at every start (R-703); measured anon peak 817 MiB (53 %)
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
2026-09-28 11:25:11 +02:00
admin b35fc7fd17 harness: calcom fixture — its own first-run API (/api/auth/setup) + the public page readback, proven on 9202
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
2026-09-28 11:01:09 +02:00
admin 174a7625bd CHANGELOG + REPORT: claper PostgreSQL 17, calcom inconclusive
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
2026-09-28 10:55:54 +02:00
admin 4a249b93dd claper: postgres 16 -> 17 (engine conversion, bench + box proven; 09 decision 43)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-28 10:55:29 +02:00
admin c5015ce255 harness: claper fixture — its own release CLI (rpc register_user / authenticate), proven on 9202
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
2026-09-28 10:32:45 +02:00
admin f1a7d6c9fd 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
2026-09-27 12:55:35 +02:00
admin 06ea7da7ba adventurelog: v0.12.1 -> v0.13.0 with its health and world-data fixes in the same commit (R-655, 09 decision 41)
Written by upgrade-test.py --write-ladder: bench (harness v4) healthy in 217 s, the world-data file present and reused ("Latest data already imported"), 6 migration lines, seed read back, memory watch anon peak 73.0 %, 0 restarts; box 9202 through the guarded Update in 204 s with the product's default 5-min wait (a first try under the drill's 90 s wait was UNDONE correctly). Same commit: (1) the frontend healthcheck override is dropped — v0.13.0 brings its own (node at /usr/bin/node); (2) a world-data file that does not parse to its end is renamed aside before start so download-countries fetches it again — with an import pending, the image's own start crash-looped 10 times on IncompleteJSONError, with the step it was set aside, downloaded and healthy. Evidence felhom.eu/documentation/audits/version-travel-2026-09-26/C/.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-27 12:55:12 +02:00
admin 53b84cadb9 tandoor: PostgreSQL 16 -> 17, converted by the box (09 decision 42)
gates / gates (push) Successful in 2s
Written by upgrade-test.py --write-ladder: bench converted in 23.6 s, check equal over 100 tables, seed read back, memory watch anon peak 78.7 % (the app, not the engine), 0 kills; box 9202 converted through the guarded Update in 52.3 s, seed read back. The superseded 16 step keeps its definition in steps/. Evidence felhom.eu/documentation/audits/version-travel-2026-09-26/B/.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-27 12:08:57 +02:00
admin 46affe00d4 paperless-ngx: PostgreSQL 16 -> 18, converted by the box (09 decision 42)
Written by upgrade-test.py --write-ladder: bench (LXC 9401, harness v4) converted in 35.4 s, check equal over 72 tables, seed read back, 10-min memory watch (anon peak 40.0 %, 0 kills); box 9202 converted through the product's guarded Update (controller 0.275.0-rc1) in 64.6 s, seed read back. Mount -> /var/lib/postgresql (18). Evidence felhom.eu/documentation/audits/version-travel-2026-09-26/B/.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-27 12:08:57 +02:00
admin 0578eacc38 harness: paperless-ngx box fixture — Django's own createsuperuser
manage.py in paperless-webserver's WORKDIR, python3 on PATH; measured on 9202 (a username that cannot exist reads False) before the line was written.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-27 12:08:57 +02:00
admin 4f19b21e29 REPORT: docmost 16 -> 18, harness v4, the gate's proof clause
gates / gates (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-25 14:39:09 +02:00
admin 7036119471 harness v4: the conversion's dump stays in the work dir, never in the evidence
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
2026-09-25 14:33:48 +02:00
admin afd3a60214 docmost: PostgreSQL 16 -> 18, converted by the box (engine_conversion mark, both venues); docmost limit 384M -> 512M (09 decisions 35, 37, 39)
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
2026-09-25 14:32:42 +02:00
admin 9cc829c10a nextcloud: after_load runs its own rescan after a load of kept data (09 decision 36, Part E)
gates / gates (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-25 13:30:36 +02:00
admin 6a4a5f0cf7 harness v4 converts a PostgreSQL major; the engine-major gate passes one proven, marked app (09 decision 35)
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
2026-09-25 13:04:01 +02:00
admin f238a24cd9 CHANGELOG: rules — Peti's box retired
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
2026-09-25 11:33:50 +02:00
admin f389756b4d rules: Peti's box retired 2026-09-25 — the fence is DooPlex and ep0
gates / gates (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-25 11:04:59 +02:00
admin dd9c6ad57b CHANGELOG + REPORT: n8n and mealie moved (night 2026-09-25 Part E)
gates / gates (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-25 02:32:41 +02:00
admin b996218976 mealie v3.27.0 -> v3.28.0: proven on the bench (10-min memory watch, peak 23.1 %) and on 9202 through the guarded Update (night 2026-09-25 Part E)
gates / gates (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-25 02:32:17 +02:00
admin f14a6085e4 n8n 2.41.1 -> 2.41.2: proven on the bench (10-min memory watch, peak 22.4 %) and on 9202 through the guarded Update (night 2026-09-25 Part E)
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
2026-09-25 02:32:00 +02:00
admin c8025093d2 REPORT: step .felhom.yml files (night 2026-09-24)
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
2026-09-24 14:53:58 +02:00
admin cf7cf8456f steps/<key>.felhom.yml: gate rule 4b, writer, backfill (8) (R-664)
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
2026-09-24 11:45:34 +02:00
admin 635c7e68f7 REPORT + CONTEXT + CLAUDE.md: step definitions (2026-09-24)
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
2026-09-24 08:52:59 +02:00
admin 5ed599cd5f steps/ per ladder step: gate rule 4, writer, backfill (8); R-653, R-656; decoy suite reads live pins (R-663)
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
2026-09-24 07:57:51 +02:00
admin 585a7cba22 CONTEXT + REPORT: the night shift of 2026-09-23 (test record, 12 steps)
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
2026-09-24 00:23:42 +02:00
admin 5d49a11b31 nextcloud: 34.0.1 -> 34.0.4 (proven on the bench AND on 9202, with its test record) — files_may_change
gates / gates (push) Successful in 2s
"Upgrading nextcloud from 34.0.1.2 ..." then the seeded user read back
through occ (a never-created uid reads absent on the same call). The
bench's drive tree changed under the app (its appdata), so the entry is
marked files_may_change: an automatic update needs a fresh copy of the
files (09 decision 13). Memory: nextcloud's own 7.9 % (cgroup 100 % =
file cache), db 24.2 %; 0 kills. Abort refuses ("the version of the data
is higher") — the undo, not the old image, is the way back. Box (9202):
done, read back, R-626 clean. 09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 22:19:19 +02:00
admin b82b7c6439 immich: machine-learning v3.0.3 -> v3.2.2, now matching the server (proven on the bench AND on 9202)
gates / gates (push) Successful in 2s
2026-09-22's move took immich-server to v3.2.2 and left machine-learning at
v3.0.3; this step aligns them. Bench: the admin + an album (its own API)
read back; memory watch 12 053 requests all 200: server 51.4 %, ML 10.2 %,
postgres 35.1 % own memory (its cgroup peak 100 % is file cache, decision
22); 0 kills; abort starts-and-serves. Box (9202): done, read back, R-626
clean. 09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 22:01:41 +02:00
admin 431cdecb9e romm: database engine mariadb 11.4 -> 11.8, its own edge (proven on the bench AND on 9202)
gates / gates (push) Successful in 2s
After tonight's 5.3.0 -> 5.3.1 step (a separate commit, R-450). The engine
says "already upgraded to 11.8.9-MariaDB". Bench: seed read back; memory
watch 11 332 requests: romm's own memory 78 % of 768M (cgroup 84 %) — just
under the 80 % line, 0 kills; romm-db 26 %. Abort starts-and-serves.
Box (9202): done, read back, R-626 clean. 09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 22:00:45 +02:00
admin 376b2c3c21 kimai: database engine mariadb 11.6 -> 11.8, its own edge (proven on the bench AND on 9202)
gates / gates (push) Successful in 1s
The engine alone moves (R-450: an engine change gets its own edge). Asked of
the engine, not the log: "already upgraded to 11.8.9-MariaDB" after
MARIADB_AUTO_UPGRADE's mariadb-upgrade ran (Phase 1/8 on the box). Bench:
the seeded user read back; memory: kimai 6 % own (cgroup 100 %, cache),
kimai-db 37.9 %; 0 kills; abort starts-and-serves. Box (9202): done, read
back, R-626 clean. 09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 21:59:30 +02:00
admin 8d573ad5f8 emby: 4.11.0.1 -> 4.11.0.3 (proven on the bench AND on 9202, with its test record)
gates / gates (push) Successful in 2s
Bench: the first user (its own /Startup wizard API) read back from
/Users/Public; memory watch 11 987 requests, app memory 4.5 %, 0 kills;
abort starts-and-serves. Box (9202): done, read back, R-626 clean.
09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 21:55:15 +02:00
admin 04b63db880 n8n: 2.40.5 -> 2.41.1 (proven on the bench AND on 9202, with its test record)
gates / gates (push) Successful in 1s
Bench: the owner account (its own /rest/owner/setup) read back through its
own login, a wrong password refused; memory watch 11 935 requests, app
memory 22.7 %, 0 kills; abort starts-and-serves. Box (9202): done, read
back, R-626 clean. 09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 21:50:07 +02:00
admin fc1becc63d komga: 1.25.0 -> 1.27.1 and 768M (proven on the bench AND on 9202, with its test record)
gates / gates (push) Successful in 1s
Bench at 512M: proven but memory_tight (its own memory 94.6 %); per the
bar the limit is raised in the same commit and the watch re-run once:
at 768M 60 %, 0 kills, 11 940 requests all 200; abort starts-and-serves.
Box (9202, guarded Update, at 512M): done, read back, R-626 clean.
The komga fixture was fixed tonight (users/me lives at /api/v2).
09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 21:47:25 +02:00
admin 76cc1f57e6 navidrome: 0.64.0 -> 0.64.1 (proven on the bench AND on 9202, with its test record)
gates / gates (push) Successful in 2s
Bench: seed read back; memory watch 12 004 requests, app memory 6.3 %,
0 kills; abort starts-and-serves. Box (9202): done, read back, R-626
clean. The ladder continues from the backfilled 0.63.2 -> 0.64.0 step.
09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 21:44:31 +02:00
admin 657c83f919 opengist: 1.13 -> 1.15 (proven on the bench AND on 9202, with its test record)
gates / gates (push) Successful in 1s
1.15 (v1.15.2 today; its digest is in the entry) moved every page under /-/
(/login now 404, /-/login serves) and marks its session cookie Secure —
the account read back through its own page, a never-created user 404.
Memory: app 77.8 % of 128M, cgroup peak 100 % (file cache), 0 kills.
Box (9202): done, read back, R-626 clean. R-654 for the /login bookmark.
09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 21:42:09 +02:00
admin 1545c5f207 wishlist: v0.66.0 -> v0.67.1 (proven on the bench AND on 9202, with its test record)
Bench (harness v3, 512M after R-612): seed (its own /signup form) read back
through /login, a wrong password refused; memory watch 11 932 requests,
app memory 35.9 %, cgroup peak 52.9 %, 0 kills; abort starts-and-serves.
Box (9202, guarded Update): done, read back, R-626 clean. 09 decision 21.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 21:42:09 +02:00
admin efb738ca93 fixtures: nextcloud waits for occ status installed:true, not only /status.php 200
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-23 21:42:09 +02:00
admin e6afab9720 ghost: 6.64.0 -> 6.65.0 (proven on the bench AND on 9202, with its test record)
gates / gates (push) Successful in 2s
Bench (harness v3): seed read back; memory watch under real load
(10 538 requests, all 200) — app memory 24.9 %, cgroup peak 43.3 %,
0 kills; abort starts-and-serves. (Its first bench watch had no real
load — every request errored — and was re-run; kept as evidence.)
Box (9202, guarded Update): done, seed read back, R-626 clean.
09 decision 21.

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