Swift Swift Evolution
Your private(set) Property Isn't as Private as You Think. Swift's Memberwise Init Still Lets Anyone Set It.
A fresh Swift Evolution pitch tackles a real gap: struct memberwise initializers ignore private(set) and let callers set properties you meant to protect. Here's the pitch, the pushback, and why the debate matters more than the syntax.
7 min read
Swift 6 Error Handling
Typed Throws in Swift 6: A Real Migration, and the Wall It Hits at a Protocol
Swift 6's typed throws (throws(SomeError)) let you catch errors exhaustively without a default case. Applied to BrewLog's real NetworkClient, here's what actually improves — and the protocol boundary where typed throws quietly stops helping.
7 min read
Swift Testing Swift Evolution
ST-0026 Got Accepted. The Whole Review Came Down to One Parameter Label.
Swift Testing's .taskLocal trait (ST-0026) was accepted with modifications on August 15, 2026 — the only change was adding a withValue: label. Here's the final API, why the label debate actually mattered, and the real BrewLog migration it unlocks.
7 min read