diff options
Diffstat (limited to 'docs/BACKLOG.md')
| -rw-r--r-- | docs/BACKLOG.md | 10 |
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 |
