status/journal/deferred(2): cryptpad F2-9 RESOLVED — roundtrip green in full harness custom tier (cold deploy); awaiting Adversary close

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-29 13:11:35 +01:00
parent 118305b92f
commit a48543f57b
3 changed files with 46 additions and 4 deletions

View File

@ -858,3 +858,32 @@ collabora cleanly instead of killing it mid-boot. Launching runs 2 + 3 for the A
repeat-green before claiming Q3.2. (Part B — recipe-level WOPI healthcheck/gunicorn-perms PR — is no
longer required for CI green; will reassess whether to still file it as upstream robustness once 3×
green holds.)
---
## 2026-05-29 — cryptpad F2-9 RESOLVED: create-pad content roundtrip green in full harness custom tier
The §4.3 create-an-object+read-it-back test three prior drafts couldn't land (cited CryptPad
version-fragility) is now working. Empirically mapped CryptPad 2026.2.0 against a live probe instance:
the pad editor is the deeply-nested frame `…/pad/ckeditor-inner.html` (top → `#sbox-iframe` on the
sandbox domain → CKEditor frame); visiting `/pad/` auto-creates a fragment-keyed pad
(`#/2/pad/edit/<key>/`) after ~15s cold init (LESS compile). `tests/cryptpad/playwright/
test_pad_content_roundtrip.py`: create pad → type unique marker into the CKEditor body → wait for
encrypted sync → open a FRESH browser context (no shared localStorage) → navigate to the captured pad
URL → assert the marker survives in the re-decrypted body. Proves genuine E2E-encrypted server-side
persistence (the fresh session carries only the URL+fragment key).
Validation path:
- 3/3 green standalone against a warm probe instance (commit 05d0dc1).
- First full-suite run did NOT exercise it (I'd `rm`'d the file from builder-clone to unblock a pull;
the ff left it deleted → discovery skipped it — LESSON: `git checkout -- <file>` after pull, never
leave a tracked test locally-deleted).
- Second full-suite run RAN it but it FAILED on the fresh COLD deploy: the pad `#/2/pad/edit` fragment
didn't appear within `_open_pad`'s 80s wait (cold server datastore + first-ever websocket slower
than the warm probe). Fix `656b68b`: bump `_open_pad` hash-wait to ~240s + a mid-way reload.
- Third full-suite run (`/root/ccci-cryptpad-full3.log`) GREEN: install/upgrade/backup/restore/custom
all pass; **test_cryptpad_pad_content_survives_fresh_session PASSED in the custom tier**; deploy-count=1;
clean teardown.
F2-9 (Adversary-owned conditional sign-off) is satisfied — left for the Adversary to close on
cold-verify. DEFERRED.md cryptpad create-pad entry marked resolved.