V13-FE-006: consolidate approved UI and contract hardening
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s

This commit is contained in:
2026-08-13 02:41:00 +09:00
parent d79edae546
commit 3f293d8aa8
1278 changed files with 14384 additions and 1664 deletions
@@ -0,0 +1,21 @@
# V13-FE-035 — KBX freshness indicator adoption
## Scope
- **Source:** KBX v60 `KbxFreshnessIndicator.vue` and freshness contract principles.
- **Adopted:** explicit caller-supplied clock, optional source/revision metadata, stale label, and opt-in refresh command with accessible naming.
- **Not adopted:** system-clock reads, invented freshness windows, automatic refresh loops, server `published_at`/revision persistence, or provider APIs.
## Source / Assumption / Unknown / Decision Required
- **Source:** current `DataFreshnessBadge.vue`, centralized `formatAsOf`, and KBX freshness indicator.
- **Assumption:** `staleAfterMinutes` remains an approved caller input; the shared component does not choose a domain threshold.
- **Unknown:** production mapping from PIT `published_at`/revision and approved source display names.
- **Decision Required:** Data/UX/QA must approve freshness windows, source redaction, revision semantics, and refresh ownership.
## Evidence
- Targeted Vitest: 3 tests passed.
- `pnpm typecheck`: required after this change.
Visual, browser, PIT integration, and production evidence remain outstanding.