3.2 KiB
3.2 KiB
M10 — Governance & Agent Rights: UAT Results
Run ID: 20260304-060225-kgy Date: 2026-03-04 Verdict: PASS
Checklist
Feature 1: Community Policy Engine
- CP-1:
SchemaBuilder::community_policy()acceptsCommunityPolicyand validates atbuild()time - CP-2:
TidalDb::signal_with_community_policy()enforces write rules, returnsPolicyViolationon rejection - CP-3:
Retrieve::builder().community()threadsCommunityContext, suppresses denied-read signals - CP-4: Schema validation: unknown signal in policy → rejected
- CP-5: Schema validation: allow/deny conflict → rejected
- CP-6: Schema validation: duplicate policy name → rejected
- CP-7: Admin role with empty allow/deny → permits all writes
- CP-8: Write with unknown role →
TidalError::NotFound - CP-9: Retrieve without community context → all signals included (no regression)
- CP-10: All 10 integration tests pass (
m10_community_policy)
Feature 2: Agent Capability Boundaries
- AB-1: Session with
allowed_read_signals: ["view"]readsviewOK;like→ReadNotAllowed - AB-2: Session with
denied_read_signals: ["hide"]→ReadDenied - AB-3: Session with
allowed_user_attributes: ["locale"]readslocaleOK;age_range→AttributeReadNotAllowed - AB-4: Empty
allowed_profile_overrides→ unrestricted (backward compatible) - AB-5: Session with
allowed_profile_overrides: ["search", "trending"]→ can override to those, notfor_you - AB-6: All violations recorded in session audit log with correct
AuditKind - AB-7: Empty new fields → identical to pre-M10
AgentPolicy(no regression) - AB-8: Schema rejects policy with non-existent signal in
allowed_read_signals - AB-9: Schema rejects policy with same signal in both allow and deny lists
- AB-10:
signals_rejectedandoverrides_rejectedcounters increment correctly - AB-11:
read_decay_score(without session) unaffected - AB-12: All 18 PolicyEvaluator unit tests pass
Feature 3: Signal Revocation Controls
- SR-1: SignalType revocation suppresses sort score
- SR-2: TimeRange revocation suppresses all signals in range
- SR-3: Cancel revocation restores scoring immediately
- SR-4: Unrevoked signals unaffected
- SR-5: List revocations includes active and cancelled
- SR-6: Revocation scoped to requesting user only
- SR-7: Multiple overlapping revocations → union semantics
- SR-8: Revocation persists across DB reopen (durable)
- SR-9: Cancellation persists across DB reopen
- SR-10: Anonymous query (no
for_user) → never suppressed
Regression Suites
cargo test --lib— 1317 passedm4_uat— 12 passedm7_uat— 10 passedm8_uat— 8 passedm9_community_sync— 10 passedm9_leave_revocation— 7 passedsession_durability— 9 passed
Totals
| Metric | Value |
|---|---|
| Tests total | 1393 |
| Tests passed | 1393 |
| Tests failed | 0 |
| Tasks created | 0 |
Signed off: UAT PASS — all M10 acceptance criteria verified.