Skip to content

Fix unreadable OS accounts missing from Fleet metrics - #2136

Merged
JacobStephens2 merged 4 commits into
mainfrom
issue-2112
Nov 12, 2026
Merged

JacobStephens2 merged 4 commits into
mainfrom
issue-2112

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

Summary

Fleet metrics now retain each machine's unreadable OS accounts through local and live reads, cached snapshots and pushed reports, and name them in JSON, text and the Console's Machines list.

own metrics.unavailable_accounts
  → Summary (older summaries default to an empty set)
  → saved peer snapshot / MetricsReport.summary
  → Fleet machines[].unavailable_accounts
  → JSON / machine text line / Console Machines list

Summary previously discarded the field during deserialization. The shared summary now retains it, and the Fleet merge assigns it to its owning machine. The manual and three hand-written site pages describe the diagnostic.

Closes #2112

Evidence

Execution evidence

  • Before: cargo test --test console fleet_metrics_keep_unreadable_accounts_per_machine -- --nocapture failed with left: Null, right: Array [String("thirdshift-missing-local")]; 0 passed; 1 failed.
    After: the same command passed: 1 passed; 0 failed. It checks local, live-remote and cached accounts in JSON/text/HTML and machine selection.
  • The Spec review's exact text reproduction failed because no line contained both the machine name and its unreadable account. The retained regression was strengthened and failed before the text formatter fix; the same reproduction and regression pass afterward.
  • cargo test --test console metrics -- --nocapture: 25 passed, covering push/report propagation and older peer/snapshot defaults.
  • npm run docs:check --prefix site: passed.
  • scripts/affected-tests main: passed — 69 site tests, 205 Console browser tests and 4,469 Rust tests (199 skipped). The selector measured cargo nextest run at 3,839.84 seconds including compilation (3m 11s); test execution took 3,646.682 seconds. Console browser fixtures used a fixed copy of the final binary.
  • PR CI is green on 7e4bce59.

Seams under test: public metrics --fleet / --machine JSON and text, the Console's /metrics Machines list, and metrics --push through the holder-bound report endpoint. Compatibility checks cover old peer responses and saved summaries without unavailable_accounts.

Visual evidence

Fleet Machines list, with the same local and reported-machine fixtures. Both viewports have no horizontal page overflow.

Desktop · 1440×900

Before

After

Mobile · 390×844

Before

After

Review coverage

Independent Standards and Spec reviews use refs/remotes/origin/main (d6e961c4). Standards: 0 findings. Spec: 1 finding, fixed by putting the machine's status and unreadable accounts on the same text line and retaining its regression. Both reviewers read every changed file, including the generated manual hunk; no generated-output exclusions and no unread changed files.

Unaddressed findings

Standards

None.

Spec

None.

Security

None.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

Reversible presentation and additive summary fields; older peers and saved summaries remain readable.

Blast Radius: Metrics

Built with codex codex-cli 0.167.2 · gpt-6.1-sol · xhigh

@JacobStephens2
JacobStephens2 merged commit fd6011b into main Nov 12, 2026
24 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-2112 branch November 12, 2026 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fleet metrics drops unavailable_accounts from machine summaries

1 participant