30 unenforced becomes 28 — voicemail is gated, call routing is kept

Fixkamo-internal
Shipped
August 15, 2026 at 5:45 AM UTC
Author
kamo
Commit
004e61f

VIEW_VOICEMAIL and MANAGE_VOICEMAIL now gate VoipVoicemailController, which asked for a right only when playing back a recording in a PHI organization and for nothing at all otherwise. MANAGE_CALL_ROUTING stays, and the search for its surface is recorded rather than asserted: no inbound-route, IVR, ring-group or queue table in any schema, no such endpoint among VOIPService's 19 controllers, no UI. CallFeaturesController came closest and gating it would have been wrong — it reads memberId from the session with no target, so it is a member's own call forwarding, and a MANAGE_* right there would stop people configuring their own phone. Telephony is modelled here and routing is the unbuilt verb inside it, which is the MANAGE_MEETINGS case rather than the email-logs one. The parity test's pin on VIEW_VOICEMAIL as "gates nothing and must be flagged" had to be released. It was honest while nothing gated the right; left alone it would have blocked the outcome this project exists to produce. In its place is the opposite assertion — the seventeen rights this work has made real, pinned as enforced, so a regenerated audit that quietly loses one fails the build instead of marking a live permission decorative again.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing