Enforcement coverage and tamper alerts
AI-use policy is only enforced while the clients that enforce it are running. Discover → AI usage → Coverage shows, for the current environment, which enforcement points report in, and Shield360 raises an alert when one goes missing.
Shield360 has three enforcement points, each enrolled as a device:
| Enforcement point | What it governs | How often it calls in |
|---|---|---|
| Collector (computer) | Coding agents, through the hooks it installs, and the AI apps on the computer | Every 5 to 15 minutes while the computer is awake, plus an hourly heartbeat |
| Browser extension | AI sites in one browser profile | Every 15 minutes while the browser is open |
| AI proxy | API traffic sent through it | A heartbeat every minute |
Device states
Section titled “Device states”Every authenticated call a client makes updates its device’s Last seen time. From that, each device is in one of three states:
- Reporting: it called in within its threshold.
- Silent: no call for longer than its threshold. A computer or browser extension is silent after 24 hours, so a laptop closed overnight isn’t flagged. An AI proxy is silent after 15 minutes, because it’s a server that sends a heartbeat every minute.
- Never seen: it enrolled but has never called in.
Revoked devices aren’t listed.
Coding-agent hooks
Section titled “Coding-agent hooks”The collector installs Shield360’s hooks into supported coding agents (Claude Code, Cursor, Codex, Gemini CLI, Windsurf and GitHub Copilot CLI). Its heartbeat reports, by agent name only, which agents are on the computer and which of them have the hooks. No paths or settings are sent.
| Hooks | Meaning |
|---|---|
| Installed | Every coding agent found on the computer has the hooks |
| Missing | At least one agent on the computer doesn’t have the hooks. The agents are listed |
| No agents | No supported coding agent is installed |
| Not reported | The collector hasn’t reported hook state. It’s older than this feature, or it runs as a system service, which can’t read each person’s agent settings |
People
Section titled “People”A person is the name on their devices: the OS account the collector runs as, or the email of the browser profile. The two count as one person when the identity directory maps the account to that email, or when the account is the email’s name (jo and jo@acme.example) and no other email has that name.
| Coverage | Meaning |
|---|---|
| Covered | A computer and a browser extension are both reporting, and every coding agent on a reporting computer has the hooks |
| Partial | At least one enforcement point is reporting, but something is missing: no computer or browser extension, one is silent, or hooks are missing |
| Silent | The person has devices, but none is reporting |
| Never seen | None of the person’s devices has ever called in |
The Gaps column says what keeps a person from Covered. AI proxies serve many people, so they’re listed as devices but don’t count toward anyone’s coverage.
By default the page shows Gaps only. Choose Everyone to include covered people and reporting devices.
Alerts
Section titled “Alerts”Two alerts appear in the Alerts inbox. To send them to Slack, Teams, email or PagerDuty, add an event rule for their kind.
| Kind | Raised when | Severity |
|---|---|---|
enforcement.point_silent | A device goes silent past its threshold. Shield360 checks every five minutes | Warning, or critical for an AI proxy |
collector.tamper | Hooks are removed from a coding agent that had them. Either the hooks are gone from an agent that’s still installed, or the collector’s hourly pass had to put them back | Critical while missing, warning when put back |
Each alert fires once per episode:
- A silent device alerts once. It can only alert again after it calls in and then goes silent again.
- A hooks alert fires once per gap, and again only after a report shows the hooks back in place.
- An agent that never had the hooks (for example, because automatic install is off) shows as Missing on the page but doesn’t raise
collector.tamper. Neither does uninstalling the agent itself. - Devices already silent for more than a week past their threshold when Shield360 first checks them aren’t alerted on, so turning this on doesn’t flood the inbox with machines retired long ago. They still show as Silent on the page.
Alerts name the kind of enforcement point and carry the device’s host name as the hostName attribute. They never name the person. With collector.tamper now raised, the Collector tampered with, then permissions bypassed detection template can be turned on. It flags a computer whose hooks were removed and where a coding agent then ran with permission prompts bypassed.
GET /api/visibility/coverageThe route needs the View computers and people permission and reads only the caller’s current environment. It returns people, devices and a summary of counts per state.