Map the project deterministically
Codna resolves types, protocol conformances, extensions, async/await call paths, and blast radius across your SwiftPM and Xcode targets — for zero LLM tokens.
Optionals, protocol conformances, and Swift Concurrency scatter a single bug across an iOS or server-side project. Codna resolves the type and call graph deterministically, so AI Swift debugging starts from facts, not guesses, and hands the agent exactly the files that matter.
The problem
A force-unwrap crash or a failing XCTest rarely lives where it surfaces. The real cause hides behind a protocol extension, a generic constraint, or an actor boundary several files away, and Swift's type inference makes the chain hard to follow by hand. Most AI tools cope by reading the whole target into the model, which is slow, lossy, and burns tokens before a single line is fixed. That is where engineers lose hours — re-reading the same SwiftPM modules and Xcode targets just to relearn what depends on what.
How Codna fixes it
Codna resolves types, protocol conformances, extensions, async/await call paths, and blast radius across your SwiftPM and Xcode targets — for zero LLM tokens.
The agent gets the suspect types, the failing test, and the call chain in a tight evidence bundle — about 600 tokens instead of the whole repo, 162x less context.
Codna runs your own test target and ships the patch only when it passes, so every Swift fix is proven before you see it.
brew install codna codna fix . --issue "force-unwrap crash in CheckoutCoordinator after async refactor"
What you get
Codna builds the dependency and blast-radius graph of your Swift project from source — types, protocols, actors — with no embeddings, no RAG, and no LLM tokens.
The failing XCTest or Swift Testing case is the oracle. A patch only lands after it passes your existing test target, so you never review a guess.
Because the agent reasons from a ~600-token bundle rather than the whole codebase, a verified Swift fix costs roughly four cents at public model rates.
The proof
It maps your project's dependency graph deterministically first — types, protocol conformances, and async/await call paths — then hands the agent only the suspect files in a ~600-token evidence bundle. The fix starts from the real call graph, not a full-repo scan.
Yes. Codna traces conformances and call paths through protocol extensions and generics, so the agent sees where a force-unwrap or optional bug actually originates instead of patching the symptom.
Both. The deterministic engine maps the graph from source regardless of platform or Swift Package layout, so app targets and Vapor-style server projects are treated the same way.
Both are supported. Codna runs your existing test target and only proposes a patch once your suite passes, so the fix is verified before it lands.
Yes. Codna ships as a CLI, as an MCP server for Cursor and Claude, and as a native GitHub App, so the same AI coding agent fits your local loop or your CI.
Yes. Codna self-hosts with bring-your-own-key, fail-closed egress, and no training on your code, so a private iOS or server-side codebase never leaves your control.
Related