Companion to encryption4all/postguard#251, which gates the container bytes but is path-filtered to pg-core/pg-wasm — the envelope lives here (src/email/: buildMime, createEnvelope, extract*), so envelope changes currently merge ungated. This class has already shipped twice: pg-js >=1.1 silently stopped emitting body armor, breaking Thunderbird detection (encryption4all/postguard-tb-addon#85), and the data.bin zip asymmetry broke the website's uuid decrypt path (#39 / encryption4all/postguard-website#134).
Required PR check, path-filtered to src/email/**, both directions:
- Forward — HEAD's buildMime/createEnvelope output for every tier (1: body fragment, 2: postguard.encrypted attachment, 3: cryptify link) must be detected and extracted by the published pg-js readers in the COMPATIBILITY.md support window, and must preserve what installed mail-client detection keys on (attachment name, application/postguard content type, x-postguard header).
- Archival — HEAD's extract/detection must parse every envelope fixture in the append-only corpus (encryption4all/postguard-e2e#19), including legacy formats old senders emitted (armored bodies).
Fixtures shared with encryption4all/postguard-e2e#19; reader set is the same list encryption4all/postguard#252 declares. Enforce via branch protection.
Part of encryption4all/postguard#247 (workstream C); sibling of encryption4all/postguard#251.
Companion to encryption4all/postguard#251, which gates the container bytes but is path-filtered to pg-core/pg-wasm — the envelope lives here (src/email/: buildMime, createEnvelope, extract*), so envelope changes currently merge ungated. This class has already shipped twice: pg-js >=1.1 silently stopped emitting body armor, breaking Thunderbird detection (encryption4all/postguard-tb-addon#85), and the data.bin zip asymmetry broke the website's uuid decrypt path (#39 / encryption4all/postguard-website#134).
Required PR check, path-filtered to src/email/**, both directions:
Fixtures shared with encryption4all/postguard-e2e#19; reader set is the same list encryption4all/postguard#252 declares. Enforce via branch protection.
Part of encryption4all/postguard#247 (workstream C); sibling of encryption4all/postguard#251.