Closes the next dormant mask from epic #1198, surfaced by the
rc19 canary now that the #1202 observability fix is in place.
- Closes
#1203mask 1:EventEmitter.emit_wp_createdin
src/specify_cli/sync/emitter.pynow constructs the payload
matching the canonical events 5.1.0wp_created_payloadschema.
Four simultaneous violations are closed in a single change:
titlerenamed towp_titleat the payload boundary,
dependenciesrenamed todepends_on, requiredactor
parameter added (default"cli") and placed in the payload,
andmission_idremoved from the payload (the parameter is
still accepted for backward compatibility but is no longer
written to the wire — it isn't in the schema's allowed set).
The local emitter's per-event-type validator table is updated
to match the canonical required-fields contract; the
singleton-levelemit_wp_createdmirror in
src/specify_cli/sync/events.pygains anactorparameter and
passes it through; and the production caller in
src/specify_cli/cli/commands/agent/mission.py:2448passes
actor="spec-kitty agent mission finalize-tasks".
This was the four-violation drift P4 predicted in the differential
matrix and that the rc19 canary surfaced in full detail thanks to
the per-event-violation observability restored in #1202. The
structural follow-up #1200 (construct payloads via pydantic
models across every emit_* site) still pending; this surgical
close prevents the immediate canary blocker while that work
proceeds.