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)
DrivingThatTrain (talk | contribs)
m Merged, says GitHub: https://github.com/cryptograss/rabbithole/pull/3
 
(40 intermediate revisions by 2 users not shown)
Line 2: Line 2:
mark an item <code>done: true</code> rather than deleting it, so the next person can
mark an item <code>done: true</code> rather than deleting it, so the next person can
see it was finished and not merely dropped.
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.
'''Which dock, settled 2026-10-24:''' both. The window picks — the left
sidebar at 1100px and wider, the bottom bar below it — and a person can
overrule that from the switch in the top right, which is remembered until
they press "auto". A phone therefore gets the bar upright ''and'' sideways,
which is the case that was hardened on 21 and 24 October. The sidebar cannot
go narrower than 292px because the Winamp skin is 275px of fixed bitmap, and
scaling it was rejected: it takes the play button to about 20×15, and Skyler's
read is that those buttons are already close to too small.


<todo>
<todo>
- task: Look at the preview, then merge rabbithole#2
- task: Merge rabbithole#2, then run the playbook
   who: justin
   who: justin
   kind: merge
   kind: merge
   link: http://hunter.cryptograss.live:4009/rabbithole/pickipedia-demo.html?track=QmS3QEZFa1c75BBa9vwNEsXkS6GBmS75Cs6RyDJBXqRx8a
   link: https://github.com/cryptograss/rabbithole/pull/2
   note: >
   note: >
     USE THAT LINK, not the Moon Factory one. It is August, and it is the only
     Superseded, not merged: closed 2026-10-25 03:10Z, bottom-bar commits folded
    kind of track that shows what Rabbithole actually does: the song laid out
     into rabbithole#3, which was retargeted onto main so it carries them itself.
    along the bottom of the bar (intro A A B A A B A A B A B), six ensemble
     One PR to merge now — #3; the deploy note lives there. Merging #3 is not
     cards, and a real timeline in the editor underneath. Moon Factory plays
     deploying: rabbithole-shell has no cron and no webhook, so somebody runs
     but the bar beside it is empty, because its metadata is bare. Paint
     maybelle/scripts/deploy-pickipedia.sh on maybelle with the vault password on
    Exchange (QmcBuh5HCvVCCdCz6KqWf891QkXeKc3T7QBaToYE8mSLtS) is the other
    stdin — the whole pickipedia-vps playbook, which refuses if maybelle-config
     annotated one — it has flourishes with colours and pulse speeds.
     production is behind main. Production still serves the 1 May 2026 shell, the
     PR is https://github.com/cryptograss/rabbithole/pull/2 — fourteen commits:
     old 320px sidebar, which is what every listen button opens. Nothing is wrong
     the webamp fix, then 6677ae4 (toggle), 989cfd5 (carrot), 91857d3 (title to
     with the buttons; the fix is the merge and the deploy.
     the top) and f1ca587 (parts strip), all four from Skyler looking at it.
   done: true
     Merging deploys immediately (ansible clones main with force:yes).
   done: false


- task: Song parts as a strip along the bottom of the bar
- task: The iPhone warp is unexplained and currently unreproducible
   who: skyler
   who: anyone
   kind: review
   kind: review
   link: https://github.com/cryptograss/rabbithole/pull/2
   link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html?webaudio=on
   note: >
   note: >
     Skyler's idea, done in f1ca587. The song now reads left to right along the
     On 2026-10-19 August warped on Skyler's iPhone, and a four-player test
     bottom edge the way Strum Machine does it, instead of twelve chips
    pinned it on the Web Audio graph: the same file through a bare audio
     wrapping three rows deep in a 200px column. Measured on August at 1440:
    element was clean, through a graph it warped. iOS has skipped Webamp's
     strip spans the full width, twelve boxes of 111px on one row, no wrap,
     graph ever since, which costs iPhones the equaliser, the visualiser and
     active part still paints green. Freeing the column let the ensemble go
     stereo balance. On 2026-10-21 ?webaudio=on -- the same page, the same
     four cards across instead of three.
     song, the graph back on, which is the configuration that originally
     Open question for Skyler: boxes are equal width. Proportional width would
    failed -- played clean on the same phone, direct from its speaker.
     be truer to Strum Machine, but extractSongParts() returns part names with
     Nothing we changed in between touches audio. So the fault is real,
     no durations — that is a change in the player module.
     intermittent, and triggered by something nobody has identified. Leaving
   done: true
     the bypass on is a judgement, not a finding: an intermittent fault that
    mangles the music is worse than a missing visualiser. What would settle
     it is a second occurrence with the circumstances written down --
     headphones or speaker, what else the phone was doing, whether iOS had
    just updated.
   done: false


- task: The infobox asks for instrument icons that do not exist
- task: Firefox on Ubuntu — zoom breaks the dock, and Webamp drags out of place
   who: magent
   who: magent
   kind: edit
   kind: edit
   note: >
   note: >
     Found writing Kaitlyn Raitz's page. Template:ThinkingEntityInfo builds
     Justin, 2026-10-21. Two desktop faults the phone work did not touch.
    [[File:Instrument-icon-<show_instrument>.png]] directly and never asks
     Zooming scales only the wiki pane, not the shell, and at the zoom he
     Module:Instruments whether that family has an icon, so show_instrument=cello
     first loaded at most of the ensemble was cut off with no sign anything
     puts a broken image beside her name. The module was written precisely to
     was missing -- the same silent loss as the dock on a phone, and the
    stop this — its own comment says "a name with no family shows no icon,
     cards clip rather than scroll or wrap. And the Webamp window can be
     which is the correct outcome for a cello" — but only the inline path goes
     dragged out of its place in the bar; it moved when he reset the zoom.
     through it; the infobox never got the message. Fix is to route the infobox
     There was talk of an upstream Webamp option to pin it rather than make
     through {{ShowInstrument}}. It is a shared template across every person
     it draggable -- find out whether that landed, and pin it here if not.
     page, so not something to change unannounced. Worked around for now by
     leaving show_instrument unset on her page.
   done: false
   done: false


- task: Fill the Release to Studio Cut edge so playback lights up
- task: Rename webamp-chartifacts.js
   who: magent
   who: magent
   kind: review
   kind: edit
  done: true
  note: >
    Done 2026-10-21 in rabbithole#3: src/player/rabbithole-player.js, class
    RabbitholeWebampPlayer, every import, both shells, the embed page, the
    package entry points, the tests and the docs. Justin asked days earlier
    and saw the old name in the PR twice before it was done. Justin's rule
    for the name: chartifact *data* stays, "chartifacts player" is a fossil
    and finding one means old code has crept back in. Still carrying it:
    window.chartifactsPlayer and window.songChartifactsData, 56 uses -- renamed
    to rabbitholePlayer / rabbitholeSongData on 2026-10-25.
 
- task: Merge rabbithole#3 — tests, the lost scene half, the pane, trails
  who: justin
  kind: merge
  link: https://github.com/cryptograss/rabbithole/pull/3
  note: >
    Retargeted onto main 2026-10-25; #2's bottom-bar commits are folded in, so
    this is the one PR — 93 commits, mergeable, merge state clean, no reviews
    yet. 22 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.
    Open before merge: rename window.chartifactsPlayer / songChartifactsData (72
    uses) to rabbitholePlayer / rabbitholeSongData. re: on the branch, before
    merge — the cheapest moment. magent: ready on the word; else merge as is and
    keep the rename as its own PR.
  done: true
 
- task: Merge pickipedia#148 — the rabbit chases the carrot
  who: justin
  kind: merge
  link: https://github.com/cryptograss/pickipedia/pull/148
   note: >
   note: >
     Not broken — unevenly filled. Checked all 21 Release:<cid>/Metadata pages
     The listen button is already live on all eleven song pages: the template
     on 2026-10-17: TWO have real timelines, August and Paint Exchange, both
     carries inline styles, so the shape did not wait on a deploy. This adds what
    written by JMyles on 2026-05-01, both tracks of parent release
     inline styles cannot express, hover and the keyframes. Same stylesheet the
    QmUWtV7fG1K9pM5TQSf5c38vmh9MtU6p3VNQuzaxvYr6ep. The other nineteen are
     pane now loads, so one rule set covers the wiki and the player.
     stubs created 2026-05-01T01:51 reading timeline {} and ensemble {}, and
     Also wants, before it merges: the button's position is a guessed negative
    that is why Moon Factory shows nothing. Verified live that August renders
     margin (-5.9em) rather than a rule anchored to the heading. It looks right
     twelve parts and six ensemble cards, so the pipeline from wiki YAML to
     on a desktop today and will drift on a narrow screen or a wrapped title.
    chart works end to end today.
     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


- task: Three play buttons in the bar — decide which one is the play button
- task: Merge pickipedia-mcp#33 and restart the MCP server
  who: justin
  kind: merge
  link: https://github.com/cryptograss/pickipedia-mcp/pull/33
  note: >
    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.
  done: true
 
- task: Look at it on a phone
   who: skyler
   who: skyler
   kind: decision
   kind: review
   note: >
   note: >
     Webamp's own transport at the far left, the carrot, and .mini-player-btn
     Two things were found at 390px on 2026-10-19 before Skyler looked, and both
     which is display:none outside the minimized sidebar. The carrot now looks
     are patched on their branches, so the phone check is now about what is left
     like the primary control. If it is meant to be, webamp's transport
    rather than about these. (1) The listen stack lands on top of the page title
     probably wants to go quiet — shaded by default, or the skin trimmed.
     and the green Listen button is not readable; the negative margin assumed a
     magent did not want to settle a visual hierarchy by accident while making
    short title and a wide column. Cancelled below 720px in pickipedia#148.
     a button bigger.
    (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
   done: false
   done: false


- task: Sidebar or bottom bar — nobody is committed, and you cannot A/B it
- task: Confirm the iPhone plays clean with the Web Audio graph bypassed
   who: skyler
   who: skyler
   kind: decision
   kind: review
  link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html
   note: >
   note: >
     Justin on 2026-10-17: not committed either way, Skyler's call.
     Found 2026-10-19: Webamp's createMediaElementSource is what warps the
     pickipedia-demo.html:1011 is <body class="bottom-bar">, hardcoded, so
    audio on iOS. Player 1 of the A/B page (ogg, plain audio element) was
     comparing the two layouts today means editing the file — which is why the
     clean and player 3 (the same ogg through a Web Audio graph) warped --
     argument is happening in words. magent offered a ?layout=sidebar /
    same file, decoder, connection and device, one difference. On iOS the
     ?layout=bar switch (the shell already parses ?track= with URLSearchParams
    graph is now not built at all; the element plays natively. The cost on
     around line 1395, so it is a few lines in the same place); Justin said
     iPhones is the equaliser and the visualiser doing nothing and stereo
     interesting but maybe not the energy right now. Offer stands, unclaimed.
    balance fixed at centre; volume is mirrored onto the element so the
   done: false
     slider still works. ?webaudio=on gets the old behaviour back for
     comparison on the same phone. What is wanted: does August play clean
     through the whole song now, and does the volume slider still move it.
    Confirmed by Skyler on 2026-10-19: August played the whole way through
     with no warping. The iPhone audio is fixed.
   done: true


- task: Look at the front page draft and say whether to adopt it
- task: Which of the four players warps -- the Web Audio graph was the last suspect
   who: justin
   who: skyler
   kind: review
   kind: review
   link: https://pickipedia.xyz/wiki/Template:Main_Page_draft/preview
   done: true
   note: >
   note: >
     Main Page has not been edited since 2026-04-11 and has been read 530,000
     2026-10-19, player 1 of 4 reported clean: the Ogg played plainly through a
     times. It opens with a photo, one headline from August, and then half a
     bare audio element is perfect on the iPhone. That clears the file, the
     screen of nothing — Template:Latest News styles two columns flex:1 and
    gateway, the network and Safari's Vorbis decoder all at once -- every
     never sets display:flex on the parent, so they were never columns. The
     explanation that does not involve our own code. What is left is the Web
     draft puts the firehose in that empty space, makes the podcast list a
     Audio graph: Webamp routes every track through
     query (13 shows, where the hand table named 9 and left 15 cells reading
     createMediaElementSource, which has a long history of trouble on iOS
     "..."), and adds a live count of what is actually in here. To adopt:
     Safari. Players 3 and 4 on the A/B page are that same route with nothing
     Main Page becomes {{Main Page draft}}, or paste its contents in. One
     else attached; 3 is the one that decides it. If 3 warps, the fix is to
     edit, and reversible.
     keep iOS off the graph -- the element plays natively and we lose the EQ
   done: false
     and the visualiser on that platform, which is a fair trade.
   done: true


- task: Write the people Rabbithole would strand
- task: Was the Ogg Vorbis decode what warps the audio on an iPhone
   who: anyone
   who: skyler
   kind: edit
   kind: review
  done: true
   note: >
   note: >
     Was six, now four. John Mailander and Kaitlyn Raitz written 2026-10-17 at
     2026-10-19, after the readout came back clean: no stall, no drift, rate 1,
     Skyler's request — both play on Moon Factory and Paint Exchange, so two of
     and the audio still sounds warped. currentTime follows the media element's
     the blocked cuts came unblocked: the tool went from "22 cuts, 7 blocked, 6
    own timeline, so it can keep perfect time while what reaches the speaker
     people" to "22 cuts, 5 blocked, 4 people". Remaining: David Grier (2
    is mangled -- which clears the player of stalling and points at the decode
     cuts), Ice Quilitz (2), Jeff Fehlauer (2), Luna Lavender (1).
     or at the Web Audio graph Webamp routes through. Ogg Vorbis is the suspect
     tools/rabbithole-most-wanted.py prints the current list with instruments
     to eliminate first: Safari learned it only recently, and it is what we
     and bandmates. Clear these before Rabbithole goes out.
    serve by default because it is a quarter the size of the flac beside it.
   done: false
     ?enc=flac and ?enc=ogg force one without changing any code. If flac is
     clean, prefer flac on Safari and the thing is done. It was not the
     decode: the ogg plays clean through a bare audio element on the phone.
   done: true


- task: The auto-switch knob slid onto its own caption
- task: Audio stutters on an iPhone, and nothing on this end reproduces it
   who: skyler
   who: skyler
   kind: review
   kind: review
   link: https://github.com/cryptograss/rabbithole/pull/2
   link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html?rhdiag=1
   note: >
   note: >
     Reported by Skyler, fixed in 6677ae4. .toggle-switch could shrink
     Reported 2026-10-19: audio plays but speeds up and slows down, most
     (measured 23px in a 760px window) while its knob still slid the full 20px
    audibly at the A after the first B of August -- t=50, where the solo
     right when ON, which put it on top of the words. flex-shrink: 0 stops
    passes to Harry Clark. Ruled out by measurement rather than by guessing:
     that, and the switch now sits over the caption in the bar.
    the 100ms display loop costs 0.2ms median and 2.8ms at worst over 120
     ticks; the IPFS gateway returns the whole 4MB ogg in 1.9s and serves
    256KB ranges at a steady 215KB/s against the 24KB/s the song needs;
    across t=30 to t=66 audio time tracks wall clock to within 0.00s with no
    waiting or stalled events and zero long tasks. Turning auto-switch off
     changed nothing he hears, so the pane rebuild is not it either. So the
    measurement has to happen on the phone: ?rhdiag=1 pins a readout to the
    top of the page showing drift, buffer, playback rate and the last stall
    events. What is wanted back is the readout at the moment it sounds wrong.
    Answered: the readout stayed clean through the warp, which is what sent
     the hunt to the Web Audio graph, where it ended.
   done: true
   done: true


- task: Bigger carrot, up by the rabbit
- task: Confirm an iPhone can actually decode what we serve
   who: skyler
   who: skyler
   kind: review
   kind: review
  link: https://github.com/cryptograss/rabbithole/pull/2
   note: >
   note: >
     Asked for by Skyler, done in 989cfd5. The bar wears the 34x60 geometry
     The four built-in songs pointed at /audio/August.flac and friends, which
     already written for .mini-player-btn and never shown outside the minimized
     nothing has ever served -- 404 on preview and production both. That is why
     sidebar. Reaching the rabbit needed the toggle row to become
    the dropdown played silence on 2026-10-19; it was never a mobile bug. They
     display:contents in the bar so the carrot could take an order of its own.
    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.
     Answered 2026-10-19: it plays, with a real duration, and the ogg decodes
    clean through a bare audio element. The decoder was never the problem.
   done: true
   done: true


- task: Song title to the top of the bar
- task: Look at the phone dock and say what is still wrong
   who: skyler
   who: skyler
   kind: review
   kind: review
   link: https://github.com/cryptograss/rabbithole/pull/2
   link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html
   note: Asked for by Skyler, done in 91857d3. align-self flex-start, 2px off the top edge.
  note: >
    Built to Skyler's sketch on 2026-10-19: album, selector and artist toggle
    on their own row above the player; the player left with the musician
    cards beside it; all the song parts along the bottom. Grid rather than
    flex, so every child is placed by name. The skin is scaled 15% -- 290px
    of it left only 100px for cards, which is not a card -- and that costs
    tap-target size, taking the play button from about 12px to 10px. That is
    the number most worth your thumb. Measured at 390x844: no horizontal
    overflow, dock 200px of 844, all twelve of August's parts readable, six
    cards reachable. Desktop unchanged.
  done: false
 
- task: The dock needed a real small-screen layout, not sideways scrolling
  who: magent
  kind: edit
  done: true
  note: >
 
- task: Bottom bar or left sidebar — pick the dock
  who: skyler
  kind: decision
  link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html?layout=bar
   note: >
    Asked for 2026-10-24. Both layouts are live behind one switch in the top
    right corner of the demo; it reloads, because the musician cards are placed
    differently at startup in each. Bottom bar: cards in the middle zone of the
    bar, parts along the full width, the wiki gets the whole width above. Left
    sidebar: 320px column, cards stacked under the player with the soloist
    starred, parts wrapped two rows, the wiki keeps the rest. The architecture
    settled on 2026-10-18 is the bar; this is a look at what was given up.
    Answered 2026-10-24, and the answer was both: the window picks (sidebar
    at 1100px and wider, bar below), a person can overrule it from the switch
    in the top right, and the overrule is remembered until they press "auto".
   done: true
   done: true


- task: The guest-name parser is keeping the epithet
- task: "Nine of eleven 4masks tracks have empty timeline AND empty ensemble"
  who: skyler
  kind: edit
  link: https://pickipedia.xyz/wiki/Release:QmUWtV7fG1K9pM5TQSf5c38vmh9MtU6p3VNQuzaxvYr6ep
  note: >
    Checked 2026-10-25. Only August and Paint Exchange have anything. Every
    other Release:<cid>/Metadata page reads "timeline: {} ensemble: {}" --
    including Silver 44, which Skyler charted on 24 October. That edit is not
    on pickipedia.xyz and not on the hunter preview wiki either, so it did not
    save anywhere I can see. Worth finding out what the editor did with it
    before charting eight more.
    The ensembles do not need inventing: every track except Masks has a
    Studio cut block on its Song: page naming the players and instruments.
  done: false
 
- task: "Magent cannot edit the Release namespace"
  who: justin
  kind: review
  note: >
    "protectednamespace: You do not have permission to edit pages in the
    Release namespace", 2026-10-25, trying to fill in the ensemble for Silver
    44 from its own Studio cut block. That blocks the bot from doing the
    metadata prep for the other ten tracks, which is otherwise a mechanical
    copy from data already on the wiki. Either a grant, or it stays hand work.
  done: false
 
- task: Which chrome should the pane wear
  who: skyler
  kind: decision
  note: >
    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.
  done: false
 
- task: Which one is THE play button
  who: skyler
  kind: decision
  note: >
    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.
  done: false
 
- task: Timelines — nineteen of twenty-one tracks are empty
  who: skyler
  kind: edit
  note: >
    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.
  done: false
 
- task: Metadata for some vocal songs
  who: magent
  kind: edit
  note: >
    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.
  done: false
 
- task: Document the metadata format
  who: magent
  kind: edit
  note: Justin asked for it by voice, 2026-10-18. Nothing written yet.
  done: false
 
- task: Write up the URL question
   who: magent
   who: magent
   kind: review
   kind: review
   note: >
   note: >
     "S7E7 Guitar Giant Bryan Sutton!" records Has topic "Guitar Giant Bryan
     Justin, by voice: the article is the primary URL and what is playing is a
     Sutton", and "S7E5 Bluegrass Dynamo Stephen Mougin!" records "Bluegrass
     second axis, and he does not know how they compose. The complication he had
     Dynamo Stephen Mougin". Both are redlinks that will never be written, and
     not hit: the auto-switch rewrites the article for you, so the URL you would
     they split the count — Bryan Sutton shows 5 episodes on the most-wanted
     share is being changed by the music. Share probably has to mean something
     list while a sixth sits under the epithet. Bluegrass BKLYN titles all have
     explicit rather than whatever the address bar says.
     this shape, so it is one pattern on that show's page, not a code change.
     A trail is the same object seen from the other end — share-this-trail and
     Fixing it needs a re-import of those episodes, behind the import hold.
     find-me-a-trail are one feature, so they want solving together.
   done: false
   done: false


- task: Merge 9f83ab7 and c13f2e8 — the two most-wanted tools
- task: Unwrap the cover image on the song pages
   who: justin
   who: magent
   kind: merge
   kind: edit
  link: https://github.com/magent-cryptograss/pickipedia/commits/production
   note: >
   note: >
     9f83ab7 is tools/rabbithole-most-wanted.py. c13f2e8 adds --top to
     Each of the eleven wraps its cover in Bot_proposes. An image is not a claim,
     tools/podcast-most-wanted.py, which prints the short list the front page
    and when it fails to render you get an empty bordered box with a lone
    transcludes from Template:Most wanted/top. Both read the live wiki and run
     [unverified] marker, which is what the odd box at the top of each page is.
    fine unmerged.
   done: false
   done: false


- task: Special:Categories is reporting numbers that are not true
- task: The listen button on the other ten song pages
   who: justin
   who: magent
   kind: deploy
   kind: edit
   note: >
   note: >
     The category table counters have drifted badly: Leaderboards says 8,265
     August has it in its new place, above the infobox so it floats to the top
    members and has 4; Musicians says 317 and has 51. Members and SMW agree
     right. The other ten still have it mid-page. Waiting on the phone check and
    with each other, so it is the denormalised cat_pages counter, not the
    on #148, since the position is a magic number until then.
     content. The fix is maintenance/recountCategories.php, which is a
    production run and so belongs in the deployment automation.
   done: false
   done: false


- task: Drop or fix the four hard-coded demo songs
- task: Paste one line into Horseshoe Crab Day 9
   who: magent
   who: anyone
   kind: edit
   kind: edit
  link: https://pickipedia.xyz/wiki/Template:Horseshoe_Crab_Day_9_paste
   note: >
   note: >
     pickipedia-demo.html carries four songs with audioFile "/audio/August.flac"
     One bullet, the Webamp vendoring of 11 October. Everything else moved to
    and friends — absolute paths from the origin root, 404 everywhere. Safe to
     Cryptograss/Jellyfish. The bot cannot save that page until mcp#33 ships.
     drop now: August and Paint Exchange exist on the wiki WITH their timelines
    and with ogg encodings, so ?track= reaches better versions of the same two.
   done: false
   done: false


- task: Merge and deploy myfork/production — two podcast-importer fixes
- task: Write the four 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.
    David Grier, Ice Quilitz, Jeff Fehlauer, Luna Lavender. Grier now appears in
   done: true
    trails as a hop, so he is a dead end in the middle of a feature rather than
    at the end of a click.
   done: false


- task: Decide the remaster / remix / overdub line
- task: Decide the remaster / remix / overdub line
Line 211: Line 415:
   kind: decision
   kind: decision
   link: https://github.com/cryptograss/pickipedia/issues/144
   link: https://github.com/cryptograss/pickipedia/issues/144
   note: >
   note: Blocks the automatic ensemble path. The melodica overdub is the sharp case.
    The sharp case is the melodica overdub on 4masks — somebody played
  done: false
    something new, later, in another room. The line may be "did the set of
 
    players change?" rather than anything about masters. Parked deliberately.
- task: Special:Categories is reporting numbers that are not true
  who: justin
  kind: deploy
  note: Leaderboards claims 8,265 members and has 4. maintenance/recountCategories.php.
   done: false
   done: false


Line 220: Line 427:
   who: justin
   who: justin
   kind: edit
   kind: edit
  link: https://pickipedia.xyz/wiki/Template:Studio_track
   note: The wiki's only script error. The bot cannot delete.
   note: The wiki's only script error. Needs a delete button; the bot cannot delete.
   done: false
   done: false


- task: Make the wiki pane a same-origin fetch panel with pushState
- task: Look at the front page draft and say whether to adopt it
  who: justin
  kind: review
  link: https://pickipedia.xyz/wiki/Template:Main_Page_draft/preview
  note: Main Page untouched since April, read 530,000 times, opens on half a screen of nothing.
  done: false
 
- task: Merge 9f83ab7 and c13f2e8 — the two most-wanted tools
  who: justin
  kind: merge
  link: https://github.com/magent-cryptograss/pickipedia/commits/production
  done: false
 
- task: The infobox asks for instrument icons that do not exist
   who: magent
   who: magent
   kind: review
   kind: edit
   note: >
   note: "Template:ThinkingEntityInfo builds a File: link without asking whether the icon exists."
    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


- task: Self-host the remaining third-party loads on the rabbithole shell
- task: Finish populating {{Song}} on the twelve pages outside 4masks
   who: magent
   who: magent
   kind: edit
   kind: edit
   note: >
   done: false
    Webamp is vendored now because it was broken. Still on CDNs: packery and
 
    js-yaml (jsdelivr) and the Google Fonts faces (Inter, VT323). All parse
- task: The metadata editor no longer works inside the pane
    today, but they are the same class of dependency that just killed the
  who: magent
    player, and they make every listener's browser announce itself to a CDN.
  kind: review
  note: Injected HTML does not run scripts, so the editor cannot boot in the pane. Worth a decision rather than a silent loss.
   done: false
   done: false


Line 247: Line 464:
   kind: review
   kind: review
   link: https://pickipedia.xyz/status/podcast-import.txt
   link: https://pickipedia.xyz/status/podcast-import.txt
  done: false
- task: Self-host packery, js-yaml and the Google Fonts faces
  who: magent
  kind: edit
  note: Same class of dependency that killed the player once. Webamp is vendored; these are not.
  done: false
- task: Drop the four hard-coded demo songs
  who: magent
  kind: edit
  note: audioFile "/audio/August.flac" and friends, 404 everywhere, and the four arthel YAML rabbithole blocks that feed them.
  done: false
- task: Masks has no session data anywhere
  who: anyone
  kind: edit
  link: https://pickipedia.xyz/wiki/Song%3AMasks
  note: The only one of eleven tracks with no ensemble recorded. Somebody who was there can fix it in a sentence.
  done: false
- task: Merge maybelle-config#236 and redeploy delivery-kid — waveform peaks
  who: justin
  kind: merge
  link: https://github.com/cryptograss/maybelle-config/pull/236
   note: >
   note: >
     Not broken, held by its own change budget. Nothing written since
     The editor's waveform comes from delivery-kid's /peaks/{cid}.json (about
     2026-10-09T04:17Z. Sample a few diffs before releasing with --max-changes.
    18 KB a song) instead of downloading the whole song (6.4 MB for Swords).
   done: false
    Until it ships, the ruler shows a "show waveform" button that decodes in
    the browser only when pressed. Client side is 293a977 on rabbithole#3.
  done: true
 
- task: Say go — copy the seven other people's Commons files onto PickiPedia
  who: justin
  kind: decision
  note: >
    From #wikimedia-commons-embeds, 2026-10-28. On the night of 27 October
    Commons' api.php answered mostly 503 (some said "too many requests"), and
    every InstantCommons image on the wiki broke on its next re-render. The
    26 of Justin's own (RadicalHarmony) that PickiPedia uses are now local
    copies, Main Page included. Seven files by other Commons authors still load
    from Commons and break again next wobble: the Oxygen optical-burn icon in
    Template:Uncataloged, Wikipedia-logo-v2.svg in Template:See wikipedia page
    (the two widest-reaching, do these first), C.F.Martin Factory38 (clip).jpg
    and Mumbai clams.jpg on Independent Luthiers' Bivalve Mollusk Initiative,
     Johnny-Cash 1972.jpg on PickiPedia:Satire, the Füger Prometheus on
    Justin's copyright essay, and the rambutan photo on Rambutan. Commons was
    healthy again by 13:26Z on 28 October, so nothing is broken today.
    Magent does the copying once Justin says go; slowly, because
    upload.wikimedia.org was answering 429 to hunter.
    Answered 2026-10-28, Justin: no -- Commons is back, we're good.
   done: true


- task: Watch the Creek Freak title for a flip-flop
- task: Check the licences of the Oxygen icon and the rambutan photo
   who: magent
   who: magent
   kind: review
   kind: review
   note: >
   note: >
     Closed, no action. The single space is MediaWiki's own page-title
     The other five of the seven are CC BY 3.0, CC BY-SA 2.0/3.0/4.0 or public
     normalisation, which the importer reads back and writes down.
    domain, so copying with attribution is fine. These two were not checked
    (the Oxygen set is usually LGPL). Check before copying them.
    Moot 2026-10-28: no copies.
  done: true
 
- task: Commons as a rule — copy on embed, or keep InstantCommons live
  who: justin
  kind: decision
  note: >
    Wikimedia is rolling out API rate limits this year; InstantCommons wikis
    get 200 requests a minute, and the 27 October outage looked like their
    rollout rather than our quota. Either PickiPedia keeps relying on Commons
    live and accepts the occasional broken night, or new Commons embeds get a
    local copy (a bot sweep could do it). If the 503s come back and stay,
    bot-traffic@wikimedia.org is the address their error message gives.
    Answered 2026-10-28, Justin: keep InstantCommons live.
  done: true
 
- task: Settled, 16 to 18 October
  who: anyone
  kind: review
  note: >
    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.
   done: true
   done: true
</todo>
</todo>


[[Category:Moods]]
[[Category:Moods]]

Latest revision as of 18:28, 30 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.

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.

Which dock, settled 2026-10-24: both. The window picks — the left sidebar at 1100px and wider, the bottom bar below it — and a person can overrule that from the switch in the top right, which is remembered until they press "auto". A phone therefore gets the bar upright and sideways, which is the case that was hardened on 21 and 24 October. The sidebar cannot go narrower than 292px because the Winamp skin is 275px of fixed bitmap, and scaling it was rejected: it takes the play button to about 20×15, and Skyler's read is that those buttons are already close to too small.

This list's YAML has a problem at line 182: Duplicate key "done" detected at line 182 (near "done: true").

- task: Merge rabbithole#2, then run the playbook
  who: justin
  kind: merge
  link: https://github.com/cryptograss/rabbithole/pull/2
  note: >
    Superseded, not merged: closed 2026-10-25 03:10Z, bottom-bar commits folded
    into rabbithole#3, which was retargeted onto main so it carries them itself.
    One PR to merge now — #3; the deploy note lives there. Merging #3 is not
    deploying: rabbithole-shell has no cron and no webhook, so somebody runs
    maybelle/scripts/deploy-pickipedia.sh on maybelle with the vault password on
    stdin — the whole pickipedia-vps playbook, which refuses if maybelle-config
    production is behind main. Production still serves the 1 May 2026 shell, the
    old 320px sidebar, which is what every listen button opens. Nothing is wrong
    with the buttons; the fix is the merge and the deploy.
  done: true

- task: The iPhone warp is unexplained and currently unreproducible
  who: anyone
  kind: review
  link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html?webaudio=on
  note: >
    On 2026-10-19 August warped on Skyler's iPhone, and a four-player test
    pinned it on the Web Audio graph: the same file through a bare audio
    element was clean, through a graph it warped. iOS has skipped Webamp's
    graph ever since, which costs iPhones the equaliser, the visualiser and
    stereo balance. On 2026-10-21 ?webaudio=on -- the same page, the same
    song, the graph back on, which is the configuration that originally
    failed -- played clean on the same phone, direct from its speaker.
    Nothing we changed in between touches audio. So the fault is real,
    intermittent, and triggered by something nobody has identified. Leaving
    the bypass on is a judgement, not a finding: an intermittent fault that
    mangles the music is worse than a missing visualiser. What would settle
    it is a second occurrence with the circumstances written down --
    headphones or speaker, what else the phone was doing, whether iOS had
    just updated.
  done: false

- task: Firefox on Ubuntu — zoom breaks the dock, and Webamp drags out of place
  who: magent
  kind: edit
  note: >
    Justin, 2026-10-21. Two desktop faults the phone work did not touch.
    Zooming scales only the wiki pane, not the shell, and at the zoom he
    first loaded at most of the ensemble was cut off with no sign anything
    was missing -- the same silent loss as the dock on a phone, and the
    cards clip rather than scroll or wrap. And the Webamp window can be
    dragged out of its place in the bar; it moved when he reset the zoom.
    There was talk of an upstream Webamp option to pin it rather than make
    it draggable -- find out whether that landed, and pin it here if not.
  done: false

- task: Rename webamp-chartifacts.js
  who: magent
  kind: edit
  done: true
  note: >
    Done 2026-10-21 in rabbithole#3: src/player/rabbithole-player.js, class
    RabbitholeWebampPlayer, every import, both shells, the embed page, the
    package entry points, the tests and the docs. Justin asked days earlier
    and saw the old name in the PR twice before it was done. Justin's rule
    for the name: chartifact *data* stays, "chartifacts player" is a fossil
    and finding one means old code has crept back in. Still carrying it:
    window.chartifactsPlayer and window.songChartifactsData, 56 uses -- renamed
    to rabbitholePlayer / rabbitholeSongData on 2026-10-25.

- task: Merge rabbithole#3 — tests, the lost scene half, the pane, trails
  who: justin
  kind: merge
  link: https://github.com/cryptograss/rabbithole/pull/3
  note: >
    Retargeted onto main 2026-10-25; #2's bottom-bar commits are folded in, so
    this is the one PR — 93 commits, mergeable, merge state clean, no reviews
    yet. 22 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.
    Open before merge: rename window.chartifactsPlayer / songChartifactsData (72
    uses) to rabbitholePlayer / rabbitholeSongData. re: on the branch, before
    merge — the cheapest moment. magent: ready on the word; else merge as is and
    keep the rename as its own PR.
  done: true

- task: Merge pickipedia#148 — the rabbit chases the carrot
  who: justin
  kind: merge
  link: https://github.com/cryptograss/pickipedia/pull/148
  note: >
    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.
  done: false

- task: Merge pickipedia-mcp#33 and restart the MCP server
  who: justin
  kind: merge
  link: https://github.com/cryptograss/pickipedia-mcp/pull/33
  note: >
    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.
  done: true

- task: Look at it on a phone
  who: skyler
  kind: review
  note: >
    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
  done: false

- task: Confirm the iPhone plays clean with the Web Audio graph bypassed
  who: skyler
  kind: review
  link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html
  note: >
    Found 2026-10-19: Webamp's createMediaElementSource is what warps the
    audio on iOS. Player 1 of the A/B page (ogg, plain audio element) was
    clean and player 3 (the same ogg through a Web Audio graph) warped --
    same file, decoder, connection and device, one difference. On iOS the
    graph is now not built at all; the element plays natively. The cost on
    iPhones is the equaliser and the visualiser doing nothing and stereo
    balance fixed at centre; volume is mirrored onto the element so the
    slider still works. ?webaudio=on gets the old behaviour back for
    comparison on the same phone. What is wanted: does August play clean
    through the whole song now, and does the volume slider still move it.
    Confirmed by Skyler on 2026-10-19: August played the whole way through
    with no warping. The iPhone audio is fixed.
  done: true

- task: Which of the four players warps -- the Web Audio graph was the last suspect
  who: skyler
  kind: review
  done: true
  note: >
    2026-10-19, player 1 of 4 reported clean: the Ogg played plainly through a
    bare audio element is perfect on the iPhone. That clears the file, the
    gateway, the network and Safari's Vorbis decoder all at once -- every
    explanation that does not involve our own code. What is left is the Web
    Audio graph: Webamp routes every track through
    createMediaElementSource, which has a long history of trouble on iOS
    Safari. Players 3 and 4 on the A/B page are that same route with nothing
    else attached; 3 is the one that decides it. If 3 warps, the fix is to
    keep iOS off the graph -- the element plays natively and we lose the EQ
    and the visualiser on that platform, which is a fair trade.
  done: true

- task: Was the Ogg Vorbis decode what warps the audio on an iPhone
  who: skyler
  kind: review
  done: true
  note: >
    2026-10-19, after the readout came back clean: no stall, no drift, rate 1,
    and the audio still sounds warped. currentTime follows the media element's
    own timeline, so it can keep perfect time while what reaches the speaker
    is mangled -- which clears the player of stalling and points at the decode
    or at the Web Audio graph Webamp routes through. Ogg Vorbis is the suspect
    to eliminate first: Safari learned it only recently, and it is what we
    serve by default because it is a quarter the size of the flac beside it.
    ?enc=flac and ?enc=ogg force one without changing any code. If flac is
    clean, prefer flac on Safari and the thing is done. It was not the
    decode: the ogg plays clean through a bare audio element on the phone.
  done: true

- task: Audio stutters on an iPhone, and nothing on this end reproduces it
  who: skyler
  kind: review
  link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html?rhdiag=1
  note: >
    Reported 2026-10-19: audio plays but speeds up and slows down, most
    audibly at the A after the first B of August -- t=50, where the solo
    passes to Harry Clark. Ruled out by measurement rather than by guessing:
    the 100ms display loop costs 0.2ms median and 2.8ms at worst over 120
    ticks; the IPFS gateway returns the whole 4MB ogg in 1.9s and serves
    256KB ranges at a steady 215KB/s against the 24KB/s the song needs;
    across t=30 to t=66 audio time tracks wall clock to within 0.00s with no
    waiting or stalled events and zero long tasks. Turning auto-switch off
    changed nothing he hears, so the pane rebuild is not it either. So the
    measurement has to happen on the phone: ?rhdiag=1 pins a readout to the
    top of the page showing drift, buffer, playback rate and the last stall
    events. What is wanted back is the readout at the moment it sounds wrong.
    Answered: the readout stayed clean through the warp, which is what sent
    the hunt to the Web Audio graph, where it ended.
  done: true

- task: Confirm an iPhone can actually decode what we serve
  who: skyler
  kind: review
  note: >
    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.
    Answered 2026-10-19: it plays, with a real duration, and the ogg decodes
    clean through a bare audio element. The decoder was never the problem.
  done: true

- task: Look at the phone dock and say what is still wrong
  who: skyler
  kind: review
  link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html
  note: >
    Built to Skyler's sketch on 2026-10-19: album, selector and artist toggle
    on their own row above the player; the player left with the musician
    cards beside it; all the song parts along the bottom. Grid rather than
    flex, so every child is placed by name. The skin is scaled 15% -- 290px
    of it left only 100px for cards, which is not a card -- and that costs
    tap-target size, taking the play button from about 12px to 10px. That is
    the number most worth your thumb. Measured at 390x844: no horizontal
    overflow, dock 200px of 844, all twelve of August's parts readable, six
    cards reachable. Desktop unchanged.
  done: false

- task: The dock needed a real small-screen layout, not sideways scrolling
  who: magent
  kind: edit
  done: true
  note: >

- task: Bottom bar or left sidebar — pick the dock
  who: skyler
  kind: decision
  link: http://hunter.cryptograss.live:14003/rabbithole/pickipedia-demo.html?layout=bar
  note: >
    Asked for 2026-10-24. Both layouts are live behind one switch in the top
    right corner of the demo; it reloads, because the musician cards are placed
    differently at startup in each. Bottom bar: cards in the middle zone of the
    bar, parts along the full width, the wiki gets the whole width above. Left
    sidebar: 320px column, cards stacked under the player with the soloist
    starred, parts wrapped two rows, the wiki keeps the rest. The architecture
    settled on 2026-10-18 is the bar; this is a look at what was given up.
    Answered 2026-10-24, and the answer was both: the window picks (sidebar
    at 1100px and wider, bar below), a person can overrule it from the switch
    in the top right, and the overrule is remembered until they press "auto".
  done: true

- task: "Nine of eleven 4masks tracks have empty timeline AND empty ensemble"
  who: skyler
  kind: edit
  link: https://pickipedia.xyz/wiki/Release:QmUWtV7fG1K9pM5TQSf5c38vmh9MtU6p3VNQuzaxvYr6ep
  note: >
    Checked 2026-10-25. Only August and Paint Exchange have anything. Every
    other Release:<cid>/Metadata page reads "timeline: {} ensemble: {}" --
    including Silver 44, which Skyler charted on 24 October. That edit is not
    on pickipedia.xyz and not on the hunter preview wiki either, so it did not
    save anywhere I can see. Worth finding out what the editor did with it
    before charting eight more.
    The ensembles do not need inventing: every track except Masks has a
    Studio cut block on its Song: page naming the players and instruments.
  done: false

- task: "Magent cannot edit the Release namespace"
  who: justin
  kind: review
  note: >
    "protectednamespace: You do not have permission to edit pages in the
    Release namespace", 2026-10-25, trying to fill in the ensemble for Silver
    44 from its own Studio cut block. That blocks the bot from doing the
    metadata prep for the other ten tracks, which is otherwise a mechanical
    copy from data already on the wiki. Either a grant, or it stays hand work.
  done: false

- task: Which chrome should the pane wear
  who: skyler
  kind: decision
  note: >
    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.
  done: false

- task: Which one is THE play button
  who: skyler
  kind: decision
  note: >
    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.
  done: false

- task: Timelines — nineteen of twenty-one tracks are empty
  who: skyler
  kind: edit
  note: >
    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.
  done: false

- task: Metadata for some vocal songs
  who: magent
  kind: edit
  note: >
    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.
  done: false

- task: Document the metadata format
  who: magent
  kind: edit
  note: Justin asked for it by voice, 2026-10-18. Nothing written yet.
  done: false

- task: Write up the URL question
  who: magent
  kind: review
  note: >
    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.
  done: false

- task: Unwrap the cover image on the song pages
  who: magent
  kind: edit
  note: >
    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.
  done: false

- task: The listen button on the other ten song pages
  who: magent
  kind: edit
  note: >
    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.
  done: false

- task: Paste one line into Horseshoe Crab Day 9
  who: anyone
  kind: edit
  link: https://pickipedia.xyz/wiki/Template:Horseshoe_Crab_Day_9_paste
  note: >
    One bullet, the Webamp vendoring of 11 October. Everything else moved to
    Cryptograss/Jellyfish. The bot cannot save that page until mcp#33 ships.
  done: false

- task: Write the four people Rabbithole would strand
  who: anyone
  kind: edit
  note: >
    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.
  done: false

- task: Decide the remaster / remix / overdub line
  who: justin
  kind: decision
  link: https://github.com/cryptograss/pickipedia/issues/144
  note: Blocks the automatic ensemble path. The melodica overdub is the sharp case.
  done: false

- task: Special:Categories is reporting numbers that are not true
  who: justin
  kind: deploy
  note: Leaderboards claims 8,265 members and has 4. maintenance/recountCategories.php.
  done: false

- task: Delete Template:Studio track and Template:Studio track/testcases
  who: justin
  kind: edit
  note: The wiki's only script error. The bot cannot delete.
  done: false

- task: Look at the front page draft and say whether to adopt it
  who: justin
  kind: review
  link: https://pickipedia.xyz/wiki/Template:Main_Page_draft/preview
  note: Main Page untouched since April, read 530,000 times, opens on half a screen of nothing.
  done: false

- task: Merge 9f83ab7 and c13f2e8 — the two most-wanted tools
  who: justin
  kind: merge
  link: https://github.com/magent-cryptograss/pickipedia/commits/production
  done: false

- task: The infobox asks for instrument icons that do not exist
  who: magent
  kind: edit
  note: "Template:ThinkingEntityInfo builds a File: link without asking whether the icon exists."
  done: false

- task: Finish populating {{Song}} on the twelve pages outside 4masks
  who: magent
  kind: edit
  done: false

- task: The metadata editor no longer works inside the pane
  who: magent
  kind: review
  note: Injected HTML does not run scripts, so the editor cannot boot in the pane. Worth a decision rather than a silent loss.
  done: false

- task: Release the held podcast import — 240 pages would change, limit is 50
  who: magent
  kind: review
  link: https://pickipedia.xyz/status/podcast-import.txt
  done: false

- task: Self-host packery, js-yaml and the Google Fonts faces
  who: magent
  kind: edit
  note: Same class of dependency that killed the player once. Webamp is vendored; these are not.
  done: false

- task: Drop the four hard-coded demo songs
  who: magent
  kind: edit
  note: audioFile "/audio/August.flac" and friends, 404 everywhere, and the four arthel YAML rabbithole blocks that feed them.
  done: false

- task: Masks has no session data anywhere
  who: anyone
  kind: edit
  link: https://pickipedia.xyz/wiki/Song%3AMasks
  note: The only one of eleven tracks with no ensemble recorded. Somebody who was there can fix it in a sentence.
  done: false

- task: Merge maybelle-config#236 and redeploy delivery-kid — waveform peaks
  who: justin
  kind: merge
  link: https://github.com/cryptograss/maybelle-config/pull/236
  note: >
    The editor's waveform comes from delivery-kid's /peaks/{cid}.json (about
    18 KB a song) instead of downloading the whole song (6.4 MB for Swords).
    Until it ships, the ruler shows a "show waveform" button that decodes in
    the browser only when pressed. Client side is 293a977 on rabbithole#3.
  done: true

- task: Say go — copy the seven other people's Commons files onto PickiPedia
  who: justin
  kind: decision
  note: >
    From #wikimedia-commons-embeds, 2026-10-28. On the night of 27 October
    Commons' api.php answered mostly 503 (some said "too many requests"), and
    every InstantCommons image on the wiki broke on its next re-render. The
    26 of Justin's own (RadicalHarmony) that PickiPedia uses are now local
    copies, Main Page included. Seven files by other Commons authors still load
    from Commons and break again next wobble: the Oxygen optical-burn icon in
    Template:Uncataloged, Wikipedia-logo-v2.svg in Template:See wikipedia page
    (the two widest-reaching, do these first), C.F.Martin Factory38 (clip).jpg
    and Mumbai clams.jpg on Independent Luthiers' Bivalve Mollusk Initiative,
    Johnny-Cash 1972.jpg on PickiPedia:Satire, the Füger Prometheus on
    Justin's copyright essay, and the rambutan photo on Rambutan. Commons was
    healthy again by 13:26Z on 28 October, so nothing is broken today.
    Magent does the copying once Justin says go; slowly, because
    upload.wikimedia.org was answering 429 to hunter.
    Answered 2026-10-28, Justin: no -- Commons is back, we're good.
  done: true

- task: Check the licences of the Oxygen icon and the rambutan photo
  who: magent
  kind: review
  note: >
    The other five of the seven are CC BY 3.0, CC BY-SA 2.0/3.0/4.0 or public
    domain, so copying with attribution is fine. These two were not checked
    (the Oxygen set is usually LGPL). Check before copying them.
    Moot 2026-10-28: no copies.
  done: true

- task: Commons as a rule — copy on embed, or keep InstantCommons live
  who: justin
  kind: decision
  note: >
    Wikimedia is rolling out API rate limits this year; InstantCommons wikis
    get 200 requests a minute, and the 27 October outage looked like their
    rollout rather than our quota. Either PickiPedia keeps relying on Commons
    live and accepts the occasional broken night, or new Commons embeds get a
    local copy (a bot sweep could do it). If the 503s come back and stay,
    bot-traffic@wikimedia.org is the address their error message gives.
    Answered 2026-10-28, Justin: keep InstantCommons live.
  done: true

- task: Settled, 16 to 18 October
  who: anyone
  kind: review
  note: >
    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.
  done: true