Repository navigation
UndoKit 0.2.0
Pre-releaseUndoKit 0.2.0 — first beta
UndoKit provides durable Undo/Redo history for Swift applications while the host owns domain state, validation, atomic effects and authoritative outcome receipts. This beta brings the refactored session/attachment API, typed host operations, retained history, and native AppKit, UIKit and SwiftUI Durable Notes examples together under a qualified baseline.
Integrating
Use Xcode 27.1 (27A9275), Apple Swift 6.4, Swift 6 and complete concurrency checking. Declared products target macOS 14 arm64/x86_64, iOS/iPadOS 17 device arm64 and separate Simulator arm64/x86_64. Recorded floor execution used macOS 14.6.1 and iOS/iPadOS 17.5; these are not exact 14.0/17.0 execution claims. Current behavioral evidence includes macOS 27.0.1 and iOS 27; the first-beta iPad selection uses 26.5 under the explicit substitution below.
Choose the source Swift package, native Xcode project or direct dynamic XCFramework. Keep one UndoKit runtime/resource owner per process across your app and domain frameworks. The binary ZIP contains one complete XCFramework with model/privacy resources and matching dSYMs; consuming hosts own embedding/shared installation and app signing. No binary Swift Package wrapper or system installer is supplied.
Build the examples from the tagged source. See installation and the versioned documentation once its matching deployment completes.
Compatibility
This first qualified beta establishes the supported retained-history baseline. There is no migration promise from 0.1.0 or experimental stores. Unsupported existing history is preserved and refused; start new beta fixtures rather than reusing experimental data. The public API has changed substantially since 0.1.0: port integrations using the tagged typed host/session examples rather than assuming source compatibility.
After this beta, patches preserve public source compatibility and documented behavior; minor 0.x releases may change APIs with migration guidance. Supported retained histories remain usable directly or through supported structural migration, subject to the host retaining required codecs/resources. There is no downgrade guarantee. Automatic/inferred Core Data migration is disabled; opaque host payloads remain the host's responsibility.
Qualification and known limits
The exact signed binary passed independent embedded/shared Mac and floor-iPad consumers, archive/export/launch, useful static symbolication and binary-bound onboarding checks. Source-bound production/native suites and three 10,000-group fixtures plus 30 fresh-process reopens per Mac/iOS portable scale run are retained. All three exact-source CI jobs passed. Dedicated Intel execution is accepted by build policy, not recorded as an Intel runtime pass. Simulator timings are not physical-device performance.
For this first beta, iPadOS26.5 Debug/Release native checks substitute for a failed iPadOS27 simulator compositor run. The 27 failure remains unqualified; #68 tracks minimal-runner investigation and workarounds. No physical-iPad pass is claimed.
The maintainer explicitly deferred real keyboard/IME composition and an actual OS background-task expiry observation for this beta. Both remain unqualified; automated marked-text and injected-expiry checks passed separately. Actual abrupt termination/crash certification is also unqualified. A real iPhone lock/unlock observation is retained at its recorded earlier sample checkpoint and is not a new exact-candidate device execution. See the qualification asset for scope and evidence identities.
Verify this artifact
Publisher: Apple Distribution: Justin Croonenberghs (FT9KDL728H), with secure timestamp. Certificate SHA-256: b2cb2851074eb70fbdf5f64410606c83341d088f7874934f565f429eb0cef6b8.
- Source:
8d3ab774379413e9f330ce198aa27cb91eb4b74b - Framework version/build:
0.2.0/2 - Candidate:
0f418528a0ef5f8da9b7855ab4f5867f88bccc86177864f9f0fa7e4d6ce9c8c9 - ZIP SHA-256:
245f5df38fadf55b9113e767b68aa4edbae6c2f2c88b12725dfb01fbc119f211 - Original manifest SHA-256:
a37248e6920cc1c61fbc1fba7fe155ad1eb7dccccde0134887715523d7a365c6
The original manifest is published unchanged as UndoKit-0.2.0-manifest.json; its preparation-time not-yet-qualified field is intentionally immutable. UndoKit-0.2.0-qualification.json supplies the separate final qualification verdict. Verify the downloaded ZIP using SHA256SUMS, and verify publisher/signature against the manifest. Documentation promotion and GitHub release publication are coordinated steps; a temporary interval before the versioned site becomes live is possible.
Report problems with a small fictional reproduction via GitHub Issues. Include version/build, route, OS/toolchain and sanitized diagnostics. Use SECURITY.md for the private vulnerability-reporting route.