Cryptograss:Moods/pickipedia-and-rabbithole/todo

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Revision as of 15:46, 19 October 2026 by Magent (talk | contribs) (The iPhone stutter: what was measured and ruled out, and the one toggle that decides it (via update-page on MediaWiki MCP Server))
Jump to navigationJump to search

What the people in this Mood have left each other to do. Kept by whoever notices; mark an item done: true rather than deleting it, so the next person can see it was finished and not merely dropped.

Compacted 2026-10-19. The live list is short and it is nearly all one thing: three pull requests and one deploy. Everything built on 17 and 18 October exists only as unmerged branches, so none of it is visible to anybody yet.

The goal, in Skyler's words: get Rabbithole working and playing live on PickiPedia, with a few songs having part cards and the highlights looking clean. The audience: IBMA, where Justin's read is that nobody sits through a whole song — so one track that lights up beats eleven that play in silence.

The architecture, settled 2026-10-18: Rabbithole is a dock along the bottom of PickiPedia. The shell hosts the wiki, because whatever persists holds the player and whatever swaps holds the article — and if the wiki hosted instead, every link would reload the page and the music would stop. A listen button inside the shell opens the dock and plays, rather than navigating.

  • ☐
    Merge rabbithole#2, then run the playbook
    merge · justin
    Twenty-two commits, the bottom bar and everything under it. Merging is not deploying: the rabbithole-shell role has no cron and no webhook, so somebody runs maybelle/scripts/deploy-pickipedia.sh on maybelle with the vault password on stdin. It is the whole pickipedia-vps playbook, not a rabbithole-only deploy, and it refuses if maybelle-config production is behind main (checked 2026-10-18: it is not). Production has served a shell dated 1 May 2026 all week — the old 320px left sidebar. Every listen button on all eleven song pages opens it. That is why Skyler kept seeing the sidebar; nothing is wrong with the buttons.
  • ☐
    Merge rabbithole#3 — tests, the lost scene half, the pane, trails
    merge · justin
    Based on bottom-bar-layout, so it merges after #2 and shows only its own commits. 36 tests where the repo had vitest configured and none at all. Carries: the half of 2e83c1a that puts the scene on the card; CSS for cooldown, harmony and rhythm plus pickup-rise, has-rabbit and engineer-card, all left behind in arthel; a README table naming which file is the product and which are stale copies; the pane loading the wiki's real stylesheets in MonoBook rather than Vector, which is what "the backdrop looks super broken" was; click a part to seek there; three pane chrome modes behind a switch; the listen button playing in the dock instead of navigating; a queue, with the track-end hook the player has always called into nothing; and trails.
  • ☐
    Merge pickipedia#148 — the rabbit chases the carrot
    merge · justin
    The listen button is already live on all eleven song pages: the template carries inline styles, so the shape did not wait on a deploy. This adds what inline styles cannot express, hover and the keyframes. Same stylesheet the pane now loads, so one rule set covers the wiki and the player. Also wants, before it merges: the button's position is a guessed negative margin (-5.9em) rather than a rule anchored to the heading. It looks right on a desktop today and will drift on a narrow screen or a wrapped title.
  • ☐
    Merge pickipedia-mcp#33 and restart the MCP server
    merge · justin
    A marker line is its own paragraph, so it stops eating the prose above it. Cryptograss/Horseshoe Crab has a verified template directly under line 3; the middleware merged the two, the join looked verified so it went out verbatim, and the wiki's gate refused every bot edit to that page. Needs a restart as well as a merge — the server loads its bundle at start.
  • ☐
    Look at it on a phone
    review · skyler
    Two things were found at 390px on 2026-10-19 before Skyler looked, and both are patched on their branches, so the phone check is now about what is left rather than about these. (1) The listen stack lands on top of the page title and the green Listen button is not readable; the negative margin assumed a short title and a wide column. Cancelled below 720px in pickipedia#148. (2) The dock measures 1741px inside a 390px screen with overflow-x hidden, so the song select, Edit Timeline, every musician card and the collapse button are simply gone. Below 720px the bar now scrolls sideways with the header pinned left -- awkward, not unusable; a real small-screen dock is still owed. Neither patch is deployed, so production still shows the old behaviour. Preview, while the container lives: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html
  • ☐
    Audio stutters on an iPhone -- find out whether auto-switch is doing it
    review · skyler
    Reported 2026-10-19: audio plays but speeds up and slows down throughout the song. Ruled out by measurement, not by guessing: the 100ms display loop costs 0.2ms median and 2.8ms at worst over 120 ticks, and the IPFS gateway returns the whole 4MB ogg in 1.9 seconds. Webamp plays through createMediaElementSource, so a main-thread stall is what would be audible, and the biggest recurring one is the pane re-fetching and rebuilding a whole wiki article every time the solo changes -- eight times in August, some of those pages carrying remote images. The decisive test is one toggle: turn Auto-switch artist profiles OFF and listen to the same song. If it is clean, the pane swap is the cause and the fix is ours.
  • ☐
    Confirm an iPhone can actually decode what we serve
    review · skyler
    The four built-in songs pointed at /audio/August.flac and friends, which nothing has ever served -- 404 on preview and production both. That is why the dropdown played silence on 2026-10-19; it was never a mobile bug. They now resolve through the Release page like everything else, and the browser picks the encoding: ogg if canPlayType says it can, flac otherwise. Safari was unable to decode Ogg Vorbis for most of its life, so the open question is only answerable on a real iPhone -- does it play, and is the title bar showing a duration rather than blank parentheses.
  • ☐
    The dock needs a real small-screen layout, not sideways scrolling
    edit · magent
    The 2026-10-19 patch makes the bar scrollable so nothing is lost. It does not make it good. A phone wants the player and one row of whatever is playing, with the ensemble and the parts behind a tap -- or the dock collapsed by default and opened on demand. Decide the shape first.
  • ☐
    Which chrome should the pane wear
    decision · skyler
    Three modes are built and switchable from a select in the pane: content, a header we own with a working search, or MonoBook's full chrome fetched from the real page. In skin mode the search box is furniture and says so — it cannot run scripts. Skin also doubles the pane's weight and adds a round-trip per page, which the auto-switch makes often.
  • ☐
    Which one is THE play button
    decision · skyler
    Three in the bar: webamp's transport, the carrot, and .mini-player-btn. Open since 2026-10-16. Now sharper: the dock's listen button is a fourth way to start audio, and a visitor met all four at once.
  • ☐
    Timelines — nineteen of twenty-one tracks are empty
    edit · skyler
    August and Paint Exchange have real ones. Everything else plays with a blank bar. Hand-edit with the player's Edit Timeline button, which is already the tool. Worth knowing: a sub-moment's time key inside a section is read as an absolute time, not an offset, so section1 with a key of 3 lands at 3 seconds — before its own section. Pinned by a test, not endorsed; ask Justin whether that is intended before charting around it.
  • ☐
    Metadata for some vocal songs
    edit · magent
    Justin, by voice, 2026-10-18: everything charted so far is instrumental, so we have not found out what Rabbithole does with words. Also the highest leverage thing on this list for trails, which are limited by coverage and not by the algorithm — 20 songs, nearly all ours.
  • ☐
    Document the metadata format
    edit · magent
    Justin asked for it by voice, 2026-10-18. Nothing written yet.
  • ☐
    Write up the URL question
    review · magent
    Justin, by voice: the article is the primary URL and what is playing is a second axis, and he does not know how they compose. The complication he had not hit: the auto-switch rewrites the article for you, so the URL you would share is being changed by the music. Share probably has to mean something explicit rather than whatever the address bar says. A trail is the same object seen from the other end — share-this-trail and find-me-a-trail are one feature, so they want solving together.
  • ☐
    Unwrap the cover image on the song pages
    edit · magent
    Each of the eleven wraps its cover in Bot_proposes. An image is not a claim, and when it fails to render you get an empty bordered box with a lone [unverified] marker, which is what the odd box at the top of each page is.
  • ☐
    The listen button on the other ten song pages
    edit · magent
    August has it in its new place, above the infobox so it floats to the top right. The other ten still have it mid-page. Waiting on the phone check and on #148, since the position is a magic number until then.
  • ☐
    Paste one line into Horseshoe Crab Day 9
    edit · anyone
    One bullet, the Webamp vendoring of 11 October. Everything else moved to Cryptograss/Jellyfish. The bot cannot save that page until mcp#33 ships.
  • ☐
    Write the four people Rabbithole would strand
    edit · anyone
    David Grier, Ice Quilitz, Jeff Fehlauer, Luna Lavender. Grier now appears in trails as a hop, so he is a dead end in the middle of a feature rather than at the end of a click.
  • ☐
    Decide the remaster / remix / overdub line
    decision · justin
    Blocks the automatic ensemble path. The melodica overdub is the sharp case.
  • ☐
    Special:Categories is reporting numbers that are not true
    deploy · justin
    Leaderboards claims 8,265 members and has 4. maintenance/recountCategories.php.
  • ☐
    Delete Template:Studio track and Template:Studio track/testcases
    edit · justin
    The wiki's only script error. The bot cannot delete.
  • ☐
    Look at the front page draft and say whether to adopt it
    review · justin
    Main Page untouched since April, read 530,000 times, opens on half a screen of nothing.
  • ☐
  • ☐
    The infobox asks for instrument icons that do not exist
    edit · magent
    Template:ThinkingEntityInfo builds a File: link without asking whether the icon exists.
  • ☐
    Finish populating {{Song}} on the twelve pages outside 4masks
    edit · magent
  • ☐
    The metadata editor no longer works inside the pane
    review · magent
    Injected HTML does not run scripts, so the editor cannot boot in the pane. Worth a decision rather than a silent loss.
  • ☐
  • ☐
    Self-host packery, js-yaml and the Google Fonts faces
    edit · magent
    Same class of dependency that killed the player once. Webamp is vendored; these are not.
  • ☐
    Drop the four hard-coded demo songs
    edit · magent
    audioFile "/audio/August.flac" and friends, 404 everywhere, and the four arthel YAML rabbithole blocks that feed them.
  • ☐
    Masks has no session data anywhere
    edit · anyone
    The only one of eleven tracks with no ensemble recorded. Somebody who was there can fix it in a sentence.
Done (1)
  • ☑
    Settled, 16 to 18 October
    review · anyone
    Written up in full at Cryptograss/Jellyfish. In short: the bottom bar built out with Sky calling each move; eleven 4masks song pages; Template:Listen in Rabbithole on all of them, now a button with a queue and a trail beside it; the iframe replaced by a same-origin fetch into a shadow root; the pane wearing the wiki's own stylesheets; clickable part cards that seek; three chrome modes; a working queue and the track-end hook that had never been defined; and trails — the search over who played with whom, weighted so it routes around the hub rather than answering every question with Justin. Found along the way: production five months stale, three shells in one repo with the URL route pointing at the wrong one, arthel's copy of the player thirteen months behind, half of a 2025 commit missing, and a middleware bug that had made one page unwritable for its whole life.