Repository navigation
v0.2.0
v0.2.0 adds the SwiftUI demo and strengthens structured output, session lifecycle, and the existing Claude adapter for portable AgentConfig execution.
Changes since v0.1.0
- Structured output and schema verification (AF-83, #1): validate the supported portable JSON Schema subset before generation and recursively validate returned payloads on both adapters. Structured results use the same final
AgentTurnResult.structuredpayload. CI verifies vendored contracts against an exact public-schema revision and proves the drift gate rejects an unsupported version. - SwiftUI demo (AF-81, #2): a shared iOS/macOS chat app uses the checked-in story manifest, with streaming, tool events, turn limits, cancellation, new conversations, and an in-memory story library. Debug Simulation supports repeatable UI tests and is excluded from Release builds.
- Foundation Models lifecycle (AF-78, #3): consistent model selection and availability, one active generation per session, correct turn accounting, cumulative-stream handling, and cancellation/transcript cleanup that prevents late successful completion.
- Claude hardening (AF-80, #4): preserve SSE framing, fragmented UTF-8, content-block order, and tool history; reject incomplete or invalid terminal sequences; bound transport buffers; retain cancellation through cleanup; honor candidate routing. Credentials and diagnostics are redacted, production transport uses ephemeral storage and rejects redirects, and the CLI adds protected key entry and a bounded owner-controlled verification flow. Claude streaming was already supported in v0.1.0.
Compatibility
- Package floors remain iOS 17 / macOS 15. Building requires Xcode 26; Foundation Models requires iOS 26/macOS 26 and an available model on eligible hardware.
- The supported manifest schema version, checked-in schema/examples, public runtime protocols, and stream-event shapes are unchanged. Existing manifests and the shared session consumer remain usable across adapters.
- Validation is stricter: structured schemas outside the documented object-root portable subset now fail before generation, and invalid nested payloads fail without a successful result. Concurrent sends are rejected; admitted failed or cancelled attempts consume a turn. Review the runtime behavior and supported schema subset when upgrading.
Verification and limits
- Released commit:
f4018059753bb4fc0c2f549e4390f58e39618d8b. Exact merged-main CI passed: 169 package tests passed, 1 expected skip, 0 failures on each platform; all 4 macOS and 5 iOS Debug Simulation UI tests passed. - macOS skipped the unavailable-model session test; iOS skipped the conditional sibling-schema comparison inside the simulator. The separate pinned-schema verification passed on both platforms. macOS, iOS Simulator, and unsigned iOS device-SDK Release builds passed, as did the macOS negative drift gate and CLI dry run. Simulator/SDK and simulated UI results do not establish physical-device generation.
- Owner-confirmed live Claude streaming with the original manifest was recorded on October 6, 2026. Subsequent review fixes have deterministic and hosted verification; no new live provider request was made for those fixes or this release. Physical-device airplane-mode acceptance remains deferred to AF-84. See the cloud and on-device verification guides.
Full changelog: v0.1.0...v0.2.0