Status: Shipped
PR: #133
Depends on: milestones/wizard-json-parse.md (PR #132)
PR #131 typed wizard prose fields and source_paths. POST /api/open-bundle
and POST /api/tool/update still used str(data.get(...) or default).
path: ["/tmp/bundle"] became "['/tmp/bundle']" and looked like a
missing yaml file. ref: true became "True", which matches the git-ref
allowlist and would pip install from that ref. ref: 0 / ref: false
are falsy, so they silently fell through to "main".
path and ref must be JSON strings when present. Missing / null path
still means empty (existing path is required). Missing / null ref still
defaults to main. Empty ref still defaults to main.
- List / bool / number
pathreturns 400 - Bool / number / list
refreturns 400 (does not pip-install) - Missing
refstill defaults tomain -
ruff check src/ tests/ -
pytest tests/(760 passed, 1 skipped) -
docgen benchmark(no clock change; meets baseline)
- Wizard
except Exceptionaroundnarration_topic_label - Focus
pathsmissing vs empty (already typed as a list of strings)