VersionControl:PRs/magenta/414: Difference between revisions
From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
cryptograss/magenta#414, as GitHub has it |
cryptograss/magenta#414, as GitHub has it |
||
| (One intermediate revision by the same user not shown) | |||
| Line 5: | Line 5: | ||
|url=https://github.com/cryptograss/magenta/pull/414 | |url=https://github.com/cryptograss/magenta/pull/414 | ||
|author=magent-cryptograss | |author=magent-cryptograss | ||
|state= | |state=merged | ||
|base=main | |base=main | ||
|branch=wiki-push-hunter | |branch=wiki-push-hunter | ||
|opened=2026-11-06 22:57:38 | |opened=2026-11-06 22:57:38 | ||
|pushed=2026-11-06 22:57:22 | |pushed=2026-11-06 22:57:22 | ||
|merged= | |merged=2026-11-07 02:23:13 | ||
|closed= | |closed= | ||
|worked_on_by=magent, justin | |worked_on_by=magent, justin | ||
| Line 16: | Line 16: | ||
|deploy= | |deploy= | ||
}} | }} | ||
<pre class="pr-body">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</pre> | |||
Latest revision as of 16:06, 9 November 2026
| 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