Ships the Phase 4 canary unblock work landed via PR #1180:
- Closes
#1142: broadensis_mission_lifecycle_rowin
src/specify_cli/audit/shape_registry.pyto accept all four canonical
aggregate types (Project,Mission,WorkPackage,MissionDossier)
rather thanMissionalone. Fresh missions no longer trip the
FORBIDDEN_KEYTeamSpace gate whensync nowruns. - Closes
#1141: adds a diagnostic breadcrumb atfire_saas_fanoutentry in
src/specify_cli/status/adapters.pyplus regression coverage that the
backwardin_review → plannedrollback reaches fanout with the expected
shape. Note: this is a diagnostic landing, not the full root-cause fix
— the silent replacement that the canary scenario 4 peek catches likely
lives downstream inOfflineQueue.queue_eventand is expected to be
chased on a follow-up RC if it reproduces. - Bundles the +30 targeted audit / status-emit-sequence tests from
#1180.