# 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: checkpoint the scoped Work1 source candidate; keep 00.05.03 release qualification and rollout as separate gates

## 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 showed the stated duration on all five ranges, but a 24-hour Pan Left shifted 45,060 seconds rather than one day, changing the clock ticks between days. The exact right-edge time was invisible on the dark graph. A first bench candidate corrected the pan but crowded the endpoint beside the final interior tick; the final 00.05.03 bench candidate places exact start/end date and time on a separate lower row. Controller A flash readback matches the final SREC exactly. Camera photos and graph-state captures of all five ranges and two consecutive day pans show nonoverlapping endpoint labels, exact range widths, five evenly spaced interior ticks, and 86,400-second day steps. The 70,925 captured chart-cache records cover the sampled views. Controller A independently exported 61 retained SD records for the 3 Oct 21:14–22:14 window to `chart_check`, which was read on the Windows PC. All 61 timestamp, target-temperature, and actual-temperature pairs match the corresponding graph-cache records exactly; the export reported zero gaps. The scope remains a bench-verified, uncommitted Work1 candidate for 00.05.03, not a released build.

## 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/`.
- 00.05.03 bench artifact, hashes, photos, and range analysis: `work/evidence/generated/graph-time-range-20261005/controller-a/candidate-00-05-03/` (SREC SHA-256 `96E995F63C4A799D3B86D67BD4044FA1BFD9FFE4D352B02D26486CCA268B813C`). Flash readback and same-run CID: `work/evidence/hpt-log-store-circular-mirror/controller-a/graph-time-range-20261005/candidate-00-05-03/`.
- Retained SD export request and completion status are in the same candidate evidence directory. The host-read CSV `GRAPHCHK_20261003_2114.csv` and `sd-export-comparison.json` are in `work/evidence/generated/graph-time-range-20261005/controller-a/candidate-00-05-03/`; all 61 minute records match the graph cache with 0.0 °C maximum difference.
- 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.
