Engineering notes

How Deforget is built - the honest version. Occasional, technical, and free of announcements.

A diary must never lose a word: surviving CloudKit

CloudKit lost my diary's words three different ways - a launch-import race, last-writer-wins, and a silently wedged sync engine. The shadow copies, paragraph unions, and three-sentence repair doctrine that survived all three.

What a security prompt costs

I added a prompt-injection fence to the extraction pipeline and the eval harness billed it at seven points of recall. The model got scared, not safer - and the fix was six words and a stack of deterministic guards.

I measured Apple's on-device model so you don't have to

One corpus, real hardware, every iOS 27 beta, the release candidate and the public build. Raw model scores, repaired pipeline scores, model states that trade places under one OS build, two different models on two devices, and the thirty-odd points in between that stay mine.

The intelligence stays home

Running Apple's on-device model against a private diary: what a small model gets wrong, why the model proposes and deterministic code disposes, and how I measure the seam between them.