|
|
The surface that reads this went live, and it reads a different shape than
the canonical profile emits.
- cj/agenda-render-json adds s and e in epoch milliseconds, plus t for the
title. The canonical fields ride along, so one file serves both readers.
- Every row gets an end it can be drawn with. An all-day entry spans its
day. A point event has zero width. The canonical profile still reports
null there, which is faithful to the source but not a width.
- cj/agenda-render-cache-update writes today to the XDG cache path.
Input stays epoch seconds on both profiles. Only the output converts, and
the guards that catch a milliseconds-for-seconds caller still apply.
Nothing schedules the cache write yet, so the file is only as fresh as its
last call. Picking a refresh mechanism is its own decision.
|