DeskRhythm heads to beta, Fazon gets a coaching stack, and the web repo gets a quiet sweep
The last entry was the Fable 5 matrix replay on June 10. This week was busier than I expected — the mobile apps moved fast while the web repo held steady.
DeskRhythm
DeskRhythm is ready for beta. I'm setting up Fastlane now — should be able to share a TestFlight link during the week.
Getting there took a few things.
Bug sweep. Eleven open bugs across iOS and web, fixed in one pass. One was a @MainActor deinit crash on the back-deploy shim — Swift concurrency and deinit don't mix the way you'd expect, and the fix was to drop the actor isolation entirely. Another was a Live Activity that didn't survive the End Workingday action — the activity needed to end unconditionally, with an orphan sweep for any that slipped through.
CloudKit sync, validated. The sync harness I built last week — XCUITest legs driving two simulators in parallel — ran clean end-to-end. The sync itself has been shipping since earlier in the cycle, but the automated harness to verify it across devices is new. The remaining gate is deploying the CloudKit Production schema; everything else is done.
App Store delivery automation. Fastlane scaffold landed with a locale-scaled metadata pipeline for both English and Swedish. It's dry-run-safe — nothing touches the App Store until I flip the switch. The agent dashboard now declares both the web and iOS deploy targets, which means the same PRD-driven workflow that ships the website can track the iOS release pipeline.
Beta launch prep. Copy for the beta hero and App Store listing is done in both languages. The landing page copy and ASO draft are in. UX spec for the beta section on the product page is done.
New blog post. Published "Why 'stand more' is incomplete advice" on the DeskRhythm site, timed to land just before the beta opens.
Fazon
Fazon shipped four PRDs this week. All of them are coaching features, and together they turn the daily Active phase from a progress tracker into something that actually coaches.
Active-mode Today screen. The Today screen in Active mode now shows a coach card with a welcoming first-window state. Before this, switching from Maintenance to Active changed the data model but not the experience.
Time-aware coaching. The daily coach now knows what time of day it is. Class 1 gates (too early for a check-in), Class 2 reframes (morning-specific framing for yesterday's results), Class 3 nudges (meal-aware logging prompts). The coaching rules JSON carries the time constants; a golden corpus test suite validates the full clock/meal/logging axis.
Power Walk sessions. The big feature: a 45–60 minute coach-guided walking session, launched from either the coach dock or the activity chooser. Deterministic core domain, a WalkSession write model, an in-progress modal with a summary at the end. Full spec-review-implement cycle completed in one day.
Coach presence. The Active Today surface gained a persistent coach dock — ambient when idle, summoned on tap, proactive when the engine has something to say, then settling back. The copy and interaction specs landed; implementation follows next week.
Fable 5 code reviews
For the few days Fable 5 was available I ran code reviews across every active project. It found bugs that both Opus and Codex had missed — nothing critical, but worth fixing while the model was accessible. If Fable 5 comes back this week I'll give it a longer run.
The web repo
No features landed on mynextstudio.com this week. What landed was maintenance.
Dependency bumps. GitHub Actions, @types/node, Vitest, fast-xml-parser, and Wrangler all moved to current. Nothing dramatic in any of them, but the Wrangler bump matters — Cloudflare's deploy tooling moves fast enough that falling behind creates real friction when you need it next.
Sitemap fix. The XML sitemap route was missing export const dynamic = "force-static", which meant Next.js was trying to render it dynamically on a statically-exported site. Small bug, invisible until a crawler actually hit the route at the wrong moment.
My Next legacy fix. One of the migrated My Next pages had a useEffect + setState pattern that React 19 is less tolerant of than 18 was — replaced it with a render-time update. The kind of thing that works until it doesn't.
Assorted bug fixes. A handful of small corrections across the site and the agent dashboard page — nothing individually worth naming, collectively worth doing.
What's next
DeskRhythm beta link out this week if Fastlane cooperates. Fazon's coach presence implementation. And then back to the web repo — it's been patient.