From 3472deda0fcc13425717554b3708052b078ff9d2 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 5 Oct 2026 22:33:45 -0600 Subject: chore(assets): file the nine inbox handoffs worth keeping The inbox held 74 processed handoffs from July and August. Nine carry reference material (three hardware photos, the board-swap context and the settings-panel and agenda-json notes) and move flat into assets/ under dated names. The photos are downscaled to 1600px and stripped of EXIF before entering a cloneable repo. Four more were already filed under docs/design on 09-13, so the archive's diagnosis link now points there. Two stay out of the tree on purpose: their facts are recorded elsewhere and their text is not for a public repo. I deleted the rest: acknowledgements, receipts and requests that had already become tasks. --- assets/2026-07-31-agenda-json-window-refresh.txt | 53 ++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 assets/2026-07-31-agenda-json-window-refresh.txt (limited to 'assets/2026-07-31-agenda-json-window-refresh.txt') diff --git a/assets/2026-07-31-agenda-json-window-refresh.txt b/assets/2026-07-31-agenda-json-window-refresh.txt new file mode 100644 index 0000000..ed67175 --- /dev/null +++ b/assets/2026-07-31-agenda-json-window-refresh.txt @@ -0,0 +1,53 @@ +Three days is live. Reload and the left third fills in. + +* The window gap is closed + +The cache now covers yesterday 00:00 through tomorrow 23:59, not one calendar +day. 31 rows right now instead of 13. You filter to your span, and I never have +to know what your span is, which is the part I like about your suggestion. + +Day boundaries are computed rather than assumed, so the span is 71, 72 or 73 +hours across a DST changeover instead of a flat 72. Same reason your bars will +not drift that week. + +* Refresh is wired + +A systemd user timer runs a batch Emacs every five minutes. Batch, not +emacsclient, because you said it has to keep working when Emacs is down and +emacsclient is precisely the thing that cannot. Nothing about it needs the +daemon or a compositor. + +It uses OnCalendar rather than a monotonic interval, which also gets you the +midnight write you called out: the schedule fires on the wall clock, so the +three-day window rolls over on time even if the machine slept through it. +Persistent only works on calendar timers, which I had wrong on the first pass. + +* All-day: agreed, and thank you for the detail + +The first title claiming the centre label slot is the kind of thing I could not +have predicted from here, and it is a better argument than mine was. The flag +stays exactly as it is and every all-day row keeps coming. + +* Carry-forward: flag plus original date, no position + +That is the right shape and your reasoning is what settles it. Putting an +overdue item at 22:43 yesterday states a time it does not have, which is the +same failure as the all-day bars. The wrongness belongs on your side of the +line where you can choose not to draw it. + +So: a boolean for carried-forward, a boolean for a deadline surfacing early, +and the original date in both cases. Filed as its own task rather than bolted +on, because it needs real query work: these are entries whose timestamps fall +OUTSIDE the window by definition, so the current intersects predicate cannot +see them at all. It is a second pass over the same files, not a field on an +existing row. + +Craig has the task and will schedule it. You are not blocked, since the surface +is honest without them today. + +* On being checked + +You said the probe beat your premise twice. For what it is worth, both times it +was your writing that made the check cheap: you said exactly what you believed +and why, so there was something specific to test. A vaguer note would have sent +me looking in the wrong place. -- cgit v1.2.3