Cryptograss/Horseshoe Crab
From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
Horseshoe Crab is the sprint after Cryptograss/Horny Toad, which closed with the video pipeline working end to end. This one opens with the pipeline breaking on a real upload.
Days are Skyler's to number. Short points only.[unverified]
Day 1
24–26 September 2026
- Sky's melodica upload died at encode: an overdub has two audio tracks, the encoder named one output. maybelle#133
- Reported as "failed at IPFS". It never reached IPFS — every failure inside that button reads as a storage failure.
- Justin's two uploads vanished entirely — no file, no diagnostics, nothing on the server. Unexplained.
- pickipedia#127: messages name the step that failed; the browser records uploads that die on its side; the panel renders without a token, which is why Justin saw a blank page.
- pickipedia#126: that repo had no CI, and 203 Python tests had never once been run. They pass.
- The Immutable Travel Logs built for Sky — phone recordings newest first, each under its own content address.
- hunter hit 89%. maybelle#134: tiered retention, cache prune, login warning. Simulated year: 282 dumps → 31, ~46 GB back.
- The backup mirror grows forever on purpose — hunter is the long-retention copy, so no
--delete. - Cryptograss:Video quality and storage: CRF 36 saves 24–34%, invisible in stills. Decided against it — all published video is ~2 GB; degrading masters to save half a gig is the wrong trade.
- Corrected my own figure: "~25 GB of unused images" is really 8.2 GB once shared layers are counted.[unverified]
Day 2
27 September 2026
- Justin: publishing only the first audio track throws away what somebody uploaded. He was right; the fix got replaced rather than defended.
- Every track is now an HLS alternate rendition — pick your take while watching. Audio encoded once, not once per video size.
- Found alongside it: silent videos could not publish at all. Same root cause, same PR.
- Justin merged #133, #134 and pickipedia#127 in eight minutes and redeployed delivery-kid.
- Melodica retried — failed again. Cause: an APAC track (Apple spatial audio); ffmpeg has no decoder and reports the codec as literally
none. - Sky asked whether the next fix was fully thought out. It wasn't — it decided by reading metadata, and a label is a guess.
- Replaced with a decode test: half a second of every track run through ffmpeg first. Pass, publish; fail, skip it and put ffmpeg's own words on the page. maybelle#136, merged and deployed the same evening.
- HDR check while waiting: nothing published is affected — all five releases are plain BT.709.
- But an HDR upload would publish as 8-bit pixels still labelled BT.2020 and PQ — looks flat, encode succeeds, nothing warns. maybelle#137 tone maps it properly.
- Reviewed #137 against the real image: I had tested on ffmpeg 8.0.1; we deploy Debian's 7.1.5. Chain works there.
- Corrected myself in public: HDR posters aren't missing on 7.1.5 as I'd claimed, just wrong.
- The serious catch: as first written, a failed tone map would have turned a flat-but-published video into a failed upload — the same mistake #136 existed to fix. Now probed first, falls back to publishing.
- Cost measured: ~2× encode time on 1080p (3.8s → 7.1s per ten seconds). No watchdog to trip.
- Melodica still unpublished — waiting on one deploy now, not on a bug.[unverified]
Day 3
28 September 2026
- The melodica take is published.
QmU2rS8zrVcGPL2tz7jhKE6KdNj5mAy7FMFpY9iX9x54ms, block 24383015 — four days and four bugs after the first attempt. - Justin merged #137 with his doubts on the record: "this is starting to feel like wildly swinging in the dark", and then "unlikely to do any harm... famous last words?"
- Answered with evidence rather than argument. Swept all 47 release drafts:
IMG_8225appears twice, once H.264 and once H.265 — iOS hands over a converted copy on one upload path and the camera original on another. - Then found it outright: the draft's own diagnostics had been carrying ffmpeg's DOVI configuration record, profile 8 since the 27th. Dolby Vision, read off the file, not inferred from a camera default.
- Deployed 22:09. Output verified from the gateway, not from the page saying so: yuv420p / bt709 / bt709 / bt709, Opus stereo, poster written, portrait ladder 1080x1920 → 360x640.
- The APAC track was skipped with ffmpeg's own reason shown on the page; the AAC track published. Justin's principle, working in production.
- I predicted the wrong transfer. I told everyone to expect PQ; the log says ARIB-STD-B67 — HLG. Profile 8.4 carries an HLG base layer. The fix handled both from the start so it worked, but had I built only for PQ — which is what "Dolby Vision" suggested all day — it would have published flat and I would have called it fixed.
- First test ever of multi-channel audio. Mono, 5.1, and 5.1 beside a second track all publish — but 5.1 was getting the stereo bitrate, about 21k a channel. maybelle#138 scales with channel count; mono and stereo deliberately untouched.
- Justin's vanished uploads narrowed to the request arriving without its file. Our own #79 says Caddy drops POST bodies over HTTP/3, and delivery-kid advertises
h3. #139 puts four questions to Justin that would settle it. - Filed #139 with an empty body — wrong flag,
--bodydoes not read a pipe. Sky caught it.[unverified]
Day 4
30 September 2026
- Confirmed delivery-kid healthy on
df4fdbc. Could not say whether the token wall was a usage cap or an expired credential — I cannot see account usage, so I said so rather than guessing. - Explained the quality selector's Auto: it sets
hls.currentLevel = -1, handing the choice back to hls.js, which picks from the real BANDWIDTH figures we compute from segment bytes. Switches land on segment boundaries, which is why choosing a rung mid-tune does not restart playback. - Sky asked how important the orphan pins were. Read the audit rather than answering from memory, and found three bugs, all the same shape — a guess allowed to recommend destroying evidence.
- Subpages counted as drafts. The nine
/diagnosticspages were reported twice over: once as "dead wiki drafts, safe to delete from wiki" and again as "9 unrecorded publishes". Three belonged to drafts that had published that week, including the melodica take. - A failed lookup read as a verdict. Whether a draft finalized was decided inside a bare
except: passthat fell through to "never finalized", so one wiki hiccup could recommend deleting a published release. - Case-sensitive matching on
pinned to IPFS— the same failure with a longer fuse. - Fixed the nested links the audit had been writing on these very pages, which render as visible brackets and resolve to nothing.
- Then measured the orphans before deciding anything — per-pin sizes and a total, largest first, read with
ipfs dag statin one ssh rather than one per CID. - maybelle#145, merged 20:37 the same night, carrying the first tests these scripts have ever had.
- Measuring first is what paid off two days later: the eleven orphan pins turned out to be 5 KB in total, all metadata-only Coconut failures. The old report could never have told us that.[unverified]
Day 5
2–3 October 2026
- maybelle#88 merged after four months — caps BuildKit cache at 3 GB per build, written after delivery-kid's cache reached 28 GB and took the host to 100% disk. Checked whether it would kill the next deploy: it uses
--keep-storage, which modern Docker deprecates but still accepts, and both hosts installdocker.iofrom the distro. Safe. - The 11 orphan pins are 5 KB in total. Every one is a metadata-only Coconut failure —
method: coconut, no qualities, no variants, zero output bytes, 485 bytes of paperwork and no video. Nothing to reclaim, and the only surviving record those uploads happened. - One of them still carries its title: "learning terrapin outside Denver venue", uploaded by Justin on 1 June. It matches a draft with no codec ever recorded.
- maybelle#152 reports them as history rather than as ⚠ Action required — five kilobytes of known-dead paperwork beside a real fault is how nine false alarms sat unexamined for weeks.
- CI had never run the audit's tests. The workflow only watched
delivery-kid/pinning-service— the same blind spot its own opening comment was written about. Added a job; both pass. - Three more features out of MediaWiki:Common.js and into the extension: the Blue Railroad date→block picker, "X blocks ago", and the instrument form validation. pickipedia#131. Every code line compared against live in both directions — byte-identical.
- Corrected myself mid-commit: I had written that running from both places was harmless. It is not — two copies of the datepicker render two pickers with duplicate element ids. Added a DOM guard, and said plainly that the instrument form will double-alert between deploy and paste.
- Did not move the zine styling, though that was the plan. It is bound to classes defined in MediaWiki:Common.css; moving its script alone would split one feature across two homes. It goes with its stylesheet, and then Common.js can be empty for good.
- maybelle#86 triaged with its reasoning posted rather than closed quietly: its feature shipped via #130, its client module is five months behind production, and resolving its conflict would recreate the
coconut.pydeleted in #129 — which is why git cannot merge it. - Swept the open backlog for what would break on merge. The risk is concentrated: #69, #74 and #75 all restore Coconut files. Nothing breaks on its own.
- Confirmed Sky cannot paste into Common.js —
editsitejsneedsinterface-admin, which only Justin holds. Argued against granting it for this: there is one paste left, and the point of #131 is to make it the last. - The St. Pete venue table had been broken for everyone. It queried
St. Pete— one result — while the typedHas scenehas 24. Template:Venue moved to typed properties and the Scene page never followed. Fixed; The Blueberry Patch and Suite E now appear with the rest. - Broke that table worse for a minute by adding a capacity sort: SMW omits results with no value for the sort property, so it hid every venue without a recorded capacity. Removed.
- Learned what
status=proposedactually is — the verification marker for templates like Venue, not a display field. I had guessed wrong about it the day before.[unverified]
Still open
--rebuild deploy — pickipedia#126 (CI) first, then pickipedia#131 (Common.js), maybelle#138 (surround bitrate), maybelle#152 (audit). All four MERGEABLE/CLEAN as of 4 October.