# Candidate identity and operator Graph/export review

Status: complete; candidate identity reconciled and A/B Graph/export operator review passed
Type: evidence
Updated: 2026-07-26
Next Action: none
Parent: work/wp/completed/wp-optimize-hpt-triple-mirror-read-performance.md

## Reconciled candidate identity

The only current A/B operator-review candidate is:

- Debug S-record SHA-256:
  `D3D3615586FD522A9472504EAB55BC8A6F4955956AAE3229CCD397A0AD1A1EAF`
- Debug ELF SHA-256:
  `3F312FB090CE928883CB007C40E7780B40825B735ACEF7529378B18A95428902`
- Source base commit:
  `3af85b2311db42fc704066106ebf548cf6e05177`
- Source state: the preserved active working tree used by the isolated managed
  build; do not rebuild or substitute an artifact without recording new hashes.

Candidate lineage is cumulative:

1. `A77ADA66...F7211` — format-compatible bulk reads.
2. `91D05B35...0CCB5` — retained-start adjustment and export metadata.
3. `944BEA28...844501` — operator-warning truth corrections.
4. `D3D36155...A1EAF` — real-event Graph timer correction, retaining the
   preceding changes.

The first three hashes remain stage evidence. They are not current live/freeze
candidates.

## Read-only A/B baseline

Captured through the serial-bound J-Link services without programming,
formatting, initialization, card replacement, powered removal, or power
operation.

| Field | Controller A | Controller B |
| --- | --- | --- |
| Assembly / J-Link | `1751136 / 69664082` | `1751219 / 69660123` |
| Raw CID | `035344535330384780976F0084018559` | `035344535330384780976F0085018507` |
| Protocol / CID valid / representative read | `6 / 1 / 0` | `6 / 1 / 0` |
| HPT media state / status | `5 / 0` | `5 / 0` |
| System errors / dropped logs | `0 / 0` | `0 / 0` |
| Cache state / load / ready | `2 / 2 / true` | `2 / 2 / true` |
| Cache total / traversal | `2.71 s / 1.87 s` | `2.62 s / 1.78 s` |
| Cache scanned / selected | `1,607 / 1,606` | `1,543 / 1,538` |
| Bulk fallbacks | `0` | `0` |
| Lane oldest sequences | `1 / 1 / 1` | `86 / 86 / 1` |
| Retired segments | `0 / 0 / 0` | `2 / 1 / 0` |

Controller B's intended abnormal layout and both CIDs are unchanged.

Raw captures are retained under the machine-local excluded directories:

- `work/evidence/hpt-log-store-circular-mirror/controller-a/operator-graph-export-review-20260726/`
- `work/evidence/hpt-log-store-circular-mirror/controller-b/operator-graph-export-review-20260726/`

## Bounded operator review

This review does not repeat the accepted live-refresh matrix and does not
authorize destructive media work.

For both controls:

- [x] Graph opens from Home with retained data and no timeout.
- [x] Legend is legible and usable.
- [x] Return exits Graph normally.
- [x] Graph export entry opens Start Date normally.
- [x] Cancel/Back returns without starting an export.

On Controller A:

- [x] Submit a Start Date earlier than retained data.
- [x] The notice explains that the start was adjusted because earlier data is
  unavailable.
- [x] Next opens the normal End Date screen.
- [x] Normal End Date validation uses the adjusted start.
- [x] The proposed filename contains the adjusted start.

Controller B's prior real adjusted-start export remains accepted: 1,024
records, zero gaps, COMPLETE publication, matching adjusted metadata, and
`2.84 s` HPT staging. USB formatting/write/close/flush/rename timing is a
separate next task and is not claimed by this review.

## Operator result and real USB exports

On 2026-07-26 the owner reported `PASS` on both controls for the complete
bounded review above. The owner also completed a real adjusted-start export
from each control rather than stopping after the cancellation check.

The USB sticks were detected on `srv-rpi00.local`, mounted read-only by exact
device, inspected, and returned to the unmounted state. Filename identity,
record count, requested/actual range, and the controller's retained export
status establish the controller mapping; the physical volume label does not:

| Field | Controller A | Controller B |
| --- | --- | --- |
| Product / serial | `SMI6 / 07162026` | `SMI7 / 00112233` |
| Read-only host device | `/dev/sdb1` (unlabeled) | `/dev/sda` (volume label `A`) |
| File | `SMI6_07162026_20260725t0836-20260726t1313.csv` | `SMI7_00112233_20260725t0911-20260726t1314.csv` |
| Bytes | `87,763` | `85,180` |
| SHA-256 | `EFB43A7536408AF5D72741DD4997BBD181C7DB1DE61C74D24464793E3A1B863C` | `9C0C34ABC1955D9519E748DDB35C6D5B1B9F70DBDD2E0DF63F9024B100E0E75C` |
| Records | `1,735` | `1,684` |
| Displayed actual range | `2026-07-25 08:36` through `2026-07-26 13:13` | `2026-07-25 09:11` through `2026-07-26 13:14` |
| Complete / published / HPT / USB | `1 / 1 / 0 / 0` | `1 / 1 / 0 / 0` |
| Snapshot / requested-range gaps | `0 / 0` | `0 / 0` |
| Healthy / degraded records | `1,735 / 0` | `1,603 / 81` |
| HPT scan/staging | `2.18 s` | `2.08 s` |
| HPT staging throughput | `795.9 records/s` | `809.6 records/s` |
| Projected 90-day HPT staging | `162.8 s / 2.71 min` | `160.1 s / 2.67 min` |
| Bulk fallbacks | `0` | `0` |

Both files have contiguous `1..N` CSV row numbers, exactly seven columns per
record, no malformed records, a `COMPLETE` trailer, and a trailer count equal
to the parsed record count. Controller B's 81 degraded records are the
expected readable quorum result from its preserved abnormal mirror layout;
they are not missing export records.

The retained source data include event records between the normal minute
records. Controller A has one one-second reverse timestamp at a `Power Off`
event (`08:44:00` then `08:43:59`). Controller B has one same-second normal
record plus `Power Off` event at `00:02:00` and a later nine-minute interval
ending at another `Power Off` event. Sequence order and the controller's
requested-range gap counters remain intact, so these are source event timing
observations rather than CSV publication gaps. No claim of strict one-minute
timestamp cadence is made.

Post-export status captures are under:

- `work/evidence/hpt-log-store-circular-mirror/controller-a/operator-graph-export-review-20260726/post-export/`
- `work/evidence/hpt-log-store-circular-mirror/controller-b/operator-graph-export-review-20260726/post-export/`

The reported `2.18 s` and `2.08 s` values measure HPT scan/staging. This image
still has no separate timer around CSV formatting, FileX writes, close, flush,
rename, and final flush, so an exact operator-visible USB duration is not
claimed.

## Stop conditions

Stop and record `BLOCKED` or `FAIL` on any data timeout, missing retained data,
unusable legend/navigation, wrong adjustment reason, incorrect screen
transition, filename using the entered rather than adjusted start, HPT/CID
identity change, new system/SD/HPT error, dropped log, watchdog/reset, or
partial USB publication.
