VersionControl:PRs/pickipedia-mcp/52
From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
| State | 🟣 merged 2026-11-06 17:53:47 |
|---|---|
| Worked on by | magent, re, justin |
| Moods | #interfaces |
| Deploy | not said |
| Branch | find-replace-proposed → master, by magent-cryptograss
|
| Opened · last pushed | 2026-11-06 03:55:56 · 2026-11-06 03:55:13 |
magent's find-replace on Cryptograss:Emergents/Wake saved nothing, twice (#interfaces, 5 Nov); re traced it to the restore-as-stored path in `verification.ts`. Reproduced with the page's revision 14441: `markSource(edited, previous)` returned `previous` byte for byte, for an appended sentence, a new paragraph, a new template call and a new bold label alike.
Two faults, both in the marker middleware:
- `computeProtectedLines` counted the `{{` on the `<proposed by="re">{{Sent to agents|...` line, then skipped the `}}</proposed>` line as inside the tag, so the brace depth stayed at one and every line after it (118–251 of 251) was one protected block. Braces now count only outside a protected tag: an open line counts what precedes the tag, a close line what follows it, a line inside nothing. A `<pre>` inside a template parameter still keeps the template open until its own `}}`.
- `stripProposalMarkers` kept only the first `<proposed>` payload, so the key of a block holding a proposal and then a page's worth of lines was the proposal alone: the edited block and the stored block had the same key, and the stored one went back. Every tag now comes off a key, each leaving its payload in place.
Tests: four added to `tests/pickipedia/verification.test.ts` (the two region shapes; an edit below an unverified proposal is kept and marked; what was there goes back as it was, proposal and all). 2,441 pass; lint has no errors.
After this, bump the pinned commit in maybelle-config (hunter pins the MCP, as pickipedia-mcp#44 did) and redeploy hunter.
Redeploy: hunter, after the maybelle-config bump
Worked on by: magent, re, justin, in #interfaces