The job ledger + the shared holger panel — the beginner's version
Two small, safe additions to holger. Neither changes anything that already worked.
1. A logbook for promotions
Before: when holger "promoted" a package (moved it into the immutable production store), it did the move and that was it — no lasting record of that a promotion happened.
Now: every promotion also writes a line into a little durable logbook (a file called jobs.redb), saying what was promoted, when, by whom, and whether it succeeded or was refused. This logbook is the same shared "job ledger" (called jera) that nornir and korp already use — holger doesn't invent its own.
The magic word is additive: if there's no logbook (e.g. an older setup), holger promotes exactly like it always did. The logbook is a bonus, never a requirement.
2. One holger panel you can show in other apps
holger has a screen that lists its repositories and the packages inside them. That screen used to be copy-pasted into the demo app. Now it's a single reusable piece called facett-holger — write it once, use it everywhere.
- holger's own demo shows it.
- another app (like nornir) can show the same panel inside itself, using a small connector crate called holger-embed. You call
panel(...), you get the screen, you drop it into a tab. It runs at full speed (native — no slow web layer).
Where does the data come from? Either holger reads it directly (in the same process), or another app reads it over the network and hands the panel a little data bag (RegistryModel). The panel doesn't care which — it just draws what it's given.
That's it: a logbook for promotions, and a share-anywhere panel. Both optional, both tested, nothing old broken.