# M9 UAT Run Summary **Run ID:** 20260304-032618-mxq **Milestone:** m9 — Community Sync & Revocation **Verdict:** PASS ## Features Tested | Feature | Tests | Result | |---------|-------|--------| | m9-community-profile-sync | 10/10 | PASS | | m9-leave-revocation | 7/7 | PASS | | m9-retroactive-purge | 8/8 | PASS | | m9-purge-rematerialization | 6/6 | PASS | **Total M9 integration tests: 31/31 passed** ## Regression Checks | Suite | Tests | Result | |-------|-------|--------| | cargo test --lib | 1312/1312 | PASS | | m7_uat | 10/10 | PASS | | m4_uat | 11/12 | 1 failure (M10 WIP) | | session_durability | 8/9 | 1 failure (M10 WIP) | ## Quality Checks | Check | Result | Notes | |-------|--------|-------| | cargo fmt --check | FAIL | Diffs in M10 files (query_ops.rs, signals.rs) | | cargo clippy -D warnings | FAIL | 5 warnings in M10 files (sessions.rs, signals.rs) | ## Notes - All fmt/clippy failures and the 2 prior-UAT test failures are in uncommitted M10 code (`db/query_ops.rs`, `db/signals.rs`, `db/sessions.rs`). No M9 code is affected. - The M9 milestone itself is fully correct: all 31 integration tests pass, all 1312 lib tests pass, and the m7_uat regression suite is green. - Community profile sync correctly persists memberships, routes signals to community aggregates, and rebuilds state on restart. - Leave/revocation correctly stops signal forwarding, preserves timestamps, and survives reopen. - Retroactive purge correctly retracts scores, produces idempotent manifests, and never drives scores negative. - Re-materialization engine processes purge jobs, maintains metrics, and handles multiple concurrent jobs.