Keys: permanent Rotation tab with idle explainer, ago-ago fix, Recovery flavour chip #410

Merged
Cordy merged 2 commits from ks-polish into main 2026-09-03 18:51:46 +00:00
Owner

#348 follow-up from the first real rotation (operator review, mockup variant A approved):

  • Rotation tab is permanent. Idle state = ghost lifecycle stepper + explainer card: active key with flavour chip, the four-step cycle in prose, the not-retroactive warning, and a "Rotation guide" link to the future-canonical swisscairn.ch docs URL. Footer states only what the instance can know — "No retired key configured" (no rotation-history claim; that's the drain ledger's future job). KeyScanAPI now wired whenever any deployment identity parses; scan start returns 409 without a retired key; plaintext instances get an honest one-liner.
  • "Scanned 3 seconds ago ago" fixedagoText already carries the suffix; the i18n key no longer adds one (×4 locales).
  • Recovery tab public-key row gains a Hybrid/Classical chip — no more inferring flavour from the age1pq prefix before rotating.
#348 follow-up from the first real rotation (operator review, mockup variant A approved): - **Rotation tab is permanent.** Idle state = ghost lifecycle stepper + explainer card: active key with flavour chip, the four-step cycle in prose, the not-retroactive warning, and a "Rotation guide" link to the future-canonical swisscairn.ch docs URL. Footer states only what the instance can know — "No retired key configured" (no rotation-history claim; that's the drain ledger's future job). `KeyScanAPI` now wired whenever any deployment identity parses; scan start returns 409 without a retired key; plaintext instances get an honest one-liner. - **"Scanned 3 seconds ago ago" fixed** — `agoText` already carries the suffix; the i18n key no longer adds one (×4 locales). - **Recovery tab public-key row gains a Hybrid/Classical chip** — no more inferring flavour from the `age1pq` prefix before rotating.
Cordy merged commit 15f006a386 into main 2026-09-03 18:51:46 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#410
No description provided.