# Fenris Fenris observes an NVMe drive’s real-world use and translates that history into an understandable endurance outlook. ## Language **Observation history**: The persisted record of drive activity gathered while Fenris monitoring is enabled, retained across restarts and reboots. _Avoid_: Calibration data, temporary history **Observed usage habit**: The pattern of active, idle, and powered-off hours represented by the observation history, with recent sustained behavior carrying more relevance than distant behavior. _Avoid_: Current usage, benchmark workload **Usage-adjusted theoretical lifespan**: The theoretical time until the drive’s write endurance is exhausted if its observed usage habit continues; it is an endurance projection, not a predicted hardware-failure date. _Avoid_: Future life, actual lifespan, failure date **Projection confidence**: The degree to which the observation history is sufficiently long, complete, and stable to support the usage-adjusted theoretical lifespan. _Avoid_: Accuracy percentage, certainty **Monitoring period**: A span during which Fenris monitoring is enabled; powered-off time remains part of the usage habit, while deliberately disabled time does not. _Avoid_: Daemon uptime, calibration window **Observation store**: The single SQLite database at `/var/lib/fenris/observations.db` that persists the observation history, monitoring periods, hour observations, day aggregates, and endurance baseline. _Avoid_: Data directory, history.jsonl, the database (generic) **Store fault**: The condition where the observation store is present but cannot be read or trusted — unreadable, corrupt, or written by a newer Fenris — degrading every view that depends on it rather than crashing or guessing. _Avoid_: Database error, corruption, broken data **Usage interval**: The elapsed span between two compatible counter observations, with a measured usage total whose distribution within that span may be unknown. _Avoid_: Estimated hourly usage, interpolated sample **Unallocated usage**: Measured usage whose share in a particular hour, calendar day, or monitoring period cannot be established from the available evidence. _Avoid_: Zero usage, evenly distributed writes **Hour observation**: The usage-habit evidence for a UTC hour's represented elapsed span: active, idle, powered-off, and unknown time, measured usage, thermal evidence, and coverage. A partial hour does not describe future time. _Avoid_: Hourly record, hourly.jsonl entry **Day aggregate**: The UTC-day summary at which usage-habit evidence is judged; distinct from a local display day. _Avoid_: Local daily total, daily stats **Local display day**: A calendar day in the user's current system timezone, used to browse observation history; its elapsed length can vary with timezone transitions. _Avoid_: UTC evidence day, fixed 24-hour day **Controller segment**: A span of observation history within which the drive's controller identity is unchanged and counters are monotonic; write deltas are never computed across a segment boundary. _Avoid_: Counter reset handling, drive swap detection **Degraded identity**: The condition where a controller segment's identity key is blank because no identifier rung produced a value; replacement detection then relies on write-counter continuity alone, and projection confidence is capped. _Avoid_: Identity error, unknown device, virtual drive **Endurance baseline**: The write-endurance value a projection consumes, chosen by precedence: a verified override when one exists, otherwise an unverified override, otherwise a coarse implied baseline derived from vendor wear — each labeled as such. _Avoid_: TBW value, failure threshold, max writes **Verified override**: A rated-TBW override with complete provenance whose applicability to the detected drive was confirmed by machine match or explicit user attestation; the strongest endurance baseline. _Avoid_: Confirmed TBW, trusted value **Unverified override**: A rated-TBW override knowingly stored with incomplete provenance; always presented as user-supplied, never as verified. _Avoid_: Forced entry, fallback baseline **Sustained regime**: The most recent stretch of the observation history over which the observed usage habit has been stable; the interval whose write rate the usage-adjusted theoretical lifespan consumes. _Avoid_: Current window, detection period **Habit change**: A sustained divergence between recent and earlier daily write rates that starts a new sustained regime. _Avoid_: Spike, anomaly **Scenario range**: The spread of lifespan projections computed from the 7-, 28-, and 90-day horizons of the observation history, shown in place of a statistical interval. _Avoid_: Confidence interval, error bar **Coverage**: The share of wall-clock seconds inside monitoring periods whose usage-habit classification is known rather than unknown. _Avoid_: Uptime, sample count **Byte-allocation completeness**: Whether the available evidence establishes all monitored writes attributable to a specified span, without missing counter evidence or unknown boundary shares; distinct from usage-habit classification coverage. _Avoid_: Coverage, estimated allocation **Qualifying day**: A UTC date whose represented monitored time meets the coverage requirement for projection evidence. Qualification is provisional while the date is in progress and does not establish byte-allocation completeness. _Avoid_: Completed day, supported day, calibration day **Collection run**: One scheduled or on-demand execution of the collector that interrogates the drive and extends the observation history. _Avoid_: Poll, daemon tick **Release**: A published version of Fenris: a version tag, its packages in the channel, and its human-readable change notes, all together; a bare tag is not one. _Avoid_: Tag, upload, build **Rollback**: Returning to an earlier release by restoring an observation-store snapshot and then installing that release; installing an older package over a newer store is unsupported. _Avoid_: Downgrade, version pinning (as a promise) **Deliberate disable**: A monitoring pause made through Fenris's own control path, closing the monitoring period so the paused time is excluded from the usage habit. _Avoid_: Manual stop, service stop