An approved, implementation-ready companion specification for a polished Fenris TUI: clear identity and monitoring state, trustworthy hourly usage history with drill-down, colour presets, drive-health placement, and honest data-availability/warm-up messaging. The route ends at human approval and handoff, not implementation.
Notes
Domain: Fenris observation history, projection confidence, monitoring lifecycle, and Panes TUI. Read CONTEXT.md, docs/agents/domain.md, and applicable ADRs. Every decision session uses grilling + domain-modeling; prototype tickets additionally use prototype and verify framework facts against current documentation.
Planning only. Decision comments are authoritative; prototypes and the final companion spec are linked assets. Do not change production code, run a release, or treat this map as implementation slices. Claim an unassigned, unblocked ticket before work; resolve at most one HITL ticket per session.
Human-approved inputs from charting: top titlebox reads 🐺 Fenris by Bongbetic; vendor wear moves from Settings to Drive health. Blinking green Monitoring, explicit Collecting, steady amber Paused, red Error/Stale, with text always visible and no animation implying successful collection.
Human-approved inputs: bytes written per hour is the graph default; reads are optional, not a committed feature. Investigate meaningful daily candles against hourly bars before choosing. Support keyboard and clickable range selection → selected day → hourly detail → back.
Human-approved inputs: presets first (Amber, Nord, High Contrast), no custom colour editor. Amber graph in default preset; other presets may change it. Preserve projection-confidence rules. Show conditional remaining-hour estimates separately from first graph-data availability; no promised countdown when evidence is insufficient.
Existing contracts remain binding unless explicitly amended here: no fabricated history, gaps are not zero usage, controller-segment boundaries, deliberate-disable semantics, boot/runtime separation, TUI/CLI wording parity, quit-versus-pause distinction, and polkit-accurate authentication.
Prior effort: Chart Fenris dashboard clarity is closed; Implement dashboard clarity and release notes is also closed. This handoff is a new follow-on effort, not a rewrite of that shipped umbrella. New top branding intentionally replaces prior header/service-credit placement in the forthcoming spec; unrelated clarity and release requirements remain intact. Do not close or rewrite those issues as part of charting. Keep docs/spec/fenris-redesign.md frozen; use a companion spec and explicit acceptance amendments.
Read-only source inspection found a missing normal-collection aggregation path, not a history warm-up gate. The hourly-data decision owns the evidence and end-to-end planning implications. Deployed database/version was not inspected; do not claim runtime diagnosis.
Decisions so far
Choose daily graph encoding and hourly drill-down: Daily bars with hourly drill-down adopted, candles rejected, reads out of scope; 7/14/28/90-day ranges defaulting to 14; keyboard+click navigation; zero/gap/unallocated rendered distinctly; graph at 80×24, textual summary below.
Define trustworthy hourly history and first-data availability: Local-calendar browsing, retained usage intervals, prompt measured partial history, explicit unallocated usage, and safe repair/retention; UTC projection-accounting follow-on ticketed.
Reconcile unallocated usage with UTC projection evidence: Exact evidence-anchored windows, complete-numerator rates, independent coverage/byte allocation, provisional UTC qualification and safe segment/legacy eligibility; strict unavailability accepted.
Define monitoring signals and honest warm-up estimates: Eight-state status lattice (Monitoring/Collecting/Paused/Waiting/Interrupted/Error/Stale/Unknown) with precedence, glyphs and 1.5 s blink, 5 s poll vs 5-min refresh, warm-up progress block and withheld-estimate wording; CLI parity.
Approve titlebox, health layout and colour presets: Titlebox/fallback approved; duplicate maker-credit removed; vendor wear under Drive health; Amber/Nord/High Contrast presets with status semantics precedence; user-scoped TUI preferences, reduced motion and narrow-layout fallback fixed.
Production implementation, tests executed as release gates, package publishing, installation changes, or closing the prior implementation umbrella. A fresh execution effort follows handoff.
Changing lifespan mathematics, evidence/confidence thresholds, or collector cadence merely to make the display look ready; fabricated or interpolated missing history.
Custom colour editor, web GUI, notifications, unrelated release-workflow changes, or a general application redesign beyond the named TUI requirements.
## Destination
An approved, implementation-ready companion specification for a polished Fenris TUI: clear identity and monitoring state, trustworthy hourly usage history with drill-down, colour presets, drive-health placement, and honest data-availability/warm-up messaging. The route ends at human approval and handoff, not implementation.
## Notes
- Domain: Fenris observation history, projection confidence, monitoring lifecycle, and Panes TUI. Read `CONTEXT.md`, `docs/agents/domain.md`, and applicable ADRs. Every decision session uses grilling + domain-modeling; prototype tickets additionally use prototype and verify framework facts against current documentation.
- Planning only. Decision comments are authoritative; prototypes and the final companion spec are linked assets. Do not change production code, run a release, or treat this map as implementation slices. Claim an unassigned, unblocked ticket before work; resolve at most one HITL ticket per session.
- Human-approved inputs from charting: top titlebox reads `🐺 Fenris by Bongbetic`; vendor wear moves from Settings to Drive health. Blinking green Monitoring, explicit Collecting, steady amber Paused, red Error/Stale, with text always visible and no animation implying successful collection.
- Human-approved inputs: bytes written per hour is the graph default; reads are optional, not a committed feature. Investigate meaningful daily candles against hourly bars before choosing. Support keyboard and clickable range selection → selected day → hourly detail → back.
- Human-approved inputs: presets first (Amber, Nord, High Contrast), no custom colour editor. Amber graph in default preset; other presets may change it. Preserve projection-confidence rules. Show conditional remaining-hour estimates separately from first graph-data availability; no promised countdown when evidence is insufficient.
- Existing contracts remain binding unless explicitly amended here: no fabricated history, gaps are not zero usage, controller-segment boundaries, deliberate-disable semantics, boot/runtime separation, TUI/CLI wording parity, quit-versus-pause distinction, and polkit-accurate authentication.
- Prior effort: [Chart Fenris dashboard clarity](https://git.bongbetic.com/xavierk/Fenris/issues/55) is closed; [Implement dashboard clarity and release notes](https://git.bongbetic.com/xavierk/Fenris/issues/61) is also closed. This handoff is a new follow-on effort, not a rewrite of that shipped umbrella. New top branding intentionally replaces prior header/service-credit placement in the forthcoming spec; unrelated clarity and release requirements remain intact. Do not close or rewrite those issues as part of charting. Keep `docs/spec/fenris-redesign.md` frozen; use a companion spec and explicit acceptance amendments.
- Read-only source inspection found a missing normal-collection aggregation path, not a history warm-up gate. The hourly-data decision owns the evidence and end-to-end planning implications. Deployed database/version was not inspected; do not claim runtime diagnosis.
## Decisions so far
- [Choose daily graph encoding and hourly drill-down](https://git.bongbetic.com/xavierk/Fenris/issues/68): Daily bars with hourly drill-down adopted, candles rejected, reads out of scope; 7/14/28/90-day ranges defaulting to 14; keyboard+click navigation; zero/gap/unallocated rendered distinctly; graph at 80×24, textual summary below.
<!-- One linked gist per resolved decision ticket; detail lives in its resolution comment. -->
- [Define trustworthy hourly history and first-data availability](https://git.bongbetic.com/xavierk/Fenris/issues/66#issuecomment-5582): Local-calendar browsing, retained usage intervals, prompt measured partial history, explicit unallocated usage, and safe repair/retention; UTC projection-accounting follow-on ticketed.
- [Reconcile unallocated usage with UTC projection evidence](https://git.bongbetic.com/xavierk/Fenris/issues/71#issuecomment-5602): Exact evidence-anchored windows, complete-numerator rates, independent coverage/byte allocation, provisional UTC qualification and safe segment/legacy eligibility; strict unavailability accepted.
- [Define monitoring signals and honest warm-up estimates](https://git.bongbetic.com/xavierk/Fenris/issues/67#issuecomment-5607): Eight-state status lattice (Monitoring/Collecting/Paused/Waiting/Interrupted/Error/Stale/Unknown) with precedence, glyphs and 1.5 s blink, 5 s poll vs 5-min refresh, warm-up progress block and withheld-estimate wording; CLI parity.
- [Approve titlebox, health layout and colour presets](https://git.bongbetic.com/xavierk/Fenris/issues/69#issuecomment-5618): Titlebox/fallback approved; duplicate maker-credit removed; vendor wear under Drive health; Amber/Nord/High Contrast presets with status semantics precedence; user-scoped TUI preferences, reduced motion and narrow-layout fallback fixed.
- [Approve the Fenris TUI polish specification and handoff](https://git.bongbetic.com/xavierk/Fenris/issues/70#issuecomment-5627): Human approved the companion spec, acceptance amendments, and glossary handoff as implementation-ready; no new decision fog remains.
## Not yet specified
None.
## Out of scope
- Read-throughput graph selector: writes-only graph confirmed; reads display work sits beyond this destination ([Choose daily graph encoding and hourly drill-down](https://git.bongbetic.com/xavierk/Fenris/issues/68) ruled it out).
- Production implementation, tests executed as release gates, package publishing, installation changes, or closing the prior implementation umbrella. A fresh execution effort follows handoff.
- Changing lifespan mathematics, evidence/confidence thresholds, or collector cadence merely to make the display look ready; fabricated or interpolated missing history.
- Custom colour editor, web GUI, notifications, unrelated release-workflow changes, or a general application redesign beyond the named TUI requirements.
xavierk
added this to the Wayfinder: Fenris TUI polish and hourly history milestone 2026-09-11 04:07:41 +00:00
Execution remains a separate effort; no production code, release gate, package, or installation change happened in this map.
Map closed — destination reached.
All in-scope fog is settled and all child decision tickets are closed. Final approved handoff: [Approve the Fenris TUI polish specification and handoff](https://git.bongbetic.com/xavierk/Fenris/issues/70#issuecomment-5627) → [wayfinder/tui-polish-hourly-history-spec](https://git.bongbetic.com/xavierk/Fenris/src/branch/wayfinder/tui-polish-hourly-history-spec), commit `d894ae2`.
Execution remains a separate effort; no production code, release gate, package, or installation change happened in this map.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Destination
An approved, implementation-ready companion specification for a polished Fenris TUI: clear identity and monitoring state, trustworthy hourly usage history with drill-down, colour presets, drive-health placement, and honest data-availability/warm-up messaging. The route ends at human approval and handoff, not implementation.
Notes
CONTEXT.md,docs/agents/domain.md, and applicable ADRs. Every decision session uses grilling + domain-modeling; prototype tickets additionally use prototype and verify framework facts against current documentation.🐺 Fenris by Bongbetic; vendor wear moves from Settings to Drive health. Blinking green Monitoring, explicit Collecting, steady amber Paused, red Error/Stale, with text always visible and no animation implying successful collection.docs/spec/fenris-redesign.mdfrozen; use a companion spec and explicit acceptance amendments.Decisions so far
Define trustworthy hourly history and first-data availability: Local-calendar browsing, retained usage intervals, prompt measured partial history, explicit unallocated usage, and safe repair/retention; UTC projection-accounting follow-on ticketed.
Reconcile unallocated usage with UTC projection evidence: Exact evidence-anchored windows, complete-numerator rates, independent coverage/byte allocation, provisional UTC qualification and safe segment/legacy eligibility; strict unavailability accepted.
Define monitoring signals and honest warm-up estimates: Eight-state status lattice (Monitoring/Collecting/Paused/Waiting/Interrupted/Error/Stale/Unknown) with precedence, glyphs and 1.5 s blink, 5 s poll vs 5-min refresh, warm-up progress block and withheld-estimate wording; CLI parity.
Approve titlebox, health layout and colour presets: Titlebox/fallback approved; duplicate maker-credit removed; vendor wear under Drive health; Amber/Nord/High Contrast presets with status semantics precedence; user-scoped TUI preferences, reduced motion and narrow-layout fallback fixed.
Approve the Fenris TUI polish specification and handoff: Human approved the companion spec, acceptance amendments, and glossary handoff as implementation-ready; no new decision fog remains.
Not yet specified
None.
Out of scope
Read-throughput graph selector: writes-only graph confirmed; reads display work sits beyond this destination (Choose daily graph encoding and hourly drill-down ruled it out).
Production implementation, tests executed as release gates, package publishing, installation changes, or closing the prior implementation umbrella. A fresh execution effort follows handoff.
Changing lifespan mathematics, evidence/confidence thresholds, or collector cadence merely to make the display look ready; fabricated or interpolated missing history.
Custom colour editor, web GUI, notifications, unrelated release-workflow changes, or a general application redesign beyond the named TUI requirements.
Map closed — destination reached.
All in-scope fog is settled and all child decision tickets are closed. Final approved handoff: Approve the Fenris TUI polish specification and handoff → wayfinder/tui-polish-hourly-history-spec, commit
d894ae2.Execution remains a separate effort; no production code, release gate, package, or installation change happened in this map.