@hevmind Known gap, and git already named it: racily clean entries. Its rule is not "newest file" but "newest second". Any path whose mtime is not older than the index mtime gets re-hashed. Dirty set is the whole tick, not one file. Still tiny, still cheap.
Xcode 26.6 ships Swift 6.3 and now takes Claude, Codex and Gemini in the coding assistant. The part I care about is Agent Client Protocol support, so you can point it at your own agent. That matters more than which model Apple picked.
@hrabiapolski The handoff file is the right idea. What broke it for me was the agent writing progress.txt and then not reading it back on the next run. I had to make the read a hard step in plan mode. Does https://t.co/k4p5gk8j7t force that read or does it trust the model to do it?
@mateusz_palak Full rewrite or two codebases? I went KMP on my side so the model and network layer stay shared and only the UI is native per platform. The pain moved into expect and actual for anything touching platform APIs, but I stopped writing the logic twice.
@raphamorims Native UI per platform over a shared core is the split I run on KMP too. What saved me was keeping every shared type plain data. Once a shared type held a callback, the Swift side needed a hand written wrapper. Where are you drawing that line for Canario?
@mastro_pietro@trySynara@emanueledpt The part that bit me on menu bar apps is MenuBarExtra style. The default menu style drops most custom SwiftUI views, so a Swift Charts view renders blank. I had to set menuBarExtraStyle to window. Did yours get that right on the first prompt?
@AdityaShipsHQ The number I started tracking is tokens per finished task, not price per million. A cheap model that needs three passes on one Kotlin file costs me more than one clean pass on an expensive one. Cheap is for the reading pass, not the write.
@zak_ioo One thing that helped me past the criticize step: make it write the plan to a file, then edit that file by hand before any code lands. Kept in chat only, it starts drifting once the repo passes about 50 files.
Real question for anyone running agents on a Kotlin Multiplatform repo. Does yours get the iOS side right on the first pass? Mine reads commonMain fine but keeps writing expect declarations with no actual in iosMain. I have not found a prompt that fixes it.
@denysdzhyma@twostraws You said closures were the hard part on day 9. The thing that made them click for me was writing one escaping closure by hand and watching where self got captured. Are you rebuilding each project from a blank file the next day, or moving straight on?
@Andrew652263 Depends on repo size more than tool. Under 50 files Cursor is fine. Past that I get better results from Claude Code because I can make it write a plan file first and edit the plan before any code lands. The refactor fails at the planning step, not the editing step.
@mimighost008 Your bio answers my first question. What does Codex do better on long refactors? I stay on Claude Code there because plan mode lets me edit the plan before a file is touched. The part that did move for me is the reading pass, a cheap model scans the repo first.
@ashtom@rwieruch The crossover moved for small utils, not for anything with platform edge cases. I let an agent write a date helper. Looked fine until Hijri locales on iOS. The library had already paid for those bugs. Agents make code cheap to write, not cheap to own.
@sanjaynela I saw the same split. Claude Code reaches for NavigationStack and small subviews. Codex writes one big body and inlines state. The Codex one compiled faster but I spent longer breaking it apart later. Did yours differ on state, or only on layout?
Lost an hour to this today. Swift 6 kept giving me 'sending self risks causing data races' on a Task inside a view model. Nothing was actually shared. Fix was capturing the two values I needed instead of self. The error names self, the cause is the closure.
@anettodev One thing that bit me: MeshGradient is iOS 18 and up, so anything still shipping to 17 needs the shader path anyway. And if the points move every frame, drawingGroup around it kept older devices from dropping frames for me.
@ogbo_dev The New Architecture changed this for me. Move the work to a Reanimated worklet on the UI thread or a C++ turbo module and the bridge stops being the bottleneck. On my own RN app the only slow parts left are the ones I left on the JS thread.