POST /entities/{id}/promote now wraps the promote_entity call in
try/except ValueError → HTTPException(400). Previously the new
V1-0 provenance re-check raised ValueError that the route didn't
catch, so legacy no-provenance candidates promoted via the API
surfaced as 500 instead of 400.
Matches the existing ValueError → 400 handling on POST /entities
(api_create_entity at routes.py:1490).
Test: test_api_promote_returns_400_on_legacy_no_provenance inserts
a pre-V1-0 legacy candidate directly, POSTs to the promote route,
asserts 400 with the expected detail, asserts the row stays
candidate.
Test count: 547 -> 548. Full suite green in 72.91s.
Closes R14.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
33 lines
696 B
JSON
33 lines
696 B
JSON
{
|
|
"file-explorer": true,
|
|
"global-search": true,
|
|
"switcher": true,
|
|
"graph": true,
|
|
"backlink": true,
|
|
"canvas": true,
|
|
"outgoing-link": true,
|
|
"tag-pane": true,
|
|
"footnotes": false,
|
|
"properties": true,
|
|
"page-preview": true,
|
|
"daily-notes": true,
|
|
"templates": true,
|
|
"note-composer": true,
|
|
"command-palette": true,
|
|
"slash-command": false,
|
|
"editor-status": true,
|
|
"bookmarks": true,
|
|
"markdown-importer": false,
|
|
"zk-prefixer": false,
|
|
"random-note": false,
|
|
"outline": true,
|
|
"word-count": true,
|
|
"slides": false,
|
|
"audio-recorder": false,
|
|
"workspaces": false,
|
|
"file-recovery": true,
|
|
"publish": false,
|
|
"sync": true,
|
|
"bases": true,
|
|
"webviewer": false
|
|
} |