Four CodeQL js/unused-local-variable alerts in one sweep — all
Note severity, all pure dead-import cleanup verified by grep
(each removed symbol had exactly 1 occurrence in its file: the
import line itself).
Alert #6 — web/src/pages/AgentFleetPage.tsx:3:
Drop Legend from recharts named-import list. The fleet pie
chart renders without a legend (the slice colors are labeled
inline via Tooltip).
Alert #7 — web/src/pages/DashboardPage.tsx:9:
Drop getAgents + getNotifications from the api/client named-
import list. The dashboard summary card now uses
getDashboardSummary (single endpoint) instead of fanning out
to per-resource list calls; the agents + notifications full
list is reachable via dedicated pages.
Alert #8 — web/src/pages/CertificatesPage.tsx:6:
Drop revokeCertificate from the api/client named-import list.
The page uses bulkRevokeCertificates for the multi-cert UX;
single-cert revoke happens on CertificateDetailPage which
imports revokeCertificate independently.
Alert #9 — web/src/pages/DiscoveryPage.tsx:15:
Drop the StatusBadge default-import line. Discovered-cert
status renders inline (text label colored via the row's
state-class) without the StatusBadge component.
Verified locally:
Each flagged symbol: 0 occurrences in its file post-edit.
tsc --noEmit: exit 0.
No behavioral change — pure import-list cleanup.
References:
https://github.com/certctl-io/certctl/security/code-scanning/6https://github.com/certctl-io/certctl/security/code-scanning/7https://github.com/certctl-io/certctl/security/code-scanning/8https://github.com/certctl-io/certctl/security/code-scanning/9
Closes all four alerts.
Frontend audit (10 categories): lifecycle fields in types, new API
functions (CRL, OCSP, deployments, updateIssuer/Target, getPolicy),
issuer/owner/profile filters on CertificatesPage, last_renewal_at
column, error_message column on JobsPage, full crypto policy UI on
ProfilesPage (key algorithms, EKUs, SAN patterns), key info + CA
badge on DiscoveryPage, edit modal on TargetDetailPage, tags field
on certificate creation, darwin→macOS mapping on AgentFleetPage.
211 Vitest tests passing.
README accuracy: test counts (1300+ Go, 211 frontend), page count
(24), demo data (32 certs, 7 issuers, 180 days), endpoint count
(97), MCP tools (80), CLI subcommands (10), moved shipped items
out of "Coming in v2.1.0".
Docs: architecture.md diagrams updated (Vault PKI, DigiCert,
Traefik, Caddy added), features.md Vault/DigiCert status updated.
Version bumped to v2.0.20. cli binary removed from git tracking.
Testing guide Part 41 added (12 auto + 9 manual tests).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Complete frontend visual redesign using certctl logo color palette:
- Deep teal sidebar (#0c2e25) with prominent centered logo (64px in white pill)
- Light content area (#f0f4f8) with white cards and visible borders
- Brand colors from logo: teal (#2ea88f), blue (#3b7dd8), orange (#e8873a), green (#4ebe6e)
- Inter + JetBrains Mono typography, colored stat card top borders
- All 17 pages + 7 components updated (25 files, ~700 lines changed)
- 15 new dashboard screenshots replacing old dark theme screenshots
- Prometheus metrics e2e test added, integration test mock fixes
- Docs updated: architecture.md theme description, testing-guide.md DNS-PERSIST-01 coverage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>