Commit Graph
68 Commits
Author SHA1 Message Date
xavierk 7d219c4697 feat(hour/day derivation): hour classification, monitoring periods, day aggregates, pruning
Hour classification (PR-4):
- Powered-off: POH delta < 90% of wall-clock span
- Active: DUW delta >= 256 MiB
- Idle: powered on + sampled + below active threshold
- Unknown: unsampled without POH evidence
- Four splits sum to exactly wall_clock_seconds
- Disabled time is never an hour state

Monitoring periods (FL-8):
- ensure_period_open: opens period at run moment if none exists
- close_period: closes with end cause
- is_inside_period: checks timestamp against period bounds
- Never backdated; wall-clock outside periods excluded from denominator

Day aggregates (ST-4, PR-5):
- Derived monotonically from hour rows
- UTC-bounded; no 23/25-hour days
- Coverage: known seconds / period wall-clock
- Gap hours inside periods contribute unknown seconds
- Hours outside periods excluded entirely
- No absent hour interpolated/estimated/fabricated (FL-3)

Raw sample pruning (ST-5):
- Prunes samples older than 14 days
- Hour observations and day aggregates retained indefinitely

Closes #22
2026-09-01 22:58:03 +05:30
xavierk 2217b00ff6 feat: collector tracer bullet (#21)\n\nSmartctl acquisition with validation\nSysfs controller identity acquisition\nIdentity normalization (strip, no case fold, blank handling)\nSQLite store in WAL mode with six entities\nSchema versioning via PRAGMA user_version\nInvariant validation (negative bytes, etc.)\n17 passing tests across two test files\n\nCloses #21 2026-09-01 22:33:26 +05:30
xavierk 566d1c81b1 docs(spec): fenris-redesign.md — implementation-ready specification from ADRs 0001-0006 with two-way traceability matrix 2026-08-31 23:43:22 +05:30
xavierk ff51be2d8a docs(spec): fill assembly traceability gaps — PR-17 projection arithmetic, TUI-4 Panes layout, IN-10 artifact placement, CI-3 /run prohibition 2026-08-31 23:43:22 +05:30
xavierk b2ef1308b0 docs(adr): 0006 collector acquisition path — smartctl counters + sysfs identity, hard pin, no partial samples; SLOT-B filled (AC-1–5) 2026-08-31 23:02:25 +05:30
xavierk 580fab26be docs(adr): amend 0002 — blank identity key caps confidence at Limited, blank-key change semantics; SLOT-A filled (PR-15/16, ID-4); glossary term degraded identity 2026-08-31 22:30:40 +05:30
xavierk bf83ac5481 docs(spec): acceptance criteria for the redesign — subsystem gates, A/P/M evidence classes, ADR traceability; state-matrix and parity gates, prohibition set 2026-08-31 22:13:20 +05:30
xavierk 305bdd4779 docs(adr): amend 0001 — controller-segment metadata snapshot: normalized identity diagnostics, vid/ssvid/transport, frozen at open, nullable 2026-08-31 21:57:54 +05:30
xavierk 4d332bef53 docs(adr): amend 0001 + 0003 — baseline provenance and validation; glossary terms for verified and unverified override 2026-08-31 21:02:09 +05:30
xavierk d45d931a0d docs(adr): 0005 failure and recovery — refuse bad writes, never backfill, degrade store faults; glossary term for store fault 2026-08-31 20:14:23 +05:30
xavierk ffa6f22777 docs(adr): 0004 installation lifecycle — Makefile venv install, dormant install, sanctioned teardown 2026-08-31 18:58:05 +05:30
xavierk de1e8c753b docs(agents): issue-tracker and domain guidance for agents; ignore .pi session state 2026-08-31 17:25:10 +05:30
xavierk 26a6703152 docs(adr): 0003 service lifecycle — timer-driven collector, sanctioned control helper; glossary terms for collection run, deliberate disable 2026-08-31 16:14:52 +05:30
xavierk 43467f8957 docs(adr): 0002 projection model — sustained regime, categorical confidence; glossary terms for regime, habit change, scenario range, coverage 2026-08-31 15:38:41 +05:30
xavierk a63da74e44 docs(adr): 0001 observation store in SQLite; glossary terms for store entities 2026-08-31 14:48:14 +05:30
xavierk 91db519148 feat(dashboard): Bongbetic wordmark in header + monogram favicon
- Header now shows the Bongbetic icon + light/dark wordmark (linked to
  bongbetic.com) next to FENRIS — no more lonely "F" placeholder.
- Footer gets the little b_glyph monogram for that extra polish.
- Wires up real favicons (ico + 16/32) and apple-touch-icon + webmanifest
  so the tab and bookmarks actually look like Bongbetic.
- Vendors the missing brand bits: favicon set, apple icon, 192px icons,
  hi-res wordmark and contact sheet.
2026-08-23 18:54:05 +05:30
xavierk 47e1eaaf12 docs: quirky README with Bongbetic branding, drop internal plan from remote
- Rewrite README in a playful, plain-English voice and add Bongbetic
  wordmarks/glyph/icons so Gitea renders the brand nicely (light/dark).
- Vendor assets/bongbetic-brand/* from /mnt/Toto/Documents/bongbetic/Logo.
- Remove plan-dash-changes.md from tracking (internal only) and gitignore it.
2026-08-23 18:52:57 +05:30
xavierk 53cc6c81b9 Initial commit: Fenris NVMe wear monitor with rolling-24h dashboard 2026-08-23 18:47:12 +05:30