Cybersecurity-Projects/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit
CarterPerez-dev 9651ff56f1 feat(tui): hand-rolled live monitor with ANSI primitives + 4 panels
Stack:
- Ansi: stdlib-only escape helpers (move, colorize, strip)
- State: rolling view of active rotations + recent events; trims to N
- Renderer: paints header / status / active / recent panels; works against
  any IO so tests assert against IO::Memory
- Tui: ties State + Renderer to event bus; coalesces repaints to a tick
  interval (default 200ms) to avoid flicker under burst events

Active rotation rows show step progress as a filled-bar (▰▰▰▱). Recent
events list latest 8 with timestamp + severity glyph (✓ / ⚠ / !). The
renderer's pad/center helpers correctly account for ANSI escape widths
when computing visible column width.

9 specs cover ANSI helpers (color codes, cursor move, strip), State
event-to-row mapping with completion bookkeeping and ring-buffer trim,
and Renderer output assertions across empty + active + populated states.
2026-04-29 01:09:20 -04:00
..
audit feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing 2026-04-29 00:45:54 -04:00
aws feat(rotators): AWS Secrets Manager rotator with SigV4 signer + secrets client 2026-04-29 01:02:40 -04:00
cli feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
compliance feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
crypto feat(crypto): AEAD envelope encryption with AES-256-GCM, KEK loader, secure random 2026-04-29 00:43:12 -04:00
domain feat(domain): NewSecret and CredentialVersion structs 2026-04-29 00:32:53 -04:00
engine feat(engine): Scheduler fiber publishes SchedulerTick on a fixed interval 2026-04-29 01:05:44 -04:00
events feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
github feat(rotators): GitHub fine-grained PAT rotator + thin GitHub API client 2026-04-29 01:05:10 -04:00
notifiers feat(notifiers): structured-log subscriber + Telegram bidirectional bot 2026-04-29 01:07:44 -04:00
persistence feat(persistence): SQLite adapter with credentials/versions/rotations/audit repos 2026-04-29 00:36:22 -04:00
policy feat(policy): Crystal Policy as Code DSL with macros + compile-time enum autocast 2026-04-29 00:56:29 -04:00
rotators feat(rotators): GitHub fine-grained PAT rotator + thin GitHub API client 2026-04-29 01:05:10 -04:00
tui feat(tui): hand-rolled live monitor with ANSI primitives + 4 panels 2026-04-29 01:09:20 -04:00
vault feat(rotators): Vault dynamic-secrets rotator + thin Vault client 2026-04-29 01:04:12 -04:00
.gitkeep feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00