Adds a record of what the plugin actually changes, so a running total can be reported. No behaviour changes for existing installations.
Run ledger
Applied runs now append one JSON line to /data/event_channel_managarr_ledger.jsonl describing what they changed:
{"ts": "2026-08-22T20:04:00+00:00", "version": "1.26.2341504", "shown": 11, "hidden": 100, "scheduled": true}shown and hidden are transition counts: channels whose visibility actually flipped on that run. They are not the number of channels currently visible or hidden, and not the number scanned. The plugin looks at every channel in scope on every scheduled run, so a running total of anything other than transitions would re-count the same channel indefinitely.
Three properties worth knowing:
- A line is written only after the database transaction that applied the changes has committed, so it records changes that happened rather than changes that were planned.
- Dry runs never write a line, and neither does an applied run that found nothing to change. Every line represents real work.
- A failure to write it can never fail a scan. The writer catches every exception and logs a warning. By the time it runs the channels have already been changed, so a full disk must not turn that into a failed run.
The file rotates once to .jsonl.1 at 5 MB. At roughly a hundred bytes per applied run that is decades away. Nothing in the plugin reads the file back.
Why it exists: the CSV exports cannot serve this purpose, because the Clear CSV Exports action deletes them and scheduled runs write them only when Enable Scheduled CSV Export is on.
Events surfaced badge
The README now carries a badge counting event channels switched to visible on the maintainer's own installation, refreshed twice a day by scripts/update_events_badge.py, which reads the ledger and writes a shields.io endpoint document to an unlisted Gist.
The number is one installation's total since the ledger was first deployed, not a lifetime total and not a project metric. The README says so beneath the badge.
Upgrading
Nothing to configure. No setting or action was added, removed or renamed, and plugin.json fields are unchanged. The ledger begins recording on the first applied run after this build loads.