Prioritized roadmap from a full review of the stack (LLMProviderKit → SwiftAgentKit → SwiftAgentKitUI → Demo). Strategy: depth over breadth — get the core loop + providers + tools to production quality and label everything else experimental until it's tested.
Current releases: LLMProviderKit 0.1.0-alpha.6, SwiftAgentKit 0.3.0-alpha.8, SwiftAgentKitUI 0.3.0-alpha.3.
Guiding principle
The architecture (clean layering, actor-based concurrency, minimal provider protocol) is the right bet. The gap is advertised ≠ wired-and-tested. Close that gap before adding features.
P0 — correctness & trust (shipped in alpha.8; keep as regression baseline)
P1 — close the advertised-vs-working gap
P2 — subsystem hardening (label experimental until done)
P3 — positioning
Filed from a code-review session; P0 items reference fixes already merged and tagged.
Prioritized roadmap from a full review of the stack (LLMProviderKit → SwiftAgentKit → SwiftAgentKitUI → Demo). Strategy: depth over breadth — get the core loop + providers + tools to production quality and label everything else experimental until it's tested.
Current releases: LLMProviderKit
0.1.0-alpha.6, SwiftAgentKit0.3.0-alpha.8, SwiftAgentKitUI0.3.0-alpha.3.Guiding principle
The architecture (clean layering, actor-based concurrency, minimal provider protocol) is the right bet. The gap is advertised ≠ wired-and-tested. Close that gap before adding features.
P0 — correctness & trust (shipped in alpha.8; keep as regression baseline)
anthropic-versionheader fix; Gemini tool-result role fix (LLMProviderKit alpha.6)AgentCallbacks.onToolConfirmation, fail-closed)readResourceper-server fallback@Toolmacro emits diagnostics instead of uncompilable code for unsupported inputsP1 — close the advertised-vs-working gap
swift build+swift teston macOS + iOS on each PR. Highest-leverage item — this review was a manual substitute for it.glm-5.2:cloudlocally / gated in CI.runStreaming.Conversation, 4 chars/token): replace with a per-provider tokenizer hook or a configurable, better-calibrated estimate — trimming correctness depends on it.P2 — subsystem hardening (label experimental until done)
delete(id:)slugifies the arg but fact files are title-slugged, so delete-by-UUID never matches. Reconcile the addressing model.ToolCallParser: nested-JSON args break the\{[^}]*\}regex (fallback path for non-native-tool models only).P3 — positioning
Filed from a code-review session; P0 items reference fixes already merged and tagged.