"Absolute time orders events; local date answers which notebook day they belong to."
What actually persists
The notebook sits beside a particular person in a particular place. The server clock may be in another zone or already on another date. For this product, Today is a device-local calendar claim.
Views are queries
The client sends an ISO local date with the draw and view request. The server validates its shape and uses it as query context while still recording absolute created timestamps for ordering and audit.
What ambiguity costs
Deriving Today from server UTC creates entries under tomorrow or yesterday near midnight. Trusting an arbitrary date without validation permits malformed buckets. Context ownership does not cancel input validation.
See one entry through four windows
Test “The Device Owns Today” by viewing one entry through Today, 7 days, 30 days, and calendar. State whether each view copies data or applies another predicate, and separate the questions answered by device-local date and absolute timestamp. Creating fake rows for blank days means the model has begun storing obligation.
Query it
Show a request made near midnight where server UTC and device-local date disagree, then choose the correct entry date. Include month end, year end, near-midnight creation, multiple entries on one day, and status = 'live'. Explain the predicates and indexes that produce the answer, not only the final count.
Memory should lead back
Dates and keywords make return paths without judging the writing. When search reads the same original and transcribed state and tags retain prompt provenance, one collection truly owns its history.