Status: Shipped
PR: #132
Depends on: milestones/wizard-source-paths.md (PR #131)
request_json_object used Flask get_json(silent=True). Missing bodies
and invalid JSON both returned None, which became {}. A POST of
{not-json looked like an empty object and could write .docgen-state.json
or run generate-narration with no fields.
JSON null was also treated as a missing body.
Empty / whitespace-only bodies stay {}. Invalid JSON raises
WizardError. JSON null is rejected as a non-object (same as a list).
- Invalid JSON POST returns 400 and does not write state
- JSON
nullreturns 400 - Empty body still succeeds as
{} -
ruff check src/ tests/ -
pytest tests/(758 passed, 1 skipped) -
docgen benchmark(no clock change; meets baseline)
- Wizard
except Exceptionaroundnarration_topic_label