aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-10 17:00:04 +0200
committerDanilo M. <danix@danix.xyz>2026-09-10 17:00:04 +0200
commit7eb9f064dfbfc2fafd4d26eaeb7e83ce925fba6f (patch)
tree1dc1ff8000522eef621514c2fe9f7a1cf682fa78
parentfddfef7cd4ff8ec9cac3e3397ff0a07579abf2c9 (diff)
downloadabusectl-7eb9f064dfbfc2fafd4d26eaeb7e83ce925fba6f.tar.gz
abusectl-7eb9f064dfbfc2fafd4d26eaeb7e83ce925fba6f.zip
fix: re-ask a quoted name or org instead of losing the run
init._quoted() refuses a double quote rather than escaping it, so a name or organisation containing one raised out of build() after every other question had been answered, and _cmd_init turned that into an exit code. An org name is likelier to carry a quote than an API key is, which is the path Task 8 had just guarded. Validated at the prompt that asked for it, which is the rule AGENTS.md records from the hand test that found four instances of the opposite. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0176FYdVfpzUq8S9jecqQqL6
-rw-r--r--abusectl/cli.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/abusectl/cli.py b/abusectl/cli.py
index 800ca1a..76ed096 100644
--- a/abusectl/cli.py
+++ b/abusectl/cli.py
@@ -239,8 +239,12 @@ def _ask_reporter() -> dict:
print("is redacted. Leave any of these blank to skip it.")
answers = {
- "reporter_name": _ask("\nYour name (Enter to skip): "),
- "reporter_org": _ask("Your organisation (Enter to skip): "),
+ # _ask_quotable, not _ask: both values reach init._quoted(), which
+ # refuses a double quote, and an org name is likelier to carry one
+ # than an API key is. Re-asked here rather than raised after the
+ # next question, which is the standing rule this file records.
+ "reporter_name": _ask_quotable("\nYour name (Enter to skip): "),
+ "reporter_org": _ask_quotable("Your organisation (Enter to skip): "),
"reporter_email": _ask_reporter_email(),
}