aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
37 hoursfeat: publish the queue and history atomicallyDanilo M.2-0/+124
Both files are written whole through a temporary file and a rename, so a renderer never reads a half-written value. An empty queue is [] rather than null, because the renderer parses it as an array.
37 hoursfeat: add the notification storeDanilo M.2-0/+352
The store holds the live queue and the history ring as pure state. Expiry tells the client and keeps the entry inert; dismissal and eviction file it in history. Replacing reuses the id and emits nothing.
37 hoursfix: add the GPLv2 header to the policy testDanilo M.1-0/+11
37 hoursfeat: add the module and the notification policyDanilo M.6-0/+554
The policy functions are pure so they are tested without a bus: urgency from the hints, the timeout rule with its urgency defaults, the two stack tag spellings, and the action pair parse.