fix(adapters): discriminate mbox separators deterministically - #153
Closed
titanwings wants to merge 2 commits into
Closed
titanwings wants to merge 2 commits into
titanwings wants to merge 2 commits into
Conversation
A sixth verification round showed that widening the date shapes had admitted prose: 'From 09:30 until 17:00 we are closed.' and 'From the 11/09/2026 invoice is attached.' split a message and dropped its tail, while a hyphenated month name still failed to split a real mailbox. The sender token now discriminates, because a from_ line names an address or a system sender while prose starts with an ordinary word or a time-like number; only then must the remainder be empty or start with a date shape. That rejects every prose counter-example while covering the documented shapes, including the hyphenated, slashed, lowercase, and full-weekday forms. A body line that looks like a separator but is not recognized is now counted and reported as a warning instead of being decided silently. The round also exposed a flaw in the author's own test: it placed the tested separator on the first line, where splitMailbox always starts a message, so any nonsense rule passed. The tests now place every separator between two messages and assert that nonsense and prose do not split.
…he sender token A seventh verification round measured that gating on the sender token merged 17 real separator shapes that split before it: a bare local username, a hostname, or a domain-only sender are all legitimate from_ lines, so the token cannot tell a separator from prose. The date itself discriminates when it must be complete: a month-name date always carries a day and a time, and a numeric date either carries a time or ends the line. Every real writer's format splits again, and prose that merely starts with a number, a month, or a time stays in the body.
Owner
Author
|
Superseded: this stacked series is consolidated into the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
fix(adapters): discriminate mbox separators deterministically
Commits
Stack
Stacked on
pr/03-capacity-honesty; the whole series ends atdistilly-work(0bd924e).Verification
Every feature carries an author report and an independent audit in the delivery evidence folder (
host-verification/), including screenshots and the audit verdict that drove the fixes. Gates on the top of the stack: format, lint, docs, release check, and 1163 tests.Real hosts
Codex, Claude Code 2.1.268, OpenClaw 2026.9.2, Hermes v0.19.0, and DSH 0.1.5-rc.1 were each exercised end to end (install, host-visible confirmation, exactly five MCP tools, person Skill install/remove, uninstall). Capacity fixtures are recorded for Codex 0.146.0, OpenClaw 2026.3.24, and Hermes v0.9.0; newer host versions run on the labelled conservative floor.
Evidence
Author reports and screenshots (delivery evidence folder
host-verification/):Independent audit reports: