aboutsummaryrefslogtreecommitdiff
path: root/assets/2026-07-31-agenda-json-window-refresh.txt
diff options
context:
space:
mode:
Diffstat (limited to 'assets/2026-07-31-agenda-json-window-refresh.txt')
-rw-r--r--assets/2026-07-31-agenda-json-window-refresh.txt53
1 files changed, 53 insertions, 0 deletions
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.