VersionControl:PRs/magenta/413

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
magenta#413: Last line stays in view when the footer grows; links red or blue; Tidings badge in a new browser
State 🟣 merged 2026-11-06 20:49:24
Worked on by magent, justin, slvrbckt
Moods #interfaces, #general
Deploy not said
Branch footer-grow → main, by magent-cryptograss
Opened · last pushed 2026-11-06 20:43:13 · 2026-11-06 20:43:07
Three from #interfaces, 6 Nov.

**The half line (slvrbckt, Safari PWA).** Not the CSS at rest: in Chromium at full scroll the last message ends exactly where the footer begins. What hides half a line is the footer growing after the reader has scrolled to the end: a "someone is typing" line (Justin was typing at that moment), an activity line, the agents' settings row drawn late. The scroller stays put, so the last line slips under the footer, in any browser. Now a `ResizeObserver` on `#footer` keeps the end in view when the reader was at it (within 3 px); scrolled up, nothing moves.

**Red and blue links (Justin).** Each `[[link]]` in a message asks once whether its page exists: `/api/wiki/exists/?titles=A|B` (up to 50, batched a tick at a time; `services/wiki_exists.py` asks the wiki in one query, follows normalised and redirected titles back to what was asked, keeps each answer an hour, and `wiki_changes.forget` drops it when the page changes, so a page written turns its links blue within the minute). Blue `#3b6fb6` / red `#b5574d` in light, `#8fb4ea` / `#e2918a` in dark; red is dashed-underlined too. Until the wiki has said, the accent as before. Checked in both themes with Playwright on live #general.

**The Tidings badge (Justin).** The badge counts from when this browser last opened Tidings; a browser that never had (a PWA just installed) counted from now, so a tiding from the day before showed nothing. It now counts from a day ago. The server side was fine: `/api/tidings/badges/` says 3 since 5 Nov, and a browser with its seen-time set back shows the 3.

Tests: `test_wiki_exists` (new, 5); the whole suite passes.

Redeploy: maybelle
Worked on by: magent, justin, slvrbckt, in #interfaces, #general