A Power Outage, a Cloudflare Rabbit Hole, and a New Matrix View
A new Setup/Operate split for SRT Matrix with a real drag-and-drop thumbnail view, a generator that ran out of gas mid-session — twice — and a genuinely satisfying rabbit hole tracking down why release builds were quietly failing across five different projects.
Since the last post it's been almost entirely SRT Matrix and the infrastructure underneath it — the kind of week where the actual shipped feature is maybe a third of the story, and the rest is chasing down why something that used to just work suddenly didn't.
Setup and Operate, with real thumbnails
SRT Matrix's dashboard used to be one screen doing two jobs at once — configuring sites and destinations, and actually routing live feeds around, all mixed together in the same text-heavy cards. That's now split into a proper Setup view (just configuration) and an Operate view, which is the one I'm actually happy with: every source and destination renders as a tile with a real live-ish preview thumbnail, bordered in a color that acts like a broadcast tally light — red, yellow, or green depending on whether it's offline, standing by, or actually live and routed somewhere. Routing is drag-and-drop, same as before, just onto something that actually looks like what it's doing instead of a name in a box.
The generator ran out of gas. Twice.
Partway through building all that, the power went out — the generator ran dry and everything dropped mid-session. Got it refueled, picked back up, and a little while later it happened again. Nothing lost, just a couple of interruptions that turned "quick feature work" into a longer stretch than planned.
Why were releases quietly failing?
The feature itself shipped clean, but pushing the actual tagged release turned into its own investigation. The upload kept dying partway through with a Cloudflare timeout, and the GitLab server itself looked completely healthy — low load, nothing crash-looping, fast response times. Turned out the problem was specifically the public, Cloudflare-tunneled path into our self-hosted GitLab: fine for small requests and simple downloads, but it would stall out and corrupt anything larger than a few megabytes on the way in, which is exactly what a release upload is.
Fixed it by setting up a locked-down SSH user on the GitLab box that can only port-forward straight to its local web server — no shell, nothing else reachable — and routing CI release uploads through that instead of over the public URL. Along the way I found a second, unrelated bug hiding underneath it: a private key stored as a CI secret had quietly lost its trailing newline somewhere between being generated and being pasted into GitLab's settings, which a stricter SSH build on the build server had just started refusing to accept. That one had apparently been silently fine for a long time right up until it wasn't. Once both were sorted, I rolled the same fix out across every project publishing releases the same way — five in total — so it's not a one-off patch, it's just how releases work here now.
What's next
With that infrastructure detour closed out, I'm back on SRT Matrix's actual roadmap — next up is a proper diagnostics view: real per-connection stats (round-trip time, packet loss, retransmits) pulled straight from the SRT protocol layer itself for every native SRT connection, not just a connected/disconnected dot. Design's done, plan's written, build starts next.