### Live L7b: the DVR window, the seek power, and WMH1 version 2

Additive: no existing record changes its bytes, and every existing corpus vector keeps its
records.

- **live-recording §8** gains what a relay that keeps a **DVR window** of a room's tracks
  does with it (§8.2 to §8.5): a window by age (at most 24 hours) and by bytes, evicted
  oldest first by whole group, each media group with its receipts group; a FETCH answered from
  the cache and the window together, groups in the requested order; what was evicted marked
  with an End of Unknown Range (MOQT §11.4.1.2, `0x10C`), never with an unmarked gap or an End
  of Non-Existent Range, since an evicted object existed; an object that cannot be served
  inside a group marked from the group's start, since -22's End of Range moves to a later
  group; a harvest window whose end lies ahead as a SUBSCRIBE with that range and a fill;
  decisions read from the room's events tracks withholding what they deny or redact, never
  replacing it; every object checked again against its receipt after a restart. §8.6 maps the
  window onto DASH's `timeShiftBufferDepth` and an HLS live playlist. §8.1 is the take
  addressing as before. §8.2 also says what a relay never keeps: a room with a confidentiality
  record, known by its first sealed object. The relay keeps nothing of the room from then on,
  deletes what it kept of it before, and remembers the room across a restart. confidentiality
  §9 points to it.
- **live-rooms**: the **seek** power, bit 4 of `powers` (§3.3), and **§10.6 Seeking back**:
  a FETCH, or a fill, that starts below a track's live edge is served only to a grant with the
  power, and refused `UNAUTHORIZED`, `seek_not_granted`, otherwise. Roles and grants may now
  set bits 0 to 4. `wai-rs` `live_room::seek_check`; the corpus gains a `dvr` room, three
  refusals (a grant's seek beyond its role, power bit 5 in a grant and in a role) and a
  `seek` section of requests served and refused, which `live_rooms_verify.py` checks too.
- **live-metering**: `WMH1` **version 2** (§3.9) adds a hop's DVR figures before `sig`: the
  objects and bytes served from its window, those it wrote to it, the bytes it held in
  byte-seconds, and the objects it dropped because they did not verify; with their rules
  (§3.6) and bound `B₂(M) = 600 + 180 × (M + 2)` (§3.7). A hop with no window signs version 1.
  The receipt stays version 1 and does not sum the figures. The corpus gains a version 2 relay
  record and four refusals; `live_metering_verify.py` reads both versions.

