Bump to 0.5.2 (mb.kludge FTS-conformance fixes)
Rolls up two consumer-surfaced interop fixes that landed earlier today (cd2cc90FLAGS space-separator,ee0f1caAREA: envelope recognition) into a tagged release so NR can stabilise its pin. Both caught by NetReader's hpt-vs-nr byte-diff harness. See CHANGELOG.md for the full writeup. No API change. Pure behaviour fix.
This commit is contained in:
32
CHANGELOG.md
32
CHANGELOG.md
@@ -14,6 +14,38 @@ Tags below the 0.5 line were placed retroactively on 2026-04-19.
|
||||
The corresponding commit messages carry the canonical release
|
||||
notes; this file is a quick index.
|
||||
|
||||
## 0.5.2 -- 2026-04-19 (FTS-conformance fixes from NR hpt-compare suite)
|
||||
|
||||
Two consumer-surfaced interop bugs in `mb.kludge`, both caught by
|
||||
NetReader's hpt-vs-nr byte-diff harness. Real-world impact:
|
||||
previous `BuildKludgePrefix` output failed to round-trip through
|
||||
HPT / fmail / NR for FLAGS kludges, and previous `SplitKludgeBlob`
|
||||
leaked the FTS-0004 AREA: envelope into on-disk bodies.
|
||||
|
||||
- **`BuildKludgePrefix` FLAGS emission** used a colon separator
|
||||
(`^AFLAGS: DIR`), but FTS-4001 §4 specifies a space (`^AFLAGS DIR`)
|
||||
and every downstream parser (NR's ParseKludges, HPT's getFlags,
|
||||
fmail's getKludge) expects no colon. Symptom: FLAGS DIR / IMM
|
||||
routing silently fell through to normal routing because consumers
|
||||
didn't recognise the kludge at all. Fix: one-line drop of the
|
||||
colon from the emit template. `MSGID:` / `REPLY:` / `PID:` /
|
||||
`CHRS:` / `TZUTC:` keep their colons per their respective specs.
|
||||
Commit: `cd2cc90`.
|
||||
- **`ParseKludgeLine` AREA: recognition.** FTS-0004 puts
|
||||
`AREA:<tag>` at the head of a packet-message body with no SOH
|
||||
prefix, same shape as the `SEEN-BY:` / `PATH:` trailing control
|
||||
lines the parser already handled. Without AREA: in the trail-
|
||||
control list, `SplitKludgeBlob` left the envelope in PlainBody,
|
||||
so msgbase writers stored `AREA:BINECHO` as the first ~12 bytes
|
||||
of the on-disk message body. Symptom (NR): UUE decode output
|
||||
inflated by the envelope length per section. Fix: add `AREA:`
|
||||
to the isTrailControl list and dispatch `'area':` into
|
||||
`A.SetValue('area', ...)` -- same attribute slot 0.5.0 already
|
||||
populates from `MessageBaseOpen`'s area-tag argument on reads.
|
||||
Commit: `ee0f1ca`.
|
||||
|
||||
Thanks to NR for catching both via the hpt-compare harness.
|
||||
|
||||
## 0.5.1 -- 2026-04-19 (security-hardening round)
|
||||
|
||||
Retroactive tagging discipline established. Before this release,
|
||||
|
||||
@@ -114,9 +114,9 @@ Unit-name convention follows the Fimail style: `ma.<category>.<name>.pas`
|
||||
|
||||
Early development. APIs may move until 1.0.
|
||||
|
||||
**Current: 0.5.1** — see [`CHANGELOG.md`](CHANGELOG.md) for the full
|
||||
**Current: 0.5.2** — see [`CHANGELOG.md`](CHANGELOG.md) for the full
|
||||
release history. Downstream consumers should pin by tag
|
||||
(`v0.5.1`), not commit hash.
|
||||
(`v0.5.2`), not commit hash.
|
||||
|
||||
**0.2 is a breaking change vs 0.1.** `TUniMessage` lost its 13 named
|
||||
fields (WhoFrom/WhoTo/Subject/MsgNum/Attr/etc.) in favour of a strict
|
||||
|
||||
@@ -17,8 +17,8 @@ interface
|
||||
const
|
||||
MB_VERSION_MAJOR = 0;
|
||||
MB_VERSION_MINOR = 5;
|
||||
MB_VERSION_PATCH = 1;
|
||||
MB_VERSION = '0.5.1';
|
||||
MB_VERSION_PATCH = 2;
|
||||
MB_VERSION = '0.5.2';
|
||||
|
||||
implementation
|
||||
|
||||
|
||||
Reference in New Issue
Block a user