Implement fenris status as the read-only CLI twin of the TUI,
composing from the observation store and allow-listed systemctl
properties per spec section 8.8.
New module src/fenris/status.py:
- Freshness grading with shared constants (section 8.9, LC-10)
- Configuration error from direct config reads (section 8.3, LC-4)
- Store fault / newer-schema exact phrases (section 9.4-9.5, FL-4/FL-5)
- Drive anomalies as ordinary facts (section 9.7, FL-7)
- Four separate service facts (section 7.3, LC-9, CI-2)
- Projection recomputed on read, never stored (section 6.10)
- Retired command rejection with migration pointers (section 8.8)
- Six disclosures via --disclosures flag (section 6.11, CI-4)
Updated fenris.py:
- Replaced old cmd_status with new status module integration
- Added retired command handlers (start/stop/run)
- Added global --device flag rejection
Tests: 43 new, 182 total passing, zero regressions.
Closes#27.
- 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.