Cryptograss/Horny Toad: Difference between revisions
From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
Verified: "" |
Day 5: add the second day's work — PR triage, poster frames, the missing test, and the On The Pipe write-up (via update-page on MediaWiki MCP Server) |
||
| Line 113: | Line 113: | ||
* Nice catch along the way: the ethereum RPC returns '''403 to Python's default user agent'''. Without an explicit header the call fails every time and quietly falls back to the estimate — which is exactly the silent-failure pattern we'd been complaining about all day, nearly shipped by us. | * Nice catch along the way: the ethereum RPC returns '''403 to Python's default user agent'''. Without an explicit header the call fails every time and quietly falls back to the estimate — which is exactly the silent-failure pattern we'd been complaining about all day, nearly shipped by us. | ||
===Next day: cleanup, and a good question from Justin=== | |||
<proposed by="Magent"> | |||
* '''Triaged the PR backlog.''' 17 open PRs across the two repos, and '''ten of them describe work that's already running''' — including two of mine from May: the diagnostics snapshot and the upload diagnostics panel. Both features I've been using all week. The work landed some other way and the PRs never got closed. Six of the ten had drifted so far they wouldn't merge anyway. | |||
* '''Poster frames.''' Asked whether we could stop the video area being an empty black box before you press play. Now every encode pulls a still frame and pins it '''inside''' the release directory, so it travels under the same CID. Seeks 10% in rather than frame zero, because the start of a recording is usually a lens cap. | |||
: It's a JPEG, which means '''it shows even in Safari where the AV1 won't play'''. So instead of a black box and a false error, you'd get a picture of the jam and a note saying to use Firefox. | |||
https://github.com/cryptograss/maybelle-config/pull/120 | |||
* '''Justin asked the right question about #119''' — "is there a test showing these errors propagate to the wiki?" | |||
: There wasn't. There were fourteen tests, all green, all checking that the save '''function was called''' — and they passed happily through every month in which not one diagnostics page was ever written. Green tests plus an absence nobody watches for. | |||
: Wrote three that assert a page actually '''lands'''. Proved they're real by running them against the old code: two of the three fail there. Justin named the test class '''On The Pipe''' — apparently from a movie, which he can explain better than me. | |||
* '''Wrote up the pattern''', because it kept happening: [[Cryptograss:On The Pipe]] | |||
: Five separate bugs this week, one shape. Every one either said nothing at all or said something plausible and wrong — and three of them pointed at destroying good work: re-upload 10.5GB, delete the wiki page, go debug IPFS. The page lists them and the rules that fall out. Never discard a result you asked for. A fallback must not be silent. Never blame a subsystem you haven't checked. | |||
* Found '''four permanently red tests''' in the coconut suite, testing a schema the code stopped using. Argued for deleting them — not because the assertions matter, but because a suite with expected failures is one people stop reading. Which is exactly how the diagnostics thing hid. | |||
https://github.com/cryptograss/maybelle-config/issues/121 | |||
* Magent declined to paste the Common.js fix itself — 605 lines it would have to reproduce exactly, where one wrong character breaks every gadget on the wiki. Reasonable call. That one's still a human job. | |||
===Still open=== | ===Still open=== | ||
* Coconut account can be cancelled — nothing has used it in days | * Coconut account can be cancelled — nothing has used it in days | ||
* | * '''One PR left''': [https://github.com/cryptograss/maybelle-config/pull/119 maybelle#119] — the rest merged. Then '''deploy delivery-kid''', which is still on the Sept 4 build, so #117, #118 and #120 are merged but not running. | ||
* [https://github.com/cryptograss/pickipedia/issues/111 pickipedia#111] — player error message + poster line, still needs pasting into Common.js | |||
* [https://github.com/cryptograss/pickipedia/issues/111 pickipedia#111] — player error message, still needs pasting into Common.js | * #115 and pickipedia#112 are '''fixed but still showing open''' — "Fixes #N" doesn't auto-close when the PR merges to production instead of the default branch | ||
* Redlinks to sort: [[Fibbonacci Holmes]] and [[Seth Cambell]] — check the spellings before anyone makes those pages | * Redlinks to sort: [[Fibbonacci Holmes]] and [[Seth Cambell]] — check the spellings before anyone makes those pages | ||
* | * Ten stale PRs to close, and the block heights on existing pages are still ten days off | ||
</proposed> | |||
Revision as of 00:15, 7 September 2026
Day 0
- Mixing/editing/bouncing and uploading 44th bday cicada jam bush videos
- Login issues with Magent (eventually solved)
- various back and forth with uploading cicada bday video/ pick dispatch sombrero edition to pickipedia
Day 2
- uploading cicada video to picki-pedia for magnet to analyze
- screenshots of error panels requested by magent
- progress on size of video uploads :
- 108
https://github.com/cryptograss/maybelle-config/pull/108
- 110
https://github.com/cryptograss/maybelle-config/issues/110
https://github.com/magent-cryptograss/maybelle-config/tree/fix-wiki-api-path-a
- past but relevant :
https://github.com/cryptograss/maybelle-config/issues/79
- Even got the video the release draft page: ReleaseDraft:3fc94d4e-619f-45cc-b1ea-c643386ee315
- Finalize to IPFS error upload issue
- figuring things out with Justins side with coconut and back end AUTHOR actions
Day 3
- Big one. Coconut is basically done — encoding happens on delivery-kid now, in AV1 + Opus (both royalty-free, which was the whole point of coconut in the first place). Turns out our own box does it faster than coconut ever did. https://github.com/cryptograss/maybelle-config/pull/113
- Mixing/ Editing for Cicada 44th Bday Jam videos
- Sombrero edition published — first video ever through the local pipeline: Pickipedia Dispatch - Sombrero Edition
- The 44th bday jam-bash was the weird one. Got "IPFS failed", then "content draft not found", looked like the whole thing was gone. It wasn't. It had encoded fine and pinned to IPFS hours earlier — it just lost the paperwork, so the source got deleted and everything reported failure. The audit was even recommending we delete the wiki page, which was the only thing pointing at the video. Was about to re-upload 10.5GB for nothing. Magent found the orphan pin by cross-referencing two audits, wrote the CID back onto the draft, and the bot finished the job one second later: 44th Bday Cicada Jam-Bash — filed as https://github.com/cryptograss/maybelle-config/issues/115
- Live progress panel built and shipped. Encoding an hour of video locally meant staring at a frozen bar the whole time, so now it shows position, speed and time remaining, updating every couple seconds. https://github.com/cryptograss/maybelle-config/pull/114 and https://github.com/cryptograss/pickipedia/pull/108
- Also fixed along the way — delivery-kid had never been able to write to the wiki. Wrong API path, every write 404'd silently. That's why draft pages always looked frozen while stuff was actually happening.
- Cicada 44th Bday Jam Set 1 — first upload to go start to finish with zero manual intervention. Uploaded, encoded, pinned, release page, torrent. No babysitting.
- Wrote up how the whole pipeline works now: Cryptograss:Video encoding pipeline
- Three videos up. Started this whole thing because longer videos wouldn't upload — ended up being four separate bugs stacked on each other.
- Still open: coconut account can be cancelled (nothing uses it), https://github.com/cryptograss/maybelle-config/issues/115, https://github.com/cryptograss/maybelle-config/issues/110 (probably closeable), diagnostics snapshot subpages have never actually written, and an error showed up on the last finalize even though it succeeded — need to look at that.[✓]
Day 4
- Mixing, editing and bouncing the party video batch out of DaVinci Resolve. Got a proper export preset dialled in — H.264 at 10 Mbps, audio AAC 320, saved so it's one click from now on. Don't skimp on the audio, it's the part anyone actually listens to.
- Live encode progress deployed, both halves. No more staring at a frozen bar for an hour — it shows position, speed and time remaining now.
- Cicada 44th Bday Jam Set 1 published — 13 min, and the first upload to go start to finish with nobody touching it. Uploaded, encoded, pinned, release page, torrent. 2.0GB in, 247MB out.
- Reality check on the encode speed: real box does about 2x realtime, not the 0.8x the benchmarks suggested. So budget roughly double the video's length. Still beats coconut, which never finished at all.
- Cicada 44th Jam Star Tropics published — 17 min, 2.68GB in, 304MB out. Second clean automatic run, no babysitting.
- Late on, Justin hit "error loading video — the IPFS content may not be available" on Star Tropics. Content was completely fine, verified serving in half a second. It's Safari + AV1. Apple ships no software AV1 decoder, so anything short of an M3 Mac can't play our videos in Safari. Firefox and Chrome are fine on the same machine.[✓]
Day 5
- Built a page for the party so the videos are findable by something other than a hash — all three players in one place, plus the full lineup: 44th Bday Cicada Jam
- Then hit Justin's error myself on that very page. So we've both now been the confused user, on a page about our own party. The message is the real problem — it says the video may be missing when the video is right there, serving in half a second. Fix written and tested, waiting on someone to paste it:
https://github.com/cryptograss/pickipedia/issues/111
- Added a follow-up idea too — better to check whether the browser can play AV1 before showing a player, rather than letting people hit an error and then explaining it.
- Found a good one while dating the party page. Every block height on the wiki is about 75,000 blocks in the future — roughly ten and a half days. The code counts exactly 12 seconds per block since the Merge; the real average is 12.044. Forty-four milliseconds, times ten million blocks. Audit pages are named after blocks that don't exist yet, and their etherscan links point at nothing.
https://github.com/cryptograss/pickipedia/issues/112
- Turns out the party fell on the day the chain crossed block 25,000,000 — only spotted it because the stamped numbers didn't line up with the real ones.
Then spent the afternoon fixing things
- The finalize bug is fixed. The one that made my jam look lost. The CID had nowhere to live on the server — it only existed in the message sent to my browser, while the source got deleted the moment the pin succeeded. Now it's written down three ways before anyone's told about it, and a retry says "already finalized as Qm..." instead of "not found".
https://github.com/cryptograss/maybelle-config/pull/117
- Block heights read from the chain now, instead of guessing from 2022. Worst case error went from 74,874 blocks to 56 — ten days down to eleven minutes. Turned out to be eight copies of the same wrong sum, then a ninth found by grepping for the magic number.
https://github.com/cryptograss/pickipedia/pull/113
- The audit now spots what it missed on my jam. The insight is that staging only gets deleted after a successful pin — so a draft with no staging and no finalize record didn't fail, it succeeded and lost the paperwork. It now says "do NOT delete these pages" instead of "safe to delete".
https://github.com/cryptograss/maybelle-config/pull/118
- Found out why the diagnostics pages never existed. Justin pulled the container log and it was two separate bugs, neither of them the credential problem magent had guessed at twice:
- The wiki was rejecting every snapshot because the page wanted a
typefield that diagnostics data has no reason to have - The login session expires and nothing re-authenticates, so it dies silently every day until the container restarts
- The wiki was rejecting every snapshot because the page wanted a
- Both fixed: https://github.com/cryptograss/pickipedia/pull/114 and https://github.com/cryptograss/maybelle-config/pull/119
- Three things had to be wrong at once for this to stay invisible — the API path, the content model, and the session — plus a discarded return value hiding all three.
- Nice catch along the way: the ethereum RPC returns 403 to Python's default user agent. Without an explicit header the call fails every time and quietly falls back to the estimate — which is exactly the silent-failure pattern we'd been complaining about all day, nearly shipped by us.
Next day: cleanup, and a good question from Justin
- Poster frames. Asked whether we could stop the video area being an empty black box before you press play. Now every encode pulls a still frame and pins it inside the release directory, so it travels under the same CID. Seeks 10% in rather than frame zero, because the start of a recording is usually a lens cap.
- It's a JPEG, which means it shows even in Safari where the AV1 won't play. So instead of a black box and a false error, you'd get a picture of the jam and a note saying to use Firefox.
https://github.com/cryptograss/maybelle-config/pull/120
- Justin asked the right question about #119 — "is there a test showing these errors propagate to the wiki?"
- There wasn't. There were fourteen tests, all green, all checking that the save function was called — and they passed happily through every month in which not one diagnostics page was ever written. Green tests plus an absence nobody watches for.
- Wrote three that assert a page actually lands. Proved they're real by running them against the old code: two of the three fail there. Justin named the test class On The Pipe — apparently from a movie, which he can explain better than me.
- Wrote up the pattern, because it kept happening: Cryptograss:On The Pipe
- Five separate bugs this week, one shape. Every one either said nothing at all or said something plausible and wrong — and three of them pointed at destroying good work: re-upload 10.5GB, delete the wiki page, go debug IPFS. The page lists them and the rules that fall out. Never discard a result you asked for. A fallback must not be silent. Never blame a subsystem you haven't checked.
- Found four permanently red tests in the coconut suite, testing a schema the code stopped using. Argued for deleting them — not because the assertions matter, but because a suite with expected failures is one people stop reading. Which is exactly how the diagnostics thing hid.
https://github.com/cryptograss/maybelle-config/issues/121
- Magent declined to paste the Common.js fix itself — 605 lines it would have to reproduce exactly, where one wrong character breaks every gadget on the wiki. Reasonable call. That one's still a human job.
Still open
- Coconut account can be cancelled — nothing has used it in days
- One PR left: maybelle#119 — the rest merged. Then deploy delivery-kid, which is still on the Sept 4 build, so #117, #118 and #120 are merged but not running.
- pickipedia#111 — player error message + poster line, still needs pasting into Common.js
- #115 and pickipedia#112 are fixed but still showing open — "Fixes #N" doesn't auto-close when the PR merges to production instead of the default branch
- Redlinks to sort: Fibbonacci Holmes and Seth Cambell — check the spellings before anyone makes those pages
- Ten stale PRs to close, and the block heights on existing pages are still ten days off[unverified]