aboutsummaryrefslogtreecommitdiffstats
path: root/docs/BACKLOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/BACKLOG.md')
-rw-r--r--docs/BACKLOG.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md
index 63ea52c..3ab642f 100644
--- a/docs/BACKLOG.md
+++ b/docs/BACKLOG.md
@@ -9,6 +9,7 @@ number and gains a status rather than being renumbered.
| 2 | An IDN indicator resolves to no contact | S | open |
| 3 | Expose kept cases so qtmaildir can tag spam | ? | open, unsized |
| 4 | `Report-Type: phishing` is unverified against x-arf | XS | open |
+| 5 | `report.build()` raises KeyError on an identity with no email | XS | closed |
## 1. Skip boilerplate namespace URLs
@@ -137,6 +138,15 @@ expects.
## 5. `report.build()` raises KeyError on an identity with no email
+**Closed** by the `report` subcommand (Task 11). `cli._cmd_report()` refuses
+before building, with the not-configured exit code and a sentence naming the
+file to edit, rather than letting `build()` raise. The rule it applies is
+EMAIL REQUIRED, NAME AND ORG OPTIONAL: the address becomes the `From` and a
+report without one cannot be answered, while the other two are individually
+skippable at `init` and `text_part()` already renders whatever subset is
+present. `tests/test_cli.py` covers both halves, the refusal and the
+email-only identity that must still succeed.
+
**Observed.** `report.build(manifest, destination, identity)` reads
`identity.get("name", "")` defensively but `identity["email"]` directly, so an
identity carrying a name and no address raises `KeyError: 'email'` rather than