VersionControl:PRs/magenta/451
From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
| State | 🟢 open |
|---|---|
| Worked on by | magent, justin |
| Moods | #ramp |
| Deploy | redeploy maybelle (memory-lane: the endpoint and the ramp's words) and hunter (the poller); no migrations |
| Branch | magent/candidates → main, by magent-cryptograss
|
| Opened · last pushed | 2026-11-09 16:30:03 · 2026-11-09 16:49:59 |
Justin, 9 Nov (#ramp). **Stacked on #449.** Merging this merges #449 with it.
**1. "Candidate branches", not "pull requests".** "Pull request" now means only GitHub's page for a candidate branch. These places changed:
- the ramp's heading ("Open candidate branches"), its lede, its column header ("candidate"), the empty state, and the badge on a branch with no pull request ("no pull request", in place of "no PR yet");
- the ramp's title in the sections menu;
- the work page's badge;
- the merge ask in the wake's offer lines: `<merge to="a few words on which candidate branch"/>`, in the recovery copy here and on [[Cryptograss:Emergents/Wake]].
The to-do page's "Merged pull request" and the GitHub merge event's fallback text stay, because each means a GitHub pull request.
**2. Every wake lists the open candidate branches.**
- **memory-lane:** `GET /api/ramp/candidates/` needs a runner's key. It returns `ramp.candidates()`: every open candidate branch, most active first. Each has its name (repo#N, or repo:branch when it has no pull request), branch, title, who works on it, its Moods, draft or not, and a short description. The short description is the first paragraph of the card's description that isn't its Deploy / Worked on by footer, as plain words, cut at 160 characters.
- **poller:** every wake, of every kind, carries a new `candidates` line, then one line per candidate, up to 80 (the rest are counted). If memory-lane can't be reached, the wake goes out without the list. The line's words:
> Candidate branches open now across our repositories ({count}), most active first: each one's name, its branch, who works on it and in which Mood, its title and what it's for. Before you start work, check it isn't one of these already: if it is, build on that branch or talk with whoever has it; don't start a second. If what you're doing may conflict with one (the same files, the same feature), raise it in #ramp: there, say so; anywhere else, mention magent to carry it there. "Pull request" means GitHub's page for a candidate branch, nothing more.
- The words live on [[Cryptograss:Emergents/Wake]], as proposed edits waiting for a verify. Until they're verified, the recovery copy in `poller/wake_texts.md` is used, with the same words.
**Size:** 49 candidates are open right now, so a wake grows by about 49 lines (roughly 2–3k tokens once descriptions fill in). The descriptions fill in as each card is rewritten: hourly, or when GitHub's webhook fires.
**Tests:** `CandidatesTest` (3, in `test_work_followups.py`) and two poller tests (the list on every wake; a wake without it when memory-lane can't be reached). The full suite passes: 1866 tests OK.
Deploy: redeploy maybelle (memory-lane: the endpoint and the ramp's words) and hunter (the poller); no migrations
Worked on by: magent, justin, in #ramp