diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-03 11:01:59 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-03 11:01:59 +0200 |
| commit | 89b7add4d116be057b8fff2c751dc88df71baedf (patch) | |
| tree | c40a4cdd4279ca89dfcc760d8425a097c941e0e2 | |
| parent | dc06e733376b6ceb54a566a675580f183843d522 (diff) | |
| download | qtmaildir-89b7add4d116be057b8fff2c751dc88df71baedf.tar.gz qtmaildir-89b7add4d116be057b8fff2c751dc88df71baedf.zip | |
docs: remove personal details from the verification record
The manual verification notes named the real threads used to test against a
live mailbox. Most of it was incidental, but one was not: the automated
sender identified in items 12, 13 and 16-18 is a healthcare provider's
patient-notification service, and naming it disclosed a medical
relationship. Also removed a correspondent's username, a locatable GitHub
thread id, a real maildir name in the spec's example config, and absolute
home paths.
Every finding is restated generically and none lost substance: "a message
with 3 inline cid: parts" carries the same technical weight as naming the
sender did. Counts and timings are kept deliberately, since those are the
evidence behind the claims rather than anything identifying.
Commit history and the v0.1.0 tag were checked and were already clean, so no
history rewrite is needed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| -rw-r--r-- | docs/manual-verification.md | 31 | ||||
| -rw-r--r-- | docs/superpowers/plans/2026-08-02-qtmaildir-v1.md | 2 | ||||
| -rw-r--r-- | docs/superpowers/specs/2026-08-02-qtmaildir-design.md | 8 |
3 files changed, 21 insertions, 20 deletions
diff --git a/docs/manual-verification.md b/docs/manual-verification.md index 18f4249..80e0af7 100644 --- a/docs/manual-verification.md +++ b/docs/manual-verification.md @@ -158,8 +158,8 @@ document would throw away exactly what the user just asked to see. ## Item 7: PASS, after correcting the query -Verified with `from:nutpantz` against `thread:0000000000008faa` (22 -messages, 2 from that sender): the two matching messages rendered expanded, +Verified with a `from:` query against a 22-message thread in which only 2 +messages came from that sender: the two matching messages rendered expanded, the other twenty collapsed to one-line stubs, and the last message rendered expanded despite not matching, which is the guard that stops a thread rendering as nothing but stubs. @@ -178,7 +178,7 @@ per message, such as `from:`. ## Item 12: PASS -The AtlasMedica message (3 inline `cid:` parts) displayed all three images +A message with 3 inline `cid:` parts displayed all three images with no "Remote content blocked" banner. The absent banner is the stronger half of the result: nothing was denied, so the images came entirely from parts carried inside the message and no request left the machine. @@ -219,7 +219,7 @@ main-frame navigation is refused. ## Item 8: PASS -With the 22-message thread (`thread:0000000000008faa`) open: +With a 22-message thread open: | State | `QtWebEngineProcess` count | |---|---| @@ -265,26 +265,27 @@ where this checklist would earn its keep. Items 19-20 need a `mailsync.sh` to exist on this machine. Item 13 is unreachable with this mailbox: the only two messages found that -share a Content-ID (`95db36262ead...@phpmailer.0`, two AtlasMedica -notifications) sit in separate single-message threads, and the pane renders +share a Content-ID (two notifications from the same automated sender, +generated by the same mailer template) sit in separate single-message +threads, and the pane renders one thread at a time. The behaviour it describes is covered by `test_threadcidmap.cpp::sharedContentIdsDoNotCollide` instead. ## Items 16-18: PASS -Run against three 2023 AtlasMedica notifications, chosen as low-stakes: -already read, single-message, and identifiable afterwards by their -`notify/atlasmedica` tag. Every step went through the same +Run against three 2023 automated notifications, chosen as low-stakes: +already read, single-message, and identifiable afterwards by a tag unique to +that sender. Every step went through the same `applyTagsToThreads` path the GUI uses, with the index inspected before and after. | Step | Result | |---|---| -| Baseline | 3ea6, 3fb0, 4024 all in inbox; 4176 inbox threads, 62 atlasmedica | -| 16: archive 3ea6 | `inbox` gone, other tags intact, message still present; 4175 | -| 17: archive 3fb0 + 4024 together | one `tagsApplied`, 2 message ids from 2 thread ids in a single query; 4173, atlasmedica 59 | -| 18: undo the bulk archive | both restored to their exact original tag sets; 4175, atlasmedica 61 | -| Cleanup | 3ea6 restored by hand; 4176 and 62, identical to baseline | +| Baseline | all three threads in inbox; 4176 inbox threads, 62 tagged | +| 16: archive the first | `inbox` gone, other tags intact, message still present; 4175 | +| 17: archive the other two together | one `tagsApplied`, 2 message ids from 2 thread ids in a single query; 4173, tagged 59 | +| 18: undo the bulk archive | both restored to their exact original tag sets; 4175, tagged 61 | +| Cleanup | the first restored by hand; 4176 and 62, identical to baseline | Two things worth drawing out. Item 17 emitted a single `tagsApplied` with both message ids resolved in one combined query rather than one query per @@ -298,7 +299,7 @@ The mailbox was returned to its exact starting state, verified tag by tag. ## Items 19 and 20: PASS, with a caveat about the log pane -With `command = /home/danix/bin/mailsync.sh` configured, the config now +With the sync command configured, the config now produces no warnings at all, which is what item 1 originally asked for. Item 19: `start()` returned in 0 ms, so the UI is never blocked; a second diff --git a/docs/superpowers/plans/2026-08-02-qtmaildir-v1.md b/docs/superpowers/plans/2026-08-02-qtmaildir-v1.md index a847d8a..1d799c4 100644 --- a/docs/superpowers/plans/2026-08-02-qtmaildir-v1.md +++ b/docs/superpowers/plans/2026-08-02-qtmaildir-v1.md @@ -4354,7 +4354,7 @@ Create `docs/manual-verification.md` and record pass/fail for each: or rejected consistently. `config.cpp` validates existence by splitting the command on `' '` and taking the first field, while `MailSync` splits it with `QProcess::splitCommand`, which honours quoting. For - `command = "/home/danix/my scripts/mailsync.sh"` the two disagree: config + `command = "/home/you/my scripts/mailsync.sh"` the two disagree: config checks a path that does not exist and disables sync, so the failure is safe but the message is misleading. Confirm the behaviour, then decide whether to align config on `splitCommand` or to document the restriction. diff --git a/docs/superpowers/specs/2026-08-02-qtmaildir-design.md b/docs/superpowers/specs/2026-08-02-qtmaildir-design.md index 02c969e..67ba857 100644 --- a/docs/superpowers/specs/2026-08-02-qtmaildir-design.md +++ b/docs/superpowers/specs/2026-08-02-qtmaildir-design.md @@ -200,15 +200,15 @@ identity. ```ini [general] ; optional; omit to use notmuch's own database.path -; notmuch_config = /home/danix/.notmuch-config +; notmuch_config = /home/you/.notmuch-config [sync] -command = /home/danix/bin/mailsync.sh +command = /home/you/bin/mailsync.sh -[account.privateemail-danix] +[account.work] name = Danilo M. address = danix@danix.xyz -maildir = privateemail-danix ; relative to notmuch's database.path +maildir = work-mail ; relative to notmuch's database.path drafts = Drafts [account.gmail] |
