Logical decoding for agent audits
Logical decoding turns a database's write-ahead log into a stream of committed row changes. Used to audit an AI agent, it answers a question the agent can't: which rows did Postgres actually commit for this action? Triggers and cascades show up, because they changed rows in the same transaction.
An example
expected UPDATE 1 row in public.orders where id = 42 · sets status
observed UPDATE 301 rows in public.orders · 300 outside id = 42
public.orders id status
✓ expected 42 paid → shipped
✕ unexpected 218 pending → shipped How Deedglass uses it
Deedglass's check reads the change log through a replication slot, matches each committed change to the action that caused it, and reports Matches or Doesn't match. That is how a one-row UPDATE that a legacy trigger turned into 301 rows gets caught.