Timeline report¶
The HTML timeline report is the visual quality-control step between planning and applying. plan writes it to .ingest/report.html, and report can regenerate it. It is a single self-contained file with no external dependencies, so you can open it straight from disk or share it.
The whole point is that a mistake is visible. A wrong timezone offset shows up as mic bars that do not line up with the camera clips they were recorded with, and unexpected gaps or overlaps between cameras stand out at a glance.
Layout¶
At the top, the report shows the project name, the date range, the trip timezone, and when it was generated, followed by a row of summary tiles: files planned, total size, number of days, mic clips paired to a camera, warnings, and excluded files.
If there are warnings, they appear next in a highlighted box listing each one with its check name and message, for example a timezone mismatch or a capture outside the trip date range. This mirrors what plan prints, but shows the full list rather than the first several.
Swimlanes¶
Below that, each day is drawn as its own plot with one horizontal lane per device:
- Osmo Pocket 3
- Osmo Action 6
- Mic TX00 and Mic TX01
- Osmo audio backup
- iPhone video
- iPhone photo
- Other photos
Only lanes that actually have media that day are drawn. Videos and audio with a known duration are drawn as bars spanning their length; photos and other zero-duration captures are drawn as dots. Every lane has a fixed color, consistent across days, and the palette adapts to light or dark mode along with the rest of the page.
Reading a day is straightforward: a mic bar should sit directly under the camera bar it was recorded with. If it does not, the mic or the camera has a timezone problem. Cameras filming the same scene should overlap; long unexplained gaps are worth a look.
Day filter chips¶
Above the plots is a row of filter chips: an "All days" chip followed by one chip per day. "All days" (the default) stacks every day's plot vertically so you can scan the whole trip. Clicking a single day switches to a focused single-day view showing only that day, which is where zooming becomes available.
Drag-to-zoom in single-day view¶
In the single-day view, the time axis can be zoomed for frame-accurate comparison of start and stop times:
- Drag horizontally across the plot to select a time range. Releasing zooms the axis to that range.
- Double-click the plot to reset the zoom, or click the "reset zoom" link that appears in the day header.
Zooming is per day and only offered in the single-day view, because it is meant for close inspection of one day's captures, for example confirming that a mic recording really starts at the same instant as a camera clip. The "All days" overview is not zoomable.
Tooltips¶
Hovering over any bar or dot shows a tooltip with the capture's start time, duration, device lane, the original source path, and the destination filename it will be renamed to. For a mic recording that plan paired to a camera clip, the tooltip also names the clip it was paired with. This is the quickest way to answer "what is this thing and where is it going" without leaving the plot. Tooltips are suppressed while you are dragging a zoom selection.
Table view¶
Two collapsible sections sit below the plots:
- All planned renames, a table of every move with local time, duration, device lane, source path, and destination path. This is the same information as the plots, in a form you can scan or copy.
- Excluded files, a table of every file that was left in place, each with the reason it was excluded (empty recording, duplicate content, unrecognized device, or no usable timestamp).
Both are collapsed by default so the plots come first, and expand on click.
What to do about what you see¶
The report is for finding problems, not fixing them. If you spot a suspicious offset, confirm it with align, correct the trip timezone in ingest.toml if that is the cause, re-run plan to rebuild the report, and look again. When the report looks right, run apply.