# Project Map: Graph time ranges tied to recorded timestamps

Status: active
Type: project-map
Updated: 2026-10-05
Origin: IDEA-0010
Target: Controller A, verified Work1 firmware candidate
Next Action: complete candidate build and independently qualify graph time projection against recorded data

## Purpose

Make the graph's duration, clock ticks, endpoint dates, and plotted data correspond to the same recorded time interval at every zoom level. Make consecutive 24-hour pan views retain the same time of day.

## Direction

1. Capture Controller A identity, live graph state, physical screen photographs, and chart records without changing SD media or firmware.
2. Compare the 1, 3, 6, 12, and 24-hour windows with their active viewport timestamps, grid timestamps, and real chart cache records. Identify any mismatch and its source.
3. Correct confirmed graph UI defects in the smallest scoped firmware change. Verify a managed Debug build, focused graph checks, and exact candidate artifacts.
4. Qualify the corrected candidate on Controller A, including independent persisted-record comparison, before claiming that the screen portrays real SD data. Keep release and rollout separate from Work1.

## Current Position

Controller A's released 00.05.02 firmware shows the stated duration on all five ranges. A live 24-hour Pan Left changed the right-edge clock from 8:31 to 20:00, shifting 12 hours 31 minutes, and the exact right-edge time was invisible because its prompt used black text on a dark graph. RAM chart records cover the captured windows and align with their grid timestamps. These observations establish the UI defects; the RAM cache is not independent proof of persisted SD records. A source candidate changes 24-hour pan by exactly one day and makes the endpoint time white. The managed build and target candidate qualification are in progress.

## Evidence And Gates

- Baseline identity: `work/evidence/hpt-log-store-circular-mirror/controller-a/graph-time-range-20261005/sd-card-identity.json` (raw CID `FE34325344000000200000015B01A30B`).
- Baseline graph state, cache capture, and physical screen photographs: `work/evidence/hpt-log-store-circular-mirror/controller-a/graph-time-range-20261005/` and `work/evidence/generated/graph-time-range-20261005/controller-a/`.
- Gate 1: independently verify span, grid, endpoint, and sample projection for every displayed range; account for legitimate missing records and clock rollover.
- Gate 2: build and focused regression checks pass for the corrected source; record artifact hashes.
- Gate 3: corrected candidate is exercised on Controller A, with photographed 24-hour day-to-day pan and all zoom ranges, and independent persisted SD data is compared with its rendered timestamps. Do not treat baseline released-firmware observations as candidate qualification.

## Dependencies And Boundaries

- Controller A is the selected target. Do not remove its SD card while powered.
- The owner explicitly authorized reloading Controller A on 2026-10-05 for verification. Capture its full internal flash before programming and verify the exact candidate after. Production release remains outside the directive's default Work1 endpoint.
- Preserve unrelated workspace changes and existing release candidate evidence.
