aboutsummaryrefslogtreecommitdiffstats
path: root/docs/plans
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-10 10:38:10 +0200
committerDanilo M. <danix@danix.xyz>2026-09-10 10:38:10 +0200
commit37d723f2ffd55dcca141831ee2368b5b49618de8 (patch)
tree6b1a2c1c126a92a506f29fc9dbdd44f2f041713a /docs/plans
parent5f9bbeb509773e5280995b39b44cf9be9c29ece2 (diff)
downloadabusectl-37d723f2ffd55dcca141831ee2368b5b49618de8.tar.gz
abusectl-37d723f2ffd55dcca141831ee2368b5b49618de8.zip
feat: ask for the reporter identity during init
Each answer is validated at the prompt that asked for it, and a skipped answer is absent from the file rather than an empty string. Two defects fixed beyond the plan, both in the carry-across rule. Sections build() does not produce are preserved verbatim, and that rule was written when [general] was the only section it produced. Emitting [reporter] as well made preservation emit it TWICE, and tomllib refuses a duplicate table outright, so the rewritten file became unreadable and took the preserved [misp] key with it. Dropping [reporter] unconditionally instead would have been the opposite defect: an init that skips all three questions would silently delete an identity set by hand. What is dropped is now read back off the rendered text, so it is what this run actually wrote rather than what it might have written, and a section added to the builder later cannot be forgotten here. The email check is deliberately not an RFC 5322 validator. What a typo costs is a report whose reply address bounces, and the answers that produce that are a name with no @ at all, a spelled-out "at", and a stray space from a copy-paste. Anything stricter starts rejecting addresses that work. Skipping the address is allowed but warned about at the prompt: it is the one field a report cannot be built without, since it becomes the From. report.build() raises a bare KeyError on that identity today, which the three prompts made reachable from a config file for the first time; logged as backlog item 5 rather than fixed here, because where the check belongs is the report subcommand. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LByBnw83xr9YP85nskzkyE
Diffstat (limited to 'docs/plans')
0 files changed, 0 insertions, 0 deletions