Docs/Desktop app

Desktop app

Coverage screen

Which runtime carries which hook, and whether that runtime's own configuration really installs it. The screen answers "is Codex actually covered on this machine" without a terminal, and it separates the two halves of that question: the registry's declared mappings, and how many of them the provider's config on this machine installs. It is explicit that neither half is live execution evidence — each provider's own sentence, captured from the sealed release, is Registry-declared mappings; not live execution evidence.

Which runtime carries which hook, and whether that runtime's own configuration really installs it. The screen answers "is Codex actually covered on this machine" without a terminal, and it separates the two halves of that question: the registry's declared mappings, and how many of them the provider's config on this machine installs. It is explicit that neither half is live execution evidence — each provider's own sentence, captured from the sealed release, is Registry-declared mappings; not live execution evidence.

The distinction is not academic: an install that deleted Tama's entries from ~/.claude/settings.json and ~/.codex/hooks.json would leave both providers running no policy at all while the declared coverage looked full (hook-releases).

#Where the data comes from

One tama request coverage process (tama request), run on first visit and re-run only on demand — coverage is registry content, so polling it would imply it changes. Each provider reports its adapter (for claude, ~/.claude/settings.json), its declared mappings, how many of them are installed, and its hooks and events. A failed read shows Coverage could not be read with the error sentence and Retry.

#Header, facets, counters

Title Coverage; scope is the selected provider; freshness reads reading now, read <time>, or not read yet; the one action is Re-read coverage. The Provider facet lists Every provider (total mappings) and each provider with its mapping count — warning-toned when it maps nothing. Counters: Providers (declared in this release), Assignments (covered event pairs), Policies covered (distinct covered policies), Without coverage (providers without coverage; warns when nonzero), and Not installed (configs missing declared mappings; warns when nonzero).

#States and table

No providers at all: No provider coverage — No providers are covered in this release. A provider with no mappings: No coverage for <provider>, with the registry's own note when it declares one, else This provider has no covered events., and a Show every provider action. Loading reads Reading provider coverage; a failed read shows Coverage could not be read with the error sentence and Retry. The table is POLICY, EVENT, TRIGGER, PROVIDER.

#Inspector

Selecting a provider (or any of its rows) shows: badges for the coverage kind (declared), No mappings when uncovered, and Not installed when the config installs fewer mappings than the registry declares; fields Declared mappings, Policies, Events, Installed in its config, Adapter path (No adapter declared), and Live coverage required — yes / no / not declared, the release's own statement of whether it demands live coverage evidence for this provider. Below, the evidence sentence and any registry note, verbatim.

Installed in its config reads <n> of <m> installed when native configuration inspection returns a count. The shared tama request coverage response supplies mappingCount and installedMappingCount; inspection includes supported native JSON configurations, Devin's JSONC configuration and Kimi's complete TOML document. A mapping counts only when its native event, matcher and generated dispatch command match.

A null installed count means inspection is unavailable, not zero installed hooks and not evidence that the provider has no supported configuration. The inspector omits the installed-count field and shows the accompanying warning note with the configuration path and actual read, parse or shape error. An inspected configuration without matching commands reports zero. Neither a count nor its configuration declares live enforcement; the provider configuration reference describes the native inspection and qualification boundary.

Coverage is what should dispatch; what is loaded and deciding right now is Posture (concepts/posture).