Source: c89 teams-sessions-listings — header treatment iteration on phase1/teams.vue (PRO-20), matching the Users & Devices coverage-ring / named-attention-list pattern (reference: bob-wire c21, other-designer-in-progress work)
19 people known to Okta, 16 covered by a sensor — 3 unaccounted for.
3 without a sensor (Alexis Romero holds a seat — investigate) · Wes Okafor started 21d ago with no sessions
- ARAlexis Romero→holds a seat — investigate
- MTMiguel Torres→no sensor, nothing observed
- OHOmar Haddad→no sensor, nothing observed
Teams
click scopes the verdict, band and roster · spend by team lives on Cost CenterPeople
one row per person · ranked uncovered first, then the stalled joiner, then by tokens · 30dTeam | Devices | Agents | Intensity | Tokens · 30d | Last active | Coverage | |
|---|---|---|---|---|---|---|---|
AR Alexis Romero Backend engineer | Engineering | ○alexis-mbp | none | ▯▯▯ none | 0 | never | uncovered holds a seat — investigate |
MT Miguel Torres SDR | GTM | ○miguel-mbp | none | ▯▯▯ none | 0 | never | uncovered no sensor, nothing observed |
OH Omar Haddad Finance | Ops | ○omar-mbp | none | ▯▯▯ none | 0 | never | uncovered no sensor, nothing observed |
WO Wes Okafornew · 21d Engineer (new) | Engineering | ●wes-mbp | Claude Code 1 install | ▯▯▯ none | 0 | never | covered |
TB Tyler Brooks Staff engineer | Engineering | ●tyler-mbp | Claude Code Codex 2 installs | ▮▮▮ heavy | 58M | 3h ago | covered |
KR Kamal Reddy Senior engineer | Engineering | ●kamal-mbp ○kamal-win-01win | Claude Code Codex Gemini 3 installs | ▮▮▮ heavy | 52M | 4h ago | partial 1 of 2 · Windows gap |
DW Dana Whitfield Account executive | GTM | ●dana-mbp | Codex 2 installs | ▮▮▮ heavy | 42M | 2h ago | covered |
MC Marcus Chen Platform engineer | Engineering | ●marcus-mbp | Claude Code Codex Grok 3 installs | ▮▮▯ moderate | 34M | 7h ago | covered |
RC Rob Castellano Solutions lead | GTM | ●rob-mbp ○rob-win-01win | Claude Desktop Codex Gemini 3 installs | ▮▮▯ moderate | 26M | 5h ago | partial 1 of 2 · Windows gap |
PN Priya Natarajan Frontend engineer | Engineering | ●priya-mbp | Claude Code Codex 2 installs | ▮▮▯ moderate | 24M | 5h ago | covered |
KN Kai Nakamura Head of operations | Ops | ●kai-mbp ○kai-win-01win | Claude Desktop Grok 2 installs | ▮▮▯ moderate | 22M | 8h ago | partial 1 of 2 · Windows gap |
DR Devon Reyes Platform engineer | Engineering | ●devon-mbp | Claude Code Claude Desktop Codex 3 installs | ▮▮▯ moderate | 18M | 2h ago | covered |
HL Hana Lindqvist Product engineer | Engineering | ●hana-mbp | Claude Code 1 install | ▮▯▯ light | 12M | 3h ago | covered |
JF Jonah Fitz Tooling engineer | Engineering | ●jonah-mbp | Claude Code Hermes 2 installs | ▮▯▯ light | 9.0M | 8h ago | covered |
EW Erin Walsh Product marketing | GTM | ●erin-mbp | Codex 1 install | ▮▯▯ light | 8.0M | 27h ago | covered |
LG Leah Goldman IT administrator | Ops | ●leah-mbp | Codex Gemini 2 installs | ▮▯▯ light | 7.0M | 6h ago | covered |
SA Sofia Alvarez Field marketing | GTM | ●sofia-mbp | Claude Desktop 1 install | ▮▯▯ light | 6.0M | 7h ago | covered |
NP Natalie Pierce Office & facilities | Ops | ●natalie-mbp | Claude Desktop 1 install | ▮▯▯ light | 5.0M | 27h ago | covered |
BA Ben Ashworth Customer success | GTM | ●ben-mbp | Claude Desktop 1 install | ▮▯▯ light | 4.0M | 4h ago | covered |
19 people · zero-usage rows stay visible — who is not using AI is still interesting to management. ● sensor installed · ○ no sensor · dimmed agent mark = detected-only or never run · tokens are the measured 30-day total; dollars are estimates and live on Cost Center. Last active = last session on record, else the latest monitored heartbeat when 30-day usage exists, else never. Coverage is a fraction of the Okta/Jamf denominator, not of what the sensor happens to see.
Composition notes
- c89 header delta: the "people covered" and "devices sensored" claims move from Phase1StatBlock fractions to DataDonutChart rings — the same two numbers (band.covered/band.people, band.devicesSensored/band.devices), re-derived nowhere. A ring reads "how much of the whole" faster than a fraction string at header scale, matching the Users & Devices pattern another designer is establishing; the filter-button behavior (click scopes the roster) rides along unchanged so nothing regresses. "Using AI · 30d" and "installs with an owner" stay plain stat blocks — not every number needs a ring, and a header with four rings would be noisy without a matching gain in clarity.
- Named attention list: the band's uncovered/investigate counts already named nobody — the c89 rationale is that a manager acting on this page needs specific people, not just "3 uncovered". The list pulls band.investigate first (holds a seat, zero telemetry — the more urgent story), then fills to 5 from band.uncovered, reusing the exact phrasing the roster's own Coverage column already uses ("holds a seat — investigate", "no sensor, nothing observed") so the header and the table never say the same fact two different ways. All-clear states it plainly. This is a one-off composition, not a promoted shared component — if a second page wants the same idiom (Sessions does, see sessions.vue), it's a candidate to extract then.
- Question, verdict, team strip, roster, and expand are unchanged from phase1/teams.vue — see that page's composition notes for the full reasoning (amber ruling, team-filter-in-place, the person expand card, derivation sources). This page exists to isolate the header treatment for review, per c89's scope.
- Open: whether the ring should keep its click-to-filter behavior or a header ring reads as "just a stat" to most users (StatBlock's active ring affordance is subtle on a donut); whether "using AI" deserves a ring too once there's a natural second denominator for it (there isn't one today — it's a plain count against people, already a fraction in its value string).