Weeknotes


July 20-26, 2026

I spent the better part of the week in Bucharest, Romania, visiting friends and attending Kraftwerk in concert—and so there’s not quite as much to report on. I did still manage to ship some features in Rheo, and also did some further thinking about an undergraduate course I hope to teach next Spring.

Rheo[26w30-rheo]

As I wrote last week, I decided to ship this next set of features as 0.5.1 rather than 0.6.0, given that 0.5.0 was released last week, and 0.4.0 was released just three weeks ago. There are technically two breaking changes in 0.5.1: 1) namely removing the rheo-context variable in favour of a rheo-context() function, and 2) resetting footnote numbers by default across vertebrae. The other changes in the release gravitate around fluffing the rheo-context().spine data structure up with the information configured using #set document statements in each Typst vertebra. This makes a lot more context regarding Rheo’s spine available, which also means that it can be abstracted away in packages like blogfeed (newly created this week), which now powers this site’s homepage.

Currently, the content in rheo-context() is powered by a ‘second’ shallow parse of the Typst files in Rheo, rather than in Typst’s compilation itself. This is probably unnecessary, as I’m pretty sure that different documents in a Typst bundle can introspect each other’s metadata. So the better solution would be a Typst-native construction, which would also avoid the three-way type transliteration (Typst types represented in Rust for Rheo, which then casts them back to Typst types again) that we’re doing currently. But the preliminary shape of what rheo-context() provides is now in place, which means that I can experiment with building out a Zettelkasten-like package that makes use of it, something that I’ve been meaning to do since I started writing weeknotes almost two months ago, now.

Among the other changes that landed was an adjustment to the way Rheo’s default stylesheet gets injected. It now shows up in the build through the Rheo asset system, which means as an external CSS file linked in the HTML header, rather than being inlined in the HTML as it was previously (for relatively arbitrary, historical reasons). This resulted in a glorious PR to rheo-tests removing some 14k lines of repeated code, as we store full HTML references in the test harness.

Konrad[26w30-konrad]

If you follow these weeknotes regularly, you’ll know that I started building an agential harness from scratch a few weeks ago. I decided this week to build a seminar/studio course in tandem with the development, as I believe that building a tool analogous to Claude Code from scratch could both disillusion young engineers of the trending idea that there may soon be nothing left in software to work on, and give a good hands-on introduction to how to work effectively with LLMs, whether local or accessed via API.

This is a space that is changing rapidly, both as frontier labs release new models and as we discover how to most effectively work with the jagged intelligence they avail to us (mere mortal humans). I expect the sketch that I have now of the topics we will cover in each week of the course to change by the time I actually offer it, as the earliest I might teach it is in Spring 2027.

Because the course will involve graded assignments, I’ve taken the konrad codebase down from the public domain, moving it from tangled to GitHub, as I haven’t yet had the time to set up a self-hosted source forge and—as far as I can tell—tangled doesn’t offer private repos.

et al.[26w30-etal]

The Kraftwerk concert in Bucharest was the highlight of my week away. To my shame, I haven’t listened too extensively to them up until now. I particularly enjoyed their rendition of Tour de France given its present resonance. Autobahn also always hits the spot. (This number I have heard many times before, as it was a major staple in a playlist I was listening to when I was taking a course titled ‘Histories of Infrastructure’ with Arunabh Ghosh in the first semester of my PhD.)