Publish trustworthy first usage history #73

Closed
opened 2026-09-13 21:03:07 +00:00 by xavierk · 0 comments
Owner

Parent

Implement Fenris TUI polish and hourly history

What to build

A real collection run publishes usable first history before reporting success; the next read-only dashboard refresh distinguishes no sample, one sample, measured zero, partial usage, and unallocated evidence. This is the initial end-to-end history tracer, not a schema-only task. Covers TPH-5 and foundational TPH-6/7 invariants.

Implement the approved companion contract and applicable TPH acceptance amendments linked from the parent. Preserve the frozen redesign, lifecycle/security boundaries, existing evidence thresholds and mathematics except explicit approved accounting amendments. Reuse existing seams; any necessary prefactoring precedes behavior changes within this slice. No release, deployment, or parent-issue changes.

Acceptance criteria

  • Expand the observation store through forward-only transactional migration to retain timestamped usage intervals, represented spans, controller/period provenance and explicit allocation completeness. Existing valid data remains readable at its real precision; newer-schema refusal and rollback/snapshot protections remain intact.
  • Collector acquisition through derivation publishes samples, intervals, hour observations and day aggregates consistently before returning success. A read-only concurrent reader sees a valid pre- or post-publication snapshot, never a falsely complete partial publication.
  • Zero samples display awaiting-first-sample; one displays Awaiting another sample; a compatible pair within one hour displays measured usage so far, including visible 0 B for unchanged counters. Missing/unsupported/invalid counters and health data are not zero-filled.
  • Cross-hour positive deltas are retained once with unknown shares explicit. No proportional allocation, endpoint assignment, double counting, cross-segment delta or ambiguous pause-crossing monitored total is allowed. Partial summaries exclude future and deliberately disabled time; unexplained gaps remain in-period.
  • New interval evidence is durable indefinitely. Do not activate destructive raw pruning before boundary anchors and corresponding durable derivation are protected; older valid summaries are not overwritten by incomplete new evidence.
  • Reuse collector tests with fake acquisition and clock, then read the real store through TUI/status consumption. Cover same-hour 20 MB, zero delta, cross-hour 100 MB, pause crossing, reset/replacement, and injected derivation failure preserving prior history. Add conservative projection eligibility handling where necessary so new incomplete evidence is never advertised as a complete rate before the dedicated rate slice.

Blocked by

None (can start immediately).

## Parent [Implement Fenris TUI polish and hourly history](https://git.bongbetic.com/xavierk/Fenris/issues/72) ## What to build A real collection run publishes usable first history before reporting success; the next read-only dashboard refresh distinguishes no sample, one sample, measured zero, partial usage, and unallocated evidence. This is the initial end-to-end history tracer, not a schema-only task. Covers TPH-5 and foundational TPH-6/7 invariants. Implement the approved companion contract and applicable TPH acceptance amendments linked from the parent. Preserve the frozen redesign, lifecycle/security boundaries, existing evidence thresholds and mathematics except explicit approved accounting amendments. Reuse existing seams; any necessary prefactoring precedes behavior changes within this slice. No release, deployment, or parent-issue changes. ## Acceptance criteria - [ ] Expand the observation store through forward-only transactional migration to retain timestamped usage intervals, represented spans, controller/period provenance and explicit allocation completeness. Existing valid data remains readable at its real precision; newer-schema refusal and rollback/snapshot protections remain intact. - [ ] Collector acquisition through derivation publishes samples, intervals, hour observations and day aggregates consistently before returning success. A read-only concurrent reader sees a valid pre- or post-publication snapshot, never a falsely complete partial publication. - [ ] Zero samples display awaiting-first-sample; one displays Awaiting another sample; a compatible pair within one hour displays measured usage so far, including visible 0 B for unchanged counters. Missing/unsupported/invalid counters and health data are not zero-filled. - [ ] Cross-hour positive deltas are retained once with unknown shares explicit. No proportional allocation, endpoint assignment, double counting, cross-segment delta or ambiguous pause-crossing monitored total is allowed. Partial summaries exclude future and deliberately disabled time; unexplained gaps remain in-period. - [ ] New interval evidence is durable indefinitely. Do not activate destructive raw pruning before boundary anchors and corresponding durable derivation are protected; older valid summaries are not overwritten by incomplete new evidence. - [ ] Reuse collector tests with fake acquisition and clock, then read the real store through TUI/status consumption. Cover same-hour 20 MB, zero delta, cross-hour 100 MB, pause crossing, reset/replacement, and injected derivation failure preserving prior history. Add conservative projection eligibility handling where necessary so new incomplete evidence is never advertised as a complete rate before the dedicated rate slice. ## Blocked by None (can start immediately).
xavierk added the ready-for-agent label 2026-09-13 21:03:07 +00:00
xavierk added a new dependency 2026-09-13 21:04:12 +00:00
xavierk added a new dependency 2026-09-13 21:04:18 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: xavierk/Fenris#73