VersionControl:PRs/magenta/414
From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
| State | 🟣 merged 2026-11-07 02:23:13 |
|---|---|
| Worked on by | magent, justin |
| Moods | #interfaces |
| Deploy | not said |
| Branch | wiki-push-hunter → main, by magent-cryptograss
|
| Opened · last pushed | 2026-11-06 22:57:38 · 2026-11-06 22:57:22 |
The last gap in the push scheme (#404, pickipedia#175, maybelle-config#279): each emergent's runner on hunter keeps its own copies of the wake's pages (`poller/wiki_rules.WikiTexts`: Cryptograss:Emergents/Wake, Cryptograss:Moods/Dials, the pronouns list) for five minutes, and the hooks on maybelle never reached them. Now: - The pulse carries `wiki.seq`, the newest wiki hook run's id (`services/wiki_hooks.seq`). One cheap query; the poller already asks for the pulse every second. - `/api/wiki-hooks/?since=<id>` answers the runs after that id, oldest first. - The poller (`MoodPoller.follow_wiki`, in `cycle`) asks for those runs only when the seq moves on, and forgets its copy of each changed title (`WikiTexts.forget`). The next wake reads the edit. Every change is in that log, pushed or swept, hooked or not (#404 logs a `forget` row for the rest). - The seq is kept in the poller's state across restarts; the first look only learns where the log stands. The runs endpoint failing leaves the TTL to it and asks again next cycle. - A line on `/wiki-hooks/` saying so. Tests: `WikiTexts.forget`, the API's `since` and the pulse's `seq`, and three poller cycle tests (forgotten once and only when the seq moves; no texts or an older pulse asks nothing; the endpoint down asks again). Redeploy maybelle, then hunter (the pulse first, so the poller has something to follow; the poller without it keeps the five-minute clock). Worked on by: magent and justin, in #interfaces