Segment observation history by controller identity #23

Closed
opened 2026-08-31 18:24:28 +00:00 by xavierk · 1 comment
Owner

Parent

Implement the Fenris persistent TUI monitoring redesign

Canonical contracts: fenris-redesign spec · acceptance criteria — criterion IDs cited below live in the register.

What to build

Successive collection runs against mutating identity fixtures segment the observation history correctly. The segment identity key comes from the ladder — normalized kernel-exposed subsystem NQN, then the kernel composite, then model|serial — with FR as metadata only. Each segment freezes, at open, its fully nullable metadata snapshot: normalized subnqn/sn/mn/fr plus vid/ssvid/transport (from the PCI node when present, null otherwise) and the identity_degraded flag, with cntlid excluded. Identity change and a DUW decrease act as independent axes: a DUW decrease with unchanged identity opens a new segment without quarantining habit evidence; any visible identity-key change — including to or from a blank key — quarantines prior history; equal blank keys continue the segment, segmented by DUW monotonicity alone. identity_degraded is set at segment open exactly when the key is blank.

Acceptance criteria

  • The identity key follows the ladder exactly; FR is metadata only; the two segmentation axes are independent (ID-1)
  • Segments freeze a fully nullable metadata snapshot at open — normalized identity diagnostics plus vid/ssvid/transport and identity_degraded, cntlid excluded — immutable thereafter (ID-2)
  • identity_degraded set at open exactly when the key is blank; composite and model|serial rungs are not degraded (ID-4)
  • vid/ssvid read from the PCI node when present and stored null otherwise; metadata only, never key components (AC-4)
  • Blank-key semantics hold verbatim: to/from blank is an identity change and quarantines; equal blanks continue by DUW monotonicity (PR-16 semantics at the store level)

Blocked by

## Parent [Implement the Fenris persistent TUI monitoring redesign](https://git.bongbetic.com/xavierk/Fenris/issues/20) Canonical contracts: [fenris-redesign spec](https://git.bongbetic.com/xavierk/Fenris/src/branch/main/docs/spec/fenris-redesign.md) · [acceptance criteria](https://git.bongbetic.com/xavierk/Fenris/src/branch/main/docs/spec/acceptance-criteria.md) — criterion IDs cited below live in the register. ## What to build Successive collection runs against mutating identity fixtures segment the observation history correctly. The segment identity key comes from the ladder — normalized kernel-exposed subsystem NQN, then the kernel composite, then `model|serial` — with FR as metadata only. Each segment freezes, at open, its fully nullable metadata snapshot: normalized `subnqn`/`sn`/`mn`/`fr` plus `vid`/`ssvid`/`transport` (from the PCI node when present, null otherwise) and the `identity_degraded` flag, with `cntlid` excluded. Identity change and a DUW decrease act as independent axes: a DUW decrease with unchanged identity opens a new segment without quarantining habit evidence; any visible identity-key change — including to or from a blank key — quarantines prior history; equal blank keys continue the segment, segmented by DUW monotonicity alone. `identity_degraded` is set at segment open exactly when the key is blank. ## Acceptance criteria - [ ] The identity key follows the ladder exactly; FR is metadata only; the two segmentation axes are independent (ID-1) - [ ] Segments freeze a fully nullable metadata snapshot at open — normalized identity diagnostics plus `vid`/`ssvid`/`transport` and `identity_degraded`, `cntlid` excluded — immutable thereafter (ID-2) - [ ] `identity_degraded` set at open exactly when the key is blank; composite and `model|serial` rungs are not degraded (ID-4) - [ ] `vid`/`ssvid` read from the PCI node when present and stored null otherwise; metadata only, never key components (AC-4) - [ ] Blank-key semantics hold verbatim: to/from blank is an identity change and quarantines; equal blanks continue by DUW monotonicity (PR-16 semantics at the store level) ## Blocked by - [Collector tracer bullet: one collection run from fixtures to the observation store](https://git.bongbetic.com/xavierk/Fenris/issues/21)
xavierk added the ready-for-agent label 2026-08-31 18:25:15 +00:00
xavierk added this to the Build: Fenris persistent TUI monitoring redesign milestone 2026-08-31 18:25:16 +00:00
xavierk added a new dependency 2026-08-31 18:25:41 +00:00
Author
Owner

Implemented. All five acceptance criteria covered by 23 tests in test_segmentation.py. See commit 6a1841c.

Implemented. All five acceptance criteria covered by 23 tests in test_segmentation.py. See commit 6a1841c.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: xavierk/Fenris#23