# Project Map: Graph time ranges tied to recorded timestamps

Status: completed
Type: project-map
Updated: 2026-10-05
Origin: IDEA-0010
Target: Controller A, verified Work1 firmware candidate
Next Action: Work1 complete; handle 00.05.03 release qualification and rollout only through 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 historical pans advance by one full displayed interval, including the two alternating 12-hour anchors and identical 24-hour clock anchors on successive days.

## 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. The first 00.05.03 bench candidate corrected that pan and moved exact start/end date and time to a separate row. The owner then identified a missed defect: its 12-hour Pan Left still shifted only six hours. Source review confirmed half-window panning at the other zoom levels too. The revised 00.05.03 bench candidate advances one whole window at every zoom. Controller A full flash readback matches revised SREC SHA-256 B08E422E668B9A0FBF2EF1CAF63A7CFDF969A544A1569E43CFE07AA4D26F45A3 exactly. Its 25 graph-state captures and ten HD webcam photos cover base, two left, and two right views at 1, 3, 6, 12, and 24 hours. Every range has exact width, five correctly spaced interior ticks, visible endpoints, and full-window historical steps. Consecutive 12-hour starts alternate between 04:24 and 16:24 on 4 Oct; historical 24-hour starts retain their clock anchor. The first pan away from a live newest view may differ from a prior photo by elapsed live time; its subsequent historical step is exactly 86,400 seconds. The revised candidate's chart cache matches all 61 independently exported retained SD minute records at identical timestamps and temperatures with zero gaps. A clean managed Debug rebuild reproduced the programmed SREC exactly. Owner acceptance was recorded, and the source plus matching tracked Debug artifacts were committed locally as ae6e3092. Work1 is complete; the candidate is 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/`.
- Superseded first 00.05.03 bench candidate and owner-reported 12-hour incident: `work/evidence/generated/graph-time-range-20261005/controller-a/candidate-00-05-03/` and `work/evidence/hpt-log-store-circular-mirror/controller-a/graph-time-range-20261005/candidate-00-05-03/`.
- Revised 00.05.03 bench artifact, managed build, hashes, ten photos, and 25-view analysis: `work/evidence/generated/graph-time-range-20261005/controller-a/candidate-all-ranges/` (SREC SHA-256 `B08E422E668B9A0FBF2EF1CAF63A7CFDF969A544A1569E43CFE07AA4D26F45A3`). Full flash readback and same-run SD CID: `work/evidence/hpt-log-store-circular-mirror/controller-a/graph-time-range-20261005/candidate-all-ranges/`.
- Clean managed Debug rebuild and exact SREC reproduction: `work/evidence/generated/graph-time-range-20261005/controller-a/candidate-all-ranges/clean-rebuild-verification.json`. Scoped local product commit: `ae6e3092`.
- Retained SD export request and completion status are in the first candidate evidence directory. The host-read CSV `GRAPHCHK_20261003_2114.csv` is there; the revised candidate's `sd-export-comparison.json` links it to the revised firmware graph-cache capture. All 61 minute records match with 0.0 °C maximum difference and zero export gaps.
- 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 full-window navigation and exact timestamps at all five zoom ranges, and independent persisted SD data is compared with its graph-cache timestamps. Do not treat baseline released-firmware observations as candidate qualification.

## Owner Acceptance

Owner acceptance on 2026-10-05: "the graph passes now" after review of the corrected Controller A display. After being told that the local Work1 commit remained, the owner instructed "continue with directive"; the scoped commit is ae6e3092. Production release and rollout remain separate. Camera access is paused at the owner's request until the owner says it is available again.

## 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.
