Skip to content

Commit 212ccaf

Browse files
PHASE-006: reader integrity, safe message repair, and 1.3.4-rc.1 live acceptance (#12)
Squash-merge the qualified PHASE-006 implementation and 1.3.4-rc.1 release identity candidate into main after successful branch and pull-request CI.
1 parent 21dff33 commit 212ccaf

56 files changed

Lines changed: 3006 additions & 195 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/ci.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,5 +131,5 @@ jobs:
131131
- name: Release verification
132132
run: |
133133
python scripts/verify_release.py \
134-
dist/mailstack-1.3.3-source.zip \
135-
--checksum dist/mailstack-1.3.3-source.zip.sha256
134+
dist/mailstack-1.3.4-rc.1-source.zip \
135+
--checksum dist/mailstack-1.3.4-rc.1-source.zip.sha256

‎.github/workflows/release.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
path: |
6464
dist/*.zip
6565
dist/*.sha256
66-
docs/RELEASE_NOTES_1.3.3.md
66+
docs/RELEASE_NOTES_1.3.4.md
6767
docs/FORENSIC_AUDIT_REPORT.md
6868
if-no-files-found: error
6969

@@ -121,7 +121,7 @@ jobs:
121121
--verify-tag
122122
--target "$GITHUB_SHA"
123123
--title "MailStack ${RELEASE_VERSION}"
124-
--notes-file docs/RELEASE_NOTES_1.3.3.md
124+
--notes-file docs/RELEASE_NOTES_1.3.4.md
125125
)
126126
if [[ "$RELEASE_PRERELEASE" == "true" ]]; then
127127
args+=(--prerelease --latest=false)

‎CHANGELOG.md‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,26 @@
22

33
All notable repository-level changes are recorded here. Application history before the open-source conversion remains in `mailbox-app/CHANGELOG.md`.
44

5+
## Unreleased — PHASE-006 reader integrity and repair
6+
7+
### Corrected
8+
9+
- Prevented stripped HTML `<style>`/head/active blocks from leaking CSS text into the visible message body while preserving the deny-by-default sanitizer posture.
10+
- Removed blocked remote image nodes so tracking/remote images do not leave broken-image residue in the protected reader.
11+
- Removed the permanent protected-rendering banner from the normal reader while retaining sandbox, no-referrer, sanitizer, URL and active-content restrictions.
12+
- Added a bounded, idempotent existing-message body repair path that re-parses verified Maildir source without delete/re-ingest behavior and preserves message identity/state/attachments.
13+
- Disabled the unused Gunicorn control interface through source-level configuration rather than weakening systemd filesystem confinement.
14+
15+
### Verification state
16+
17+
- Local PHASE-006 focused qualification: 60 tests passed; targeted Ruff, Bandit, Django system check and migration-drift gates passed.
18+
- PHASE-006 implementation commit `90175b7a4549cb67d874692081bd5b0484eddccc` passed GitHub Actions CI run `32183300485`.
19+
- Owner approved `1.3.4-rc.1` as the PHASE-006 live-acceptance pre-release identity; PR/main/tag publication and controlled live acceptance remain pending.
20+
21+
### Compatibility
22+
23+
- No database migration, Postfix/Dovecot/LMTP/Maildir routing change, authorization redesign, outbound feature, broad UI redesign, installer change, or version bump is included.
24+
525
## 1.3.3 — PHASE-005A qualification correction
626

727
### Corrected

‎VERSION‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.3.3
1+
1.3.4-rc.1

‎design/DESIGN_MANIFEST.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@
561561
"unsupported_features_inactive": true
562562
},
563563
"project": "MailStack",
564-
"release_version": "1.3.3",
564+
"release_version": "1.3.4-rc.1",
565565
"schema_version": 1,
566566
"source_archive": {
567567
"archive_crc": "PASS",

0 commit comments

Comments
 (0)