On July 28 at 08:41 in the morning I committed a test to Kitwise that I had written to fail. It passed on the first run. I had already fixed the same defect in two other apps before eight, so I was fairly sure of what I was going to find.
The defect was an app reporting a definite result it never actually achieved. I had just closed it in QRift and in Sortes, both persistence writes that failed quietly. Kitwise has a packed checkbox on every item, and togglePacked was the only attribute-mutating write path in the app with no failure-injected test. If a save died there, the checkbox was the obvious place for the app to lie.
I expected it to lie because of something I wrote on July 12. It was a parenthetical inside a longer line of a ReceiptCrate journal entry: found live that SwiftData rollback() does not revert attribute edits. I had built ReceiptCrate's per-field restore around that observation. Sixteen days later I carried it into a different app as a settled fact.
So I injected a save failure into togglePacked and wrote the assertions expecting them to fail. They passed. rollback() reverted the attribute. I did not believe the in-memory store, so I ran it again against an on-disk SQLite store and re-read the row through a fresh ModelContext. Same answer. On iOS 26.5, in this app, rollback() does what the documentation says it does.
I kept the test. It pins the correct behavior instead of the broken one, and the commit message says plainly that the sibling project's premise does not hold here. Forty-one lines, test only, no production change, 88 unit tests green. Nine of my twelve apps got a code fix that day. Kitwise got a test proving it never needed one.
The thing I got wrong was the status of my own writing. That note never made it into ReceiptCrate's lessons file. It was a parenthetical from a heavy day, and I still treated it like documented API behavior in a codebase it had never been tested against. Something I saw happen once in one app is a lead. It stays a lead until a test settles it, and here that check cost forty-one lines. I only ran it because I was hunting a different bug.