status(2): fix Q4.3 bluesky claim text (heredoc had eaten backtick code spans)

This commit is contained in:
2026-05-30 02:51:48 +01:00
parent 4760f9676a
commit 7d69a596a7

View File

@ -226,43 +226,42 @@ SKIP no longer yields a GREEN `!testme`.
**Gate: Q4.3 bluesky-pds — CLAIMED @2026-05-30, awaiting Adversary.**
**WHAT.** bluesky-pds (atproto Personal Data Server; TLS-passthrough recipe — pds + caddy) runs its
**full lifecycle GREEN**install + upgrade (real prev→latest crossover) + backup + restore + custom.
This completes its P4 (the functional suite was already FULL from the Q3/Q4 sprint).
**WHAT.** bluesky-pds (atproto Personal Data Server; pds + caddy) runs its **full lifecycle GREEN**
install + upgrade (real prev→latest crossover) + backup + restore + custom. This completes its P4 (the
functional suite was already FULL from the Q3/Q4 sprint).
- **P4 (the addition):** new data-integrity overlay using a DETERMINISTIC atproto **account** as the
marker (recipe-aware data in the PDS sqlite under /pds — the backed-up volume), NOT a loose file, so
the restore assertion catches a restore that fails to reload the running PDS's held-open sqlite (the
data-loss class cc-ci caught in immich + mattermost). creates the account,
asserts it resolves, DELETES it (so a successful restore is
observable — non-vacuous), asserts it resolves again. **Result: restore PASSES** — the
marker account survives backup→restore (and the upgrade). **bluesky's volume restore round-trips
cleanly — NO recipe-PR needed** (unlike the postgres recipes whose running DB didn't reload).
- **P2 parity:** → (account lifecycle via the
goat CLI). P3 §4.3 create-and-read + delete ported + extended with the atproto post round-trip.
- **P3 (≥2 separate non-vacuous functional tests):** (§4.3: goat admin account create → public createSession → repo.createRecord post
→ getRecord text round-trip → account delete) + (distinctive atproto
envelope). Plus + (auth
gating). Distinct PDS layers.
- **P5/P6 N/A:** self-contained (no external dep); atproto is an API/CLI protocol, fully exercised; no
browser-only UX owed.
data-loss class cc-ci caught in immich + mattermost). `ops.pre_backup` creates the account,
`test_backup` asserts it resolves (`com.atproto.repo.describeRepo`), `ops.pre_restore` DELETES it (so
a successful restore is observable — non-vacuous), `test_restore` asserts it resolves again.
**Result: restore PASSES** — the marker account survives backup→restore (and the upgrade).
**bluesky's volume restore round-trips cleanly — NO recipe-PR needed** (unlike the postgres recipes
whose running DB didn't reload).
- **P2 parity:** `goat_account.py``functional/test_account_and_post.py` (account lifecycle via goat).
- **P3 (≥2 separate non-vacuous functional tests):** `test_account_and_post.py::test_account_lifecycle_and_post_roundtrip`
(§4.3: goat admin account create → public createSession → repo.createRecord post → getRecord text
round-trip → account delete) + `test_describe_server.py::test_describe_server_returns_atproto_envelope`
(distinctive `com.atproto.server.describeServer`). Plus `test_pds_health` + `test_session_auth`.
- **P5/P6 N/A:** self-contained (no external dep); atproto is an API/CLI protocol, fully exercised.
**HOW (Adversary, cold, on cc-ci):**
`ssh cc-ci 'cd /root/<your-clone> && git pull && RECIPE=bluesky-pds PR=0 cc-ci-run runner/run_recipe_ci.py'`
**EXPECTED:**
- RUN SUMMARY: `deploy-count = 1`; `install/upgrade/backup/restore/custom` **all pass**.
- Upgrade: `upgrade→PR-head: head_ref=b2d86efb chaos-version=b2d86efb version=0.1.1+v0.4→0.2.0+v0.4` (HC1, head_ref==chaos-version, real prev→latest crossover).
- Upgrade: `head_ref=b2d86efb chaos-version=b2d86efb version=0.1.1+v0.4→0.2.0+v0.4` (HC1, real crossover).
- Restore: `tests/bluesky-pds/test_restore.py::test_restore_returns_state PASSED` — the marker atproto
account survives the volume backup→restore (non-vacuous: pre_restore DELETES it first).
- Custom — **4 PASS**: `test_account_lifecycle_and_post_roundtrip`,
`test_describe_server_returns_atproto_envelope`, `test_pds_health_returns_version`,
`test_get_session_requires_auth`.
- Clean teardown: post-run no `bsky-*`/pds stack/volumes/secrets.
- Clean teardown: post-run no pds/bsky stack/volumes/secrets.
**WHERE.** cc-ci overlay (no recipe-PR): `tests/bluesky-pds/{_p4.py,ops.py,test_upgrade.py,
test_backup.py,test_restore.py,recipe_meta.py,install_steps.sh,functional/*.py}`. cc-ci commit for P4:
the `feat(2): bluesky-pds P4 data-integrity overlay` commit. Authoritative log
`/root/ccci-bluesky-full.log` (5 tiers + 4 custom green, deploy-count=1, clean teardown).
test_backup.py,test_restore.py,functional/*.py}`. cc-ci commit `4760f96` region (P4 overlay
`feat(2): bluesky-pds P4 data-integrity overlay`). Authoritative log `/root/ccci-bluesky-full.log`
(5 tiers + 4 custom green, deploy-count=1, clean teardown).
---