Files
meshcore-analyzer/cmd/server/openapi_known_gaps.json
T
clawbot 8e15637bf3 feat(#1735): warm-up banner — dismiss + auto-dismiss failed migrations
Group B from PR #1735 round-1 review (must-fix #2).

Previously a failed async migration pinned the banner forever:
isSteadyState returned false as long as any migration was in 'failed'
status, with no path to clear. Operators lost trust in the banner;
real new failures got lost in the noise.

Fix:
  - FAILED_AUTO_DISMISS_MS = 10 min from endedAt — past that window the
    failed entry auto-clears from the banner. The failure is still
    visible via /api/perf/async-migrations and /api/healthz; only the
    banner stops blocking.
  - Per-line × button: explicit user ack immediately removes the
    failure from the banner.
  - Fail closed: if endedAt is missing or unparseable, the failure
    does NOT auto-dismiss (operator must see it).
  - isSteadyState gets an optional nowMs param (defaults to Date.now)
    for testability and to make the auto-dismiss math
    re-render-deterministic.

CSS additions: .warmup-banner__item--failed coloring + .warmup-banner__dismiss
button styling using existing CSS variable patterns.

Tests added: test-warmup-banner-failed-dismiss-1735.js pins:
  - within window: failure still blocks steady state + appears in messages
  - past window: failure auto-clears from both
  - explicit dismiss: immediate removal
  - missing/malformed endedAt: fails closed (no auto-dismiss)
2026-06-16 20:29:24 +00:00

29 lines
1.3 KiB
JSON

{
"_comment": "Allowlist of /api/ routes registered via HandleFunc in cmd/server/ that are NOT yet documented in cmd/server/openapi.go. This is the 'ratchet' baseline for issue #1670 Phase 1: the TestOpenAPICompleteness gate fails when a NEW handler is added without either documenting it in openapi.go OR appending it here. Phase 2 (the actual backfill of these routes into openapi.go) is tracked in a separate issue per the #1670 triage. Entries should be REMOVED as Phase 2 lands docs for each route — the gate also fails if an entry here is already covered by openapi.go (stale allowlist).",
"_issue": "https://github.com/Kpa-clawbot/CoreScope/issues/1670",
"routes": [
"/api/admin/prune-geo-filter",
"/api/admin/prune-geo-filter/status",
"/api/analytics/relay-airtime-share",
"/api/analytics/roles",
"/api/config/areas",
"/api/config/areas/polygons",
"/api/docs",
"/api/dropped-packets",
"/api/healthz",
"/api/known-channels",
"/api/nodes/clock-skew",
"/api/nodes/{pubkey}/battery",
"/api/nodes/{pubkey}/clock-skew",
"/api/nodes/{pubkey}/reach",
"/api/observers/clock-skew",
"/api/paths/inspect",
"/api/perf/async-migrations",
"/api/perf/io",
"/api/perf/sqlite",
"/api/perf/write-sources",
"/api/scope-stats",
"/api/spec"
]
}