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.
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).