The difference between a good API and a great API is largely down to the behaviour in the dark murky corners.
miniblog.
Related Posts
I asked Hermes Agent to change how it set thread titles, and it patched its own source code!
Self modifying code is hard to reason about even in a deterministic environment. I'd already limited Hermes access to the todoist API and web search out of an abundance of caution.
Go has an os.Root API that allows you to enforce all paths are subdirectories of a given root. It fixes users accessing foo/../../../etc/passwd and similar.
Seems like a really nice solution for a relatively common problem.
Igalia's post on self-hosting CI runners is a masterclass in build engineering. It shows dealing with weird API constraints, but still finding good designs.
I also learnt that some CI systems use OCR on Apple's installers to automate!
