Task 08 (1/2): e2e infrastructure — Dockerfile, compose stack with real Lemmy federation, CI, lexicon drift check master
Plain-HTTP Lemmy<->Tidepool federation in compose: Lemmy 0.19.19 built from source in debug mode (allow_http_urls is compile-time-only), both sides portless on :80, BRIDGE_SCHEME=http (dev-only, refused in production). Service actor type Application->Service (Lemmy's actor enum drops Follows otherwise). PLC directory pinned by commit; ports loopback-only; Jetstream healthchecked for --wait. Review fixes (7-reviewer panel): https->http redirect-downgrade guard on all manual redirect follows (production MITM vector); webfinger http fallback narrowed to transport-level failures, surfaces both legs' errors, +4 tests; minted DID PDS endpoints follow BRIDGE_SCHEME; make e2e cleans up and dumps logs on up-failure, propagates teardown status, --wait-timeout 600; check-lexicons fail-open holes closed; sync-lexicons no longer nests on upstream bridge/ collision (and no longer deletes the bridge-owned lexicon on re-sync). tests/e2e/, FOLLOWUPS.md, README updates land with part 2 after their own review pass. make e2e green pre- and post-fix (8/8 scenarios). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>