# V13-FE-035 — Freshness boundary slice note

- **Requirement:** REQ-FE-FRESH
- **API/UI/Test:** UI-ALL / T-FE-FRESH-01
- **Source:** v60 freshness/version guidance; current `frontend/src/shared/status/DataFreshnessBadge.vue` and centralized financial formatter.
- **Assumption:** The caller owns the approved current instant and passes it as `now`; the component is presentation-only.
- **Unknown:** No active production screen currently consumes this badge with a server-provided `published_at`/revision contract.
- **Decision Required:** FE/Data/QA must approve the per-resource freshness window and the authoritative server timestamp before production adoption.

## Applied boundary

- Removed direct machine-clock access from `DataFreshnessBadge`.
- Added required `now` input so identical `asOf + now + threshold` inputs produce identical state.
- Reused centralized `formatAsOf` for deterministic KST display formatting.
- Characterized fresh/stale boundary behavior at and after the configured threshold.

## Evidence

```text
pnpm test -- src/shared/status/tests/DataFreshnessBadge.spec.ts
PASS: 1 file / 2 tests (2026-08-12)

pnpm typecheck
PASS (2026-08-12)
```

This is a contract slice only; no production freshness policy, API integration, revision, or visual evidence is claimed.
