Process isolation won't save you from the filesystem
A flaky self-update test: separate processes still shared a computed cache path and raced on disk. Process isolation is not filesystem isolation.


A flaky self-update test: separate processes still shared a computed cache path and raced on disk. Process isolation is not filesystem isolation.

Rust has no init or pre-main phase, so self-registering commands need another mechanism. Using a distributed slice to get the same shape.

A Rust gotcha: non_exhaustive promises an enum can grow, but returning a fixed-size array bakes today count into the type. Both cannot be true.

Porting a Go framework to Rust separates design from idiom. Which decisions survived the move, which were habits, and how to tell them apart.

A sibling to go-tool-base rather than a port, filling the gap between excellent Rust crates and a coherent way to assemble them.

A primer on the six Rust concepts you need to follow the rest: ownership and borrowing, traits, enums and match, Result and the question mark.

A user-settable AI base URL decides where your API key gets sent. Validating it to reject userinfo, non-HTTPS schemes and redirects.

Catching secrets by shape rather than by name: patterns for provider key prefixes, URL userinfo and auth headers, plus a fuzzy fallback.

You cannot test the model, but you can test your code: snapshot the prompt as a golden file and mock the response to cover the ugly cases.

Stop parsing an LLM's prose with regular expressions. Derive a JSON schema from your Go or Rust type so the schema and the type cannot drift.
