Verified current state on master — 5 of 6 hubs now resolved; 1 hub + 1 decision left
Re-audited every flagged hub directly against origin/master:
Batch 2 up — PR #124 (FundraiserItem, SolicitationZone, AreaRecommendation, Chapter).
Mode-#2 is now effectively complete for the collections that matter
Across #118 (blog) +…
Batch 1 merged — PR #123. Deep-snapshot (mode #2) now live for the profile/application in-place-edited entities: EmergencyContact (×2), EmploymentEntry, EducationEntry, AddressEntry,…
PRs #119, #120, #121 all merged to master (9d74b44). The anonymous-mutation surface is now closed in production:
- #119 —
CacheController(Redis flush/stats) → staff/admin - #120 —…
PR #122 merged to master (9d74b44) — item 1 (full-cluster SCAN * on every cache miss) eliminated.
Epic status: item 1 ✅ (#122), item 2 ✅ (#111, MongoClient-per-message).…
PR #118 merged to master (9d74b44). Mode-#2 deep-clone snapshot now live for the 3 blog collections (BlogPost.Media/EmbeddedLinks/Comments) via JsonListValueComparer<T>.
Keeping this…
Deep-snapshot extension — scoped worklist (ready to execute once #118 merges)
Audited all 38 SetValueComparer sites on origin/master. Good news first: **the mode-#1 fix (#115) is…
Item 4 (poison requeue) — audited both cited sites; findings differ from the ticket
KeycloakEventHostedService (cited 188-192) is already protected — not a bug. Its `HandleMessageFailu…
✅ Anonymous-mutation surface closed. PR #121 gates the 6 reference/lookup controllers (FuelTypes, GeneratorBrands, AddressTypes, PhoneTypes, States, Organizations) — **mutations…
Step 1 progress — PR #120 up. Locked the 6 unambiguous back-office controllers (Employees, ServiceCalls, ServiceCallReasons, Parts, Labors, Milages) with class-level [Authorize]…
Anonymous-surface inventory (the FallbackPolicy impact set)
Built the prerequisite for safely enabling a FallbackPolicy — a static analysis of all 73 API controllers classifying every…
Audited the second half of this ticket — "missing publisher confirms". Confirmed: it's a real silent-loss gap, but a platform-wide behavior change, so flagging with a ready fix rather than…