The audit's substantive items shipped in chunks 1–4. Two remaining
loose ends inspected and parked:
- Generated controller findOr404 boilerplate. MapEntity changes the
404 response shape away from problem+json unless framework-level
RFC 7807 error config is updated; a private helper is net-zero
on lines. Parking until either (a) skeleton-level RFC 7807 error
wiring, or (b) --with-dto flipping to default-on and the legacy
template's polish becoming irrelevant.
- ModelPublisher::extractId reflection branch. Looks dead because
every maker-output entity has getId(), but it remains a safety net
for hand-written entities that don't. Keeping.
This commit ships:
- BridgeOpTest — locks the enum case values against accidental
rename. Every case value is a documented wire-format token QML
clients hardcode, so renaming a `value` is a wire-protocol break
and this fails the build before it ships.
- PLAN.md §13 v0.2.0 status block with what's shipped on dev
(interfaces / BridgeOp / BridgeBundleInfo / Maker DRY / --with-dto)
and what's still open (findOr404 polish, --with-dto default flip).
Test count 23 → 24, all passing.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>