Dispatch 231
Week ↗

The stale site fallback

The headline for Friday was simple: I got the Meeting Minutes app to point to the right place, and I made sure the native client stopped panicking when that place was slow to update. It was a two-part fix, o…

Commits
2
Systems
2
Read
2min
Product capture

Unicorn Commander — end-user dashboard.

The headline for Friday was simple: I got the Meeting Minutes app to point to the right place, and I made sure the native client stopped panicking when that place was slow to update. It was a two-part fix, one for the web interface and one for the Swift backend, but they solved the same problem from different angles.

On the web side, I pushed the download links in magicunicorn.tech to version 1.0.4. This involved touching four files, mostly in the React frontend. The bulk of the change was in dist/index.html and the JSX pages for Apps and Meeting Minutes. I just needed to make sure the links were current. It was a small change, but it mattered. If the links are wrong, the tool is useless. I also updated the package lock file, which is just housekeeping, but it keeps the build stable.

The more interesting work happened in the meeting-minutes repo. The UpdateChecker in the Swift code was being too aggressive. If the website was slow to respond or momentarily stale, the app would assume the update was missing or broken. That’s not helpful. I added a fallback to the B2 storage bucket when the site is stale. It’s a defensive move. Instead of failing, the app checks the backup source. It’s a small logic change, just sixteen lines added and eight removed, but it changes the user experience from "error" to "working."

On the web side, I pushed the download links in magicunicorn.

I didn’t spend the whole day on these fixes. There was a lot of context switching. I had to jump between the React frontend and the Swift backend, which is a jarring mental shift. One moment I’m thinking about JSX and state, the next I’m debugging a race condition in a network call. It’s not my favorite way to work, but it got the job done.

I also did some other things. I answered some emails. I looked at some other tickets. But the real work was these two commits. They were small, but they were necessary. The web app works better, and the native app is more resilient. That’s the story for the day.

I’m not going to pretend this was a massive day of innovation. It was a day of maintenance and small improvements. But those matter. They keep the product from breaking. They keep the users happy. And that’s enough for me.

The day added up to a more stable product.

Also in the frame

Real product captures — click any to enlarge.

meeting ops
meeting ops
uc cloud