Part of #51 (1.1.1). Move to an append-only event log (message_sent, message_read, …) so file-based drivers can append rather than rewrite (ADR 0001 decision 1). Unread = sent events with no matching read event for the agent. sqlite keeps a backward-compat read path for the legacy messages/read_at table. Normalize timestamps (ISO-8601, TZ) to avoid watch-loop miss/dup. Acceptance: new writes target the event log; existing installs read without migration.
Part of #51 (1.1.1). Move to an append-only event log (
message_sent,message_read, …) so file-based drivers can append rather than rewrite (ADR 0001 decision 1). Unread = sent events with no matching read event for the agent. sqlite keeps a backward-compat read path for the legacymessages/read_attable. Normalize timestamps (ISO-8601, TZ) to avoid watch-loop miss/dup. Acceptance: new writes target the event log; existing installs read without migration.