| p0 | ama-disclose | AMA: facts fail OPEN on missing audience while messages fail CLOSED โ conversation-anchored facts skip disclosure (#2905) |
| p0 | ama-disclose | traverse_graph renders the RAW canonical_name in a candidate's title at ABSTRACTED/ATTRIBUTED (#3155) |
| p0 | security | idx_node_aliases_person_per_source is a cross-tenant UNIQUE index (no tenant_id) (#2968) |
| p1 | ama-disclose | business_context ships to the client ungated by disclosure level (#2824) |
| p1 | ama-disclose | FindBridges feeds ungated profile content into the LLM that writes the rendered rationale (#3117) |
| p1 | ama-disclose, attachment-truth | A document's audience can be decided by an arbitrary carrier message (ADR-145 D4) (#3325) |
| p1 | ama-trust | AMA: verify arithmetic in the emitted answer, not just in derive() (#2899) |
| p1 | ama-trust | AMA: coverage as a structured ledger, not a prose caveat (#2900) |
| p1 | ama-trust | AMA: a renderable attachment scored INVISIBLE would leak if disclosure enforcement is ever rolled back (#3096) |
| p1 | attachment-truth | message_attachments: a message can carry N files (ADR-145 D1/D2) (#3324) |
| p1 | attachment-truth | The library caps documents at one per message via a PRIMARY KEY (ADR-145 D5) (#3326) |
| p1 | billing | Web Google signup can never complete โ the OAuth full-page redirect destroys the form state (#2768) |
| p1 | billing | Meter enterprise AMA questions for billing โ Regina's contract has a 6,000/month fair-use pool with $0.30/question overage that nothing counts (#2915) |
| p1 | connector-truth | chore: Complete Google OAuth App Verification for Gmail (Restricted) + Calendar (Sensitive) Scopes (#1241) |
| p1 | connector-truth | chore: CASA Tier 2 Assessment โ Preparation & Completion (#1248) |
| p1 | edge-truth | fix(extraction): relationship typing structurally wrong โ sister typed as spouse, PARENT both-directions, no reconciliation (#1465) |
| p1 | edge-truth | suggested-questions v2: personalized ranker uses placeholder recency on v2 (provenance-conversation cutover) (#1483) |
| p1 | edge-truth | node_viewer_scoped_repository orders entity nodes by nodes_v2.created_at โ a rebuild timestamp, not content recency (#2994) |
| p1 | edge-truth | edges_v2 concurrent upserts deadlock in a 4-way cycle โ CI retries and swallows it, production has no such retry (#3307) |
| p1 | measurement | Nothing tells us when a customer's connector dies โ the health score can't, and shouldn't (#3060) |
| p1 | nightly-nudge | Nightly-nudge event extraction has no tier or disclosure gating at all (#3116) |
| p1 | nightly-nudge, viewer-truth | A linked account that resolves to no person node is silently dropped from the nightly nudge audience โ Regina's audience is halved (#3243) |
| p1 | retention | ADR-138 stage 6: the tenant-wide deleter has no resumability design for a partial failure across 72 FK'd tables (#2941) |
| p1 | retention | ADR-138: no dead-sweep detection โ D6's CI gate catches 'never scheduled', not 'scheduled and silently stopped working' (#2942) |
| p1 | security | ADR-097: impersonation flag keyed on spoofable From address poisons the legitimate mailbox owner (#2037) |
| p1 | security | Client end-user read endpoints run as DB superuser (RLS bypassed) โ migrate to run-as-user (#2445) |
| p1 | security | Supabase default privileges grant ALL on every new public table to anon/authenticated โ close it at the schema, not per object (#2938) |
| p1 | test-truth | Suggested-questions node-side tenant_id predicate is unproven โ no fixture has a second tenant to leak (#3016) |
| p1 | viewer-truth | fix(compose): proactive nudge + AMA narrative prose must attribute the sender by resolved display_name (#1314) |
| p1 | viewer-truth | nodes_v2.properties.user_id owner-stamp is never cleared once written, and a stale stamp overrides identity silently (#3080) |
| p1 | viewer-truth | W3: the client resolves the viewer itself, and now disagrees with the server (#3148) |
| p1 | viewer-truth | "Which person node is this account?" has 17 independent expressions and no detector (#3162) |
| p1 | viewer-truth | VIEWER-TRUTH: a suppression filter that filters nothing โ 1,316 persons leak into the attribution index (#3172) |
| p1 | viewer-truth | VIEWER-TRUTH: the viewer's display NAME has 5-6 implementations that disagree, and no detector (#3173) |
| p1 | viewer-truth | VIEWER-TRUTH: no real-DB test covers list_tenant_users, and the 50-id chunk boundary is untested (#3179) |
| p1 | viewer-truth | VIEWER-TRUTH: a create with NO person writes a tier the reconciler will later discard (#3265) |
| p1 | viewer-truth | VULN-05's confirmation is auto-supplied by the client โ the tier-0 downgrade guard cannot fire (#3267) |
| p1 | viewer-truth | disclose() enforced on a PERSONAL tenant and blanked the surface โ an unresolved viewer removes the exemption that would have spared it (#3276) |