Cryptograss:Moods/pickipedia-and-rabbithole/todo: Difference between revisions

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
Magent (talk | contribs)
Parts strip shipped, two of the six stranded players written, and an infobox icon bug found on the way (via update-page on MediaWiki MCP Server)
Magent (talk | contribs)
The iframe is gone; adding the Song infobox item I said I would add and never did (via update-page on MediaWiki MCP Server)
Line 9: Line 9:
   link: http://hunter.cryptograss.live:4009/rabbithole/pickipedia-demo.html?track=QmS3QEZFa1c75BBa9vwNEsXkS6GBmS75Cs6RyDJBXqRx8a
   link: http://hunter.cryptograss.live:4009/rabbithole/pickipedia-demo.html?track=QmS3QEZFa1c75BBa9vwNEsXkS6GBmS75Cs6RyDJBXqRx8a
   note: >
   note: >
     USE THAT LINK, not the Moon Factory one. It is August, and it is the only
     USE THAT LINK, not the Moon Factory one. It is August, the only track with
    kind of track that shows what Rabbithole actually does: the song laid out
    a real timeline, so it is the only one that shows what Rabbithole does.
    along the bottom of the bar (intro A A B A A B A A B A B), six ensemble
     Paint Exchange (QmcBuh5HCvVCCdCz6KqWf891QkXeKc3T7QBaToYE8mSLtS) is the
    cards, and a real timeline in the editor underneath. Moon Factory plays
     other annotated one. PR is
     but the bar beside it is empty, because its metadata is bare. Paint
     https://github.com/cryptograss/rabbithole/pull/2 — eighteen commits now:
    Exchange (QmcBuh5HCvVCCdCz6KqWf891QkXeKc3T7QBaToYE8mSLtS) is the other
     the webamp fix, Skyler's four (toggle, carrot, title, parts strip), the
     annotated one — it has flourishes with colours and pulse speeds.
    blockier parts, the bar to 152px, the active-block colour, the album row,
     PR is https://github.com/cryptograss/rabbithole/pull/2 — fourteen commits:
     opening on the song page, the subtler spotlight, and the iframe removal.
     the webamp fix, then 6677ae4 (toggle), 989cfd5 (carrot), 91857d3 (title to
     the top) and f1ca587 (parts strip), all four from Skyler looking at it.
     Merging deploys immediately (ansible clones main with force:yes).
     Merging deploys immediately (ansible clones main with force:yes).
   done: false
   done: false


- task: Song parts as a strip along the bottom of the bar
- task: Make the wiki pane a same-origin fetch panel with pushState
   who: skyler
   who: magent
   kind: review
   kind: review
   link: https://github.com/cryptograss/rabbithole/pull/2
   link: https://github.com/cryptograss/rabbithole/pull/2
   note: >
   note: >
     Skyler's idea, done in f1ca587. The song now reads left to right along the
     Done 2026-10-17 in 6d28eb3, after Justin noticed magent had spent the
     bottom edge the way Strum Machine does it, instead of twelve chips
     evening deepening the iframe rather than removing it. The wiki is fetched
     wrapping three rows deep in a 200px column. Measured on August at 1440:
    through action=parse into a div, and every move of the pane pushes the
     strip spans the full width, twelve boxes of 111px on one row, no wrap,
     real URL: /wiki/Song:August on load, /wiki/Kyle_Tuttle when the banjo
     active part still paints green. Freeing the column let the ensemble go
     takes it, /wiki/Maddie_Denton on a click inside the pane — same player
     four cards across instead of three.
     object throughout, so nothing reloads and the audio never stops. Back
     Open question for Skyler: boxes are equal width. Proportional width would
     works. Zero iframes.
     be truer to Strum Machine, but extractSongParts() returns part names with
     Two things the frame had given for free and now do not: MediaWiki's
     no durations — that is a change in the player module.
     stylesheet (content module linked explicitly; the skin's chrome would
     restyle the bar) and image sizing (podcast art is 1400px square).
   done: true
   done: true


- task: The infobox asks for instrument icons that do not exist
- task: The metadata editor no longer works inside the pane
  who: magent
  kind: review
  note: >
    Fallout from 6d28eb3 and worth a decision rather than a silent loss.
    Injected HTML does not run scripts, so the editor on a
    Release:<cid>/Metadata page cannot boot in the pane, and the
    postMessage bridge that listened for its "Apply Changes" is dead weight
    for that path. The shell's own Edit Timeline panel is untouched and is
    the route that matters. If anyone was using the in-pane one, say so.
  done: false
 
- task: Populate {{Song}} on the 23 pages in Song:
   who: magent
   who: magent
   kind: edit
   kind: edit
   note: >
   note: >
     Found writing Kaitlyn Raitz's page. Template:ThinkingEntityInfo builds
     The destination exists and has never been used. Template:Song takes
     [[File:Instrument-icon-<show_instrument>.png]] directly and never asks
     composer, traditional, roud and also; a search across the wiki finds not
     Module:Instruments whether that family has an icon, so show_instrument=cello
    one page carrying a composer. Meanwhile arthel's song YAMLs have music_by
     puts a broken image beside her name. The module was written precisely to
    and instrumental sitting right there — writing the August mock, magent had
     stop this — its own comment says "a name with no family shows no icon,
     to read august.yaml off disk for "an instrumental by Justin Holmes"
     which is the correct outcome for a cello" — but only the inline path goes
     because the wiki does not know it.
     through it; the infobox never got the message. Fix is to route the infobox
     Per PickiPedia:Compositions the wiki is canonical, not a mirror, so this
     through {{ShowInstrument}}. It is a shared template across every person
     is a one-way import and then the YAML stops being the place to look.
     page, so not something to change unannounced. Worked around for now by
    Small importer, not a schema argument. Promised 2026-10-17T17:25 and not
     leaving show_instrument unset on her page.
    written down until now.
  done: false
 
- task: Look at the August song page mock
  who: skyler
  kind: review
  link: https://pickipedia.xyz/wiki/Template:August_song_mock
  note: >
     Title, cover, who wrote it, who played what with every name linked — all
    fourteen links blue. In Template space because article space wraps
    everything a bot writes in the unverified wash and turned the first
     attempt's heading into a literal {{{1}}}.
    If it is the right shape, the next step is making Song:August look like
     it, which needs the {{Song}} item above plus care around the Studio cut
     block, which HearThatWhistleBlow owns and rewrites.
   done: false
   done: false


Line 58: Line 83:
   kind: review
   kind: review
   note: >
   note: >
     Not broken — unevenly filled. Checked all 21 Release:<cid>/Metadata pages
     Not broken — unevenly filled. Of 21 Release:<cid>/Metadata pages, TWO have
     on 2026-10-17: TWO have real timelines, August and Paint Exchange, both
     real timelines: August and Paint Exchange, both written by JMyles on
    written by JMyles on 2026-05-01, both tracks of parent release
    2026-05-01. The other nineteen are stubs reading timeline {} and
    QmUWtV7fG1K9pM5TQSf5c38vmh9MtU6p3VNQuzaxvYr6ep. The other nineteen are
    ensemble {}. Verified live that August renders twelve parts and six
    stubs created 2026-05-01T01:51 reading timeline {} and ensemble {}, and
    ensemble cards, so the pipeline works end to end today.
    that is why Moon Factory shows nothing. Verified live that August renders
     What is missing is the automatic path: ensemble should come from the cut's
    twelve parts and six ensemble cards, so the pipeline from wiki YAML to
    Has performer / Has instrument subobjects instead of being retyped into
    chart works end to end today.
     YAML per release. Blocked on the record to album-CID decision.
     What is still missing is the automatic path: ensemble should come from the
    cut's Has performer / Has instrument subobjects instead of being retyped
     into YAML per release. Nineteen tracks annotated by hand is the
    alternative. Blocked on the record to album-CID decision.
   done: false
   done: false


Line 79: Line 100:
     which is display:none outside the minimized sidebar. The carrot now looks
     which is display:none outside the minimized sidebar. The carrot now looks
     like the primary control. If it is meant to be, webamp's transport
     like the primary control. If it is meant to be, webamp's transport
     probably wants to go quiet — shaded by default, or the skin trimmed.
     probably wants to go quiet. magent did not want to settle a visual
    magent did not want to settle a visual hierarchy by accident while making
    hierarchy by accident while making a button bigger.
    a button bigger.
   done: false
   done: false


Line 90: Line 110:
     Justin on 2026-10-17: not committed either way, Skyler's call.
     Justin on 2026-10-17: not committed either way, Skyler's call.
     pickipedia-demo.html:1011 is <body class="bottom-bar">, hardcoded, so
     pickipedia-demo.html:1011 is <body class="bottom-bar">, hardcoded, so
     comparing the two layouts today means editing the file — which is why the
     comparing the two layouts means editing the file. magent offered a
    argument is happening in words. magent offered a ?layout=sidebar /
    ?layout=sidebar / ?layout=bar switch; Justin said interesting but maybe
    ?layout=bar switch (the shell already parses ?track= with URLSearchParams
    not the energy right now. Offer stands, unclaimed.
    around line 1395, so it is a few lines in the same place); Justin said
    interesting but maybe not the energy right now. Offer stands, unclaimed.
   done: false
   done: false


Line 104: Line 122:
     Main Page has not been edited since 2026-04-11 and has been read 530,000
     Main Page has not been edited since 2026-04-11 and has been read 530,000
     times. It opens with a photo, one headline from August, and then half a
     times. It opens with a photo, one headline from August, and then half a
     screen of nothing — Template:Latest News styles two columns flex:1 and
     screen of nothing. The draft puts the firehose in that empty space, makes
    never sets display:flex on the parent, so they were never columns. The
    the podcast list a query (13 shows, where the hand table named 9 and left
    draft puts the firehose in that empty space, makes the podcast list a
    15 cells reading "..."), and adds a live count of what is in here.
    query (13 shows, where the hand table named 9 and left 15 cells reading
    To adopt: Main Page becomes {{Main Page draft}}. One edit, reversible.
    "..."), and adds a live count of what is actually in here. To adopt:
    Main Page becomes {{Main Page draft}}, or paste its contents in. One
    edit, and reversible.
   done: false
   done: false


- task: Write the people Rabbithole would strand
- task: The infobox asks for instrument icons that do not exist
   who: anyone
   who: magent
   kind: edit
   kind: edit
   note: >
   note: >
     Was six, now four. John Mailander and Kaitlyn Raitz written 2026-10-17 at
     Template:ThinkingEntityInfo builds [[File:Instrument-icon-<show_instrument>.png]]
     Skyler's request — both play on Moon Factory and Paint Exchange, so two of
     directly and never asks Module:Instruments whether that family has an
     the blocked cuts came unblocked: the tool went from "22 cuts, 7 blocked, 6
     icon, so show_instrument=cello puts a broken image beside Kaitlyn Raitz's
     people" to "22 cuts, 5 blocked, 4 people". Remaining: David Grier (2
     name. The module was written precisely to stop this. Fix is to route the
     cuts), Ice Quilitz (2), Jeff Fehlauer (2), Luna Lavender (1).
     infobox through {{ShowInstrument}} — a shared template on every person
     tools/rabbithole-most-wanted.py prints the current list with instruments
     page, so not a change to make unannounced.
    and bandmates. Clear these before Rabbithole goes out.
   done: false
   done: false
- task: The auto-switch knob slid onto its own caption
  who: skyler
  kind: review
  link: https://github.com/cryptograss/rabbithole/pull/2
  note: >
    Reported by Skyler, fixed in 6677ae4. .toggle-switch could shrink
    (measured 23px in a 760px window) while its knob still slid the full 20px
    right when ON, which put it on top of the words. flex-shrink: 0 stops
    that, and the switch now sits over the caption in the bar.
  done: true
- task: Bigger carrot, up by the rabbit
  who: skyler
  kind: review
  link: https://github.com/cryptograss/rabbithole/pull/2
  note: >
    Asked for by Skyler, done in 989cfd5. The bar wears the 34x60 geometry
    already written for .mini-player-btn and never shown outside the minimized
    sidebar. Reaching the rabbit needed the toggle row to become
    display:contents in the bar so the carrot could take an order of its own.
  done: true
- task: Song title to the top of the bar
  who: skyler
  kind: review
  link: https://github.com/cryptograss/rabbithole/pull/2
  note: Asked for by Skyler, done in 91857d3. align-self flex-start, 2px off the top edge.
  done: true


- task: The guest-name parser is keeping the epithet
- task: The guest-name parser is keeping the epithet
Line 160: Line 145:
   note: >
   note: >
     "S7E7 Guitar Giant Bryan Sutton!" records Has topic "Guitar Giant Bryan
     "S7E7 Guitar Giant Bryan Sutton!" records Has topic "Guitar Giant Bryan
     Sutton", and "S7E5 Bluegrass Dynamo Stephen Mougin!" records "Bluegrass
     Sutton". Redlinks nobody will write, and they split the count. Bluegrass
    Dynamo Stephen Mougin". Both are redlinks that will never be written, and
     BKLYN titles all have this shape, so it is one pattern on that show's
    they split the count — Bryan Sutton shows 5 episodes on the most-wanted
    page, not a code change. Needs a re-import, which is behind the import
     list while a sixth sits under the epithet. Bluegrass BKLYN titles all have
    hold.
    this shape, so it is one pattern on that show's page, not a code change.
    Fixing it needs a re-import of those episodes, behind the import hold.
   done: false
   done: false


Line 175: Line 158:
     9f83ab7 is tools/rabbithole-most-wanted.py. c13f2e8 adds --top to
     9f83ab7 is tools/rabbithole-most-wanted.py. c13f2e8 adds --top to
     tools/podcast-most-wanted.py, which prints the short list the front page
     tools/podcast-most-wanted.py, which prints the short list the front page
     transcludes from Template:Most wanted/top. Both read the live wiki and run
     transcludes from Template:Most wanted/top. Both read the live wiki.
    fine unmerged.
   done: false
   done: false


Line 183: Line 165:
   kind: deploy
   kind: deploy
   note: >
   note: >
     The category table counters have drifted badly: Leaderboards says 8,265
     Leaderboards says 8,265 members and has 4; Musicians says 317 and has 51.
    members and has 4; Musicians says 317 and has 51. Members and SMW agree
    Members and SMW agree with each other, so it is the denormalised cat_pages
    with each other, so it is the denormalised cat_pages counter, not the
     counter. Fix is maintenance/recountCategories.php, a production run that
     content. The fix is maintenance/recountCategories.php, which is a
     belongs in the deployment automation.
     production run and so belongs in the deployment automation.
   done: false
   done: false


Line 194: Line 175:
   kind: edit
   kind: edit
   note: >
   note: >
     pickipedia-demo.html carries four songs with audioFile "/audio/August.flac"
     Four songs with audioFile "/audio/August.flac" and friends, 404 everywhere.
    and friends — absolute paths from the origin root, 404 everywhere. Safe to
    Safe to drop now: the album selector carries the real eleven-track running
    drop now: August and Paint Exchange exist on the wiki WITH their timelines
    order of 4masks, and August and Paint Exchange exist on the wiki with
     and with ogg encodings, so ?track= reaches better versions of the same two.
     timelines and ogg encodings.
   done: false
   done: false


- task: Merge and deploy myfork/production — two podcast-importer fixes
- task: Write the people Rabbithole would strand
   who: justin
   who: anyone
   kind: merge
   kind: edit
   link: https://github.com/cryptograss/pickipedia/commit/3238096
   note: >
  note: Merged as 3238096 and deployed. Unexercised until the import hold clears.
    Was six, now four. John Mailander and Kaitlyn Raitz written 2026-10-17,
   done: true
    which took the tool from "22 cuts, 7 blocked, 6 people" to "22 cuts, 5
    blocked, 4 people". Remaining: David Grier (2 cuts), Ice Quilitz (2),
    Jeff Fehlauer (2), Luna Lavender (1).
   done: false


- task: Decide the remaster / remix / overdub line
- task: Decide the remaster / remix / overdub line
Line 212: Line 196:
   link: https://github.com/cryptograss/pickipedia/issues/144
   link: https://github.com/cryptograss/pickipedia/issues/144
   note: >
   note: >
     The sharp case is the melodica overdub on 4masks — somebody played
     The sharp case is the melodica overdub on 4masks. The line may be "did the
    something new, later, in another room. The line may be "did the set of
    set of players change?" rather than anything about masters.
    players change?" rather than anything about masters. Parked deliberately.
   done: false
   done: false


Line 222: Line 205:
   link: https://pickipedia.xyz/wiki/Template:Studio_track
   link: https://pickipedia.xyz/wiki/Template:Studio_track
   note: The wiki's only script error. Needs a delete button; the bot cannot delete.
   note: The wiki's only script error. Needs a delete button; the bot cannot delete.
  done: false
- task: Make the wiki pane a same-origin fetch panel with pushState
  who: magent
  kind: review
  note: >
    Settled 2026-10-11: no iframe. The click that already sets .lead also
    pushState's the wiki URL, so the address bar reads /wiki/Cory_Walker, the
    page never reloads and the audio never stops. Blocked on rabbithole#2.
   done: false
   done: false


Line 237: Line 211:
   kind: edit
   kind: edit
   note: >
   note: >
     Webamp is vendored now because it was broken. Still on CDNs: packery and
     Webamp is vendored. Still on CDNs: packery and js-yaml (jsdelivr) and the
    js-yaml (jsdelivr) and the Google Fonts faces (Inter, VT323). All parse
    Google Fonts faces. Same class of dependency that killed the player once.
    today, but they are the same class of dependency that just killed the
    player, and they make every listener's browser announce itself to a CDN.
   done: false
   done: false


Line 248: Line 220:
   link: https://pickipedia.xyz/status/podcast-import.txt
   link: https://pickipedia.xyz/status/podcast-import.txt
   note: >
   note: >
     Not broken, held by its own change budget. Nothing written since
     Held by its own change budget. Nothing written since 2026-10-09T04:17Z.
    2026-10-09T04:17Z. Sample a few diffs before releasing with --max-changes.
    Sample a few diffs before releasing with --max-changes.
   done: false
   done: false
- task: The auto-switch knob slid onto its own caption
  who: skyler
  kind: review
  note: Fixed in 6677ae4. flex-shrink 0, and the switch sits over its caption in the bar.
  done: true
- task: Bigger carrot, up by the rabbit
  who: skyler
  kind: review
  note: Done in 989cfd5, using the 34x60 geometry already written for .mini-player-btn.
  done: true
- task: Song title to the top of the bar
  who: skyler
  kind: review
  note: Done in 91857d3. align-self flex-start, 2px off the top edge.
  done: true
- task: Song parts as a strip along the bottom of the bar
  who: skyler
  kind: review
  note: >
    Done in f1ca587, taller and blockier in 643d286, bar raised to 152px in
    a1f91c2 so the player sits flush on it. The active block was invisible
    for an hour — white-on-white from a specificity mistake in the blockier
    pass — fixed in e4393fb and verified by walking the player's clock through
    the song rather than trusting the class.
    Still open for Skyler: the boxes are equal width. Proportional would be
    truer to Strum Machine but needs durations the player does not return.
  done: true
- task: Merge and deploy myfork/production — two podcast-importer fixes
  who: justin
  kind: merge
  link: https://github.com/cryptograss/pickipedia/commit/3238096
  note: Merged as 3238096 and deployed. Unexercised until the import hold clears.
  done: true


- task: Watch the Creek Freak title for a flip-flop
- task: Watch the Creek Freak title for a flip-flop

Revision as of 17:44, 17 October 2026

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.

  • ☐
    Look at the preview, then merge rabbithole#2
    merge · justin
    USE THAT LINK, not the Moon Factory one. It is August, the only track with a real timeline, so it is the only one that shows what Rabbithole does. Paint Exchange (QmcBuh5HCvVCCdCz6KqWf891QkXeKc3T7QBaToYE8mSLtS) is the other annotated one. PR is https://github.com/cryptograss/rabbithole/pull/2 — eighteen commits now: the webamp fix, Skyler's four (toggle, carrot, title, parts strip), the blockier parts, the bar to 152px, the active-block colour, the album row, opening on the song page, the subtler spotlight, and the iframe removal. Merging deploys immediately (ansible clones main with force:yes).
  • ☐
    The metadata editor no longer works inside the pane
    review · magent
    Fallout from 6d28eb3 and worth a decision rather than a silent loss. Injected HTML does not run scripts, so the editor on a Release:<cid>/Metadata page cannot boot in the pane, and the postMessage bridge that listened for its "Apply Changes" is dead weight for that path. The shell's own Edit Timeline panel is untouched and is the route that matters. If anyone was using the in-pane one, say so.
  • ☐
    Populate {{Song}} on the 23 pages in Song:
    edit · magent
    The destination exists and has never been used. Template:Song takes composer, traditional, roud and also; a search across the wiki finds not one page carrying a composer. Meanwhile arthel's song YAMLs have music_by and instrumental sitting right there — writing the August mock, magent had to read august.yaml off disk for "an instrumental by Justin Holmes" because the wiki does not know it. Per PickiPedia:Compositions the wiki is canonical, not a mirror, so this is a one-way import and then the YAML stops being the place to look. Small importer, not a schema argument. Promised 2026-10-17T17:25 and not written down until now.
  • ☐
    Look at the August song page mock
    review · skyler
    Title, cover, who wrote it, who played what with every name linked — all fourteen links blue. In Template space because article space wraps everything a bot writes in the unverified wash and turned the first attempt's heading into a literal {{{1}}}. If it is the right shape, the next step is making Song:August look like it, which needs the {{Song}} item above plus care around the Studio cut block, which HearThatWhistleBlow owns and rewrites.
  • ☐
    Fill the Release to Studio Cut edge so playback lights up
    review · magent
    Not broken — unevenly filled. Of 21 Release:<cid>/Metadata pages, TWO have real timelines: August and Paint Exchange, both written by JMyles on 2026-05-01. The other nineteen are stubs reading timeline {} and ensemble {}. Verified live that August renders twelve parts and six ensemble cards, so the pipeline works end to end today. What is missing is the automatic path: ensemble should come from the cut's Has performer / Has instrument subobjects instead of being retyped into YAML per release. Blocked on the record to album-CID decision.
  • ☐
    Three play buttons in the bar — decide which one is the play button
    decision · skyler
    Webamp's own transport at the far left, the carrot, and .mini-player-btn which is display:none outside the minimized sidebar. The carrot now looks like the primary control. If it is meant to be, webamp's transport probably wants to go quiet. magent did not want to settle a visual hierarchy by accident while making a button bigger.
  • ☐
    Sidebar or bottom bar — nobody is committed, and you cannot A/B it
    decision · skyler
    Justin on 2026-10-17: not committed either way, Skyler's call. pickipedia-demo.html:1011 is <body class="bottom-bar">, hardcoded, so comparing the two layouts means editing the file. magent offered a ?layout=sidebar / ?layout=bar switch; Justin said interesting but maybe not the energy right now. Offer stands, unclaimed.
  • ☐
    Look at the front page draft and say whether to adopt it
    review · justin
    Main Page has not been edited since 2026-04-11 and has been read 530,000 times. It opens with a photo, one headline from August, and then half a screen of nothing. The draft puts the firehose in that empty space, makes the podcast list a query (13 shows, where the hand table named 9 and left 15 cells reading "..."), and adds a live count of what is in here. To adopt: Main Page becomes {{Main Page draft}}. One edit, reversible.
  • ☐
    The infobox asks for instrument icons that do not exist
    edit · magent
    Template:ThinkingEntityInfo builds [[File:Instrument-icon-<show_instrument>.png]] directly and never asks Module:Instruments whether that family has an icon, so show_instrument=cello puts a broken image beside Kaitlyn Raitz's name. The module was written precisely to stop this. Fix is to route the infobox through {{ShowInstrument}} — a shared template on every person page, so not a change to make unannounced.
  • ☐
    The guest-name parser is keeping the epithet
    review · magent
    "S7E7 Guitar Giant Bryan Sutton!" records Has topic "Guitar Giant Bryan Sutton". Redlinks nobody will write, and they split the count. Bluegrass BKLYN titles all have this shape, so it is one pattern on that show's page, not a code change. Needs a re-import, which is behind the import hold.
  • ☐
    Merge 9f83ab7 and c13f2e8 — the two most-wanted tools
    merge · justin
    9f83ab7 is tools/rabbithole-most-wanted.py. c13f2e8 adds --top to tools/podcast-most-wanted.py, which prints the short list the front page transcludes from Template:Most wanted/top. Both read the live wiki.
  • ☐
    Special:Categories is reporting numbers that are not true
    deploy · justin
    Leaderboards says 8,265 members and has 4; Musicians says 317 and has 51. Members and SMW agree with each other, so it is the denormalised cat_pages counter. Fix is maintenance/recountCategories.php, a production run that belongs in the deployment automation.
  • ☐
    Drop or fix the four hard-coded demo songs
    edit · magent
    Four songs with audioFile "/audio/August.flac" and friends, 404 everywhere. Safe to drop now: the album selector carries the real eleven-track running order of 4masks, and August and Paint Exchange exist on the wiki with timelines and ogg encodings.
  • ☐
    Write the people Rabbithole would strand
    edit · anyone
    Was six, now four. John Mailander and Kaitlyn Raitz written 2026-10-17, which took the tool from "22 cuts, 7 blocked, 6 people" to "22 cuts, 5 blocked, 4 people". Remaining: David Grier (2 cuts), Ice Quilitz (2), Jeff Fehlauer (2), Luna Lavender (1).
  • ☐
    Decide the remaster / remix / overdub line
    decision · justin
    The sharp case is the melodica overdub on 4masks. The line may be "did the set of players change?" rather than anything about masters.
  • ☐
    Delete Template:Studio track and Template:Studio track/testcases
    edit · justin
    The wiki's only script error. Needs a delete button; the bot cannot delete.
  • ☐
    Self-host the remaining third-party loads on the rabbithole shell
    edit · magent
    Webamp is vendored. Still on CDNs: packery and js-yaml (jsdelivr) and the Google Fonts faces. Same class of dependency that killed the player once.
  • ☐
    Release the held podcast import — 240 pages would change, limit is 50
    review · magent
    Held by its own change budget. Nothing written since 2026-10-09T04:17Z. Sample a few diffs before releasing with --max-changes.
Done (7)
  • ☑
    Make the wiki pane a same-origin fetch panel with pushState
    review · magent
    Done 2026-10-17 in 6d28eb3, after Justin noticed magent had spent the evening deepening the iframe rather than removing it. The wiki is fetched through action=parse into a div, and every move of the pane pushes the real URL: /wiki/Song:August on load, /wiki/Kyle_Tuttle when the banjo takes it, /wiki/Maddie_Denton on a click inside the pane — same player object throughout, so nothing reloads and the audio never stops. Back works. Zero iframes. Two things the frame had given for free and now do not: MediaWiki's stylesheet (content module linked explicitly; the skin's chrome would restyle the bar) and image sizing (podcast art is 1400px square).
  • ☑
    The auto-switch knob slid onto its own caption
    review · skyler
    Fixed in 6677ae4. flex-shrink 0, and the switch sits over its caption in the bar.
  • ☑
    Bigger carrot, up by the rabbit
    review · skyler
    Done in 989cfd5, using the 34x60 geometry already written for .mini-player-btn.
  • ☑
    Song title to the top of the bar
    review · skyler
    Done in 91857d3. align-self flex-start, 2px off the top edge.
  • ☑
    Song parts as a strip along the bottom of the bar
    review · skyler
    Done in f1ca587, taller and blockier in 643d286, bar raised to 152px in a1f91c2 so the player sits flush on it. The active block was invisible for an hour — white-on-white from a specificity mistake in the blockier pass — fixed in e4393fb and verified by walking the player's clock through the song rather than trusting the class. Still open for Skyler: the boxes are equal width. Proportional would be truer to Strum Machine but needs durations the player does not return.
  • ☑
    Merge and deploy myfork/production — two podcast-importer fixes
    merge · justin
    Merged as 3238096 and deployed. Unexercised until the import hold clears.
  • ☑
    Watch the Creek Freak title for a flip-flop
    review · magent
    Closed, no action. The single space is MediaWiki's own page-title normalisation, which the importer reads back and writes down.