Repository navigation
Releases: Folio-Suite/UndoKit
Release list
UndoKit 0.2.2 — beta maintenance
UndoKit 0.2.2 — beta maintenance
Framework version 0.2.2, build 4, adds native action-name resolution to the ordinary History Session route.
Fixed
Install session.setNativeActionNameResolver(_:) to decode host-owned presentation metadata into localized native Undo/Redo names. Names follow availability, Undo/Redo, reconciliation and reopening; replacing the resolver also refreshes name-only changes. Missing metadata, nil results and resolver errors retain generic native labels. Reinstall the resolver after reopening or a language change. Focused live/local text retains its own native names and empty-stack isolation.
The native developer project now inherits the central framework build number. The persistence model, schema, privacy manifest and resolved dependencies are unchanged. This release changes framework runtime code and public API; it is not a runner-only patch. See PR #74.
Validation
The retained candidate has fresh architecture/interface/resource/dSYM checks, an approved Apple Distribution signature with secure timestamp, exact ZIP roundtrip verification, useful symbolication in all five architecture/platform pairs, and independent embedded/shared macOS plus floor/current iPad simulator consumers. AppKit, UIKit and SwiftUI checks retain their exact source/runtime/configuration identities in the separate qualification record.
The previously failing SwiftUI iPadOS 27 Settings-return path passed Debug and Release on macOS 27.0.1, including independent receipt readback. This is a measured successful retry, not a claim that FB25165352 is universally resolved. Historical failures remain retained. No new physical-device, exhaustive IME/input, device-lock, actual OS background-expiry or abrupt-termination/crash certification is claimed.
Fresh versioned 0.2.2 documentation includes the new resolver. Its nine Swift blocks compile in Debug and Release; the macOS persisted walkthrough executes.
Known qualification gap: the SwiftUI floor-iPadOS 17.5 check stalls after independent second-window editing. A fresh 0.2.1 baseline reproduces that gap; the fresh 0.2.2 comparison also times out at the same durable markers. Floor-iPhone SwiftUI and floor-iPad UIKit pass Debug/Release. No complete floor-iPad SwiftUI pass or fresh macOS 14 execution is claimed. The maintainer explicitly accepted this existing beta gap and the carried-forward validation limits for this release.
Verify the download
- Source/tag:
0.2.2at9d04950fb314846e701890ac3095d28056820918 - Publisher: Apple Distribution: Justin Croonenberghs (FT9KDL728H)
- Publisher certificate SHA-256:
b2cb2851074eb70fbdf5f64410606c83341d088f7874934f565f429eb0cef6b8 - ZIP SHA-256:
0a64a1acc0ca3ced751870d6bda3de4f0ad8bdbf73e278b6d93306dfeaf6980a - Original manifest SHA-256:
1f57df974b68aef7906900bd5667a04fa75246e7adcf67b15ce2fd83b85220e6
Use SHA256SUMS to verify the ZIP. The original manifest is published unchanged; its preparation-time status is superseded by the separate UndoKit-0.2.2-qualification.json record binding the measured evidence and maintainer-approved limits to these exact bytes.
UndoKit 0.2.1 — beta maintenance
UndoKit 0.2.1 — beta maintenance
This maintenance release fixes the UIKit qualification runner and packages the current source as framework version 0.2.1, build 3.
Fixed
The UIKit scene check could read a host lease after background closure had correctly released it, reporting missingHistory during delayed acceptance. The check now verifies scene reactivation and reopen before reading the authoritative outcome. Existing focus, receipt and closure assertions remain intact. See #71.
This was a qualification-runner bug. Framework runtime code, public APIs, persistence schema and resources are unchanged from 0.2.0. The release also retains the standalone AppKit comparison and actual Japanese IME / OS background-expiry follow-up observations.
Validation
The maintainer explicitly carries forward the applicable 0.2.0 behavioral qualification, including its recorded limits, for this patch. The complete framework source/resource/DocC tree is identical (64562c51084bb34a2dcda0e7edefe8863c83a023); dependency and assembly inputs are unchanged. The repaired UIKit check passed Debug and Release on iPadOS 26.5 and 27.0 before this packaging update.
Fresh checks cover the new Release XCFramework architecture slices, compiled model/privacy resources, matching dSYMs, approved Apple Distribution signature with secure timestamp, exact ZIP round trip, and independent embedded/shared Mac plus iOS Simulator consumers. The qualification asset separates inherited behavioral evidence from these new-artifact checks.
The SwiftUI iPadOS 27 simulator compositor failure remains unresolved, including in a standalone reproduction without UndoKit. The inherited selected-iPad behavioral evidence uses 26.5; this patch makes no SwiftUI iPadOS 27 pass claim. Abrupt-termination/crash certification remains unqualified. Actual IME and OS-expiry follow-ups retain their documented platform and human-observation limits.
The APIs and integration instructions are unchanged; the 0.2.0 API documentation remains applicable.
Verify the download
- Source/tag:
0.2.1at7b77677bf8c079fbb03fc7719e9bae4244c5d92f - Framework version/build:
0.2.1/3 - Publisher: Apple Distribution: Justin Croonenberghs (FT9KDL728H)
- Publisher certificate SHA-256:
b2cb2851074eb70fbdf5f64410606c83341d088f7874934f565f429eb0cef6b8 - ZIP SHA-256:
e054fac0fa303836c75fe20925e6cb32bcfce0e61fa8826b589c239d6d0133cb - Original manifest SHA-256:
caaf74a4d8b06c1fc03d08afa0e6f3751d9d7d71862d38a8ec957bf53868e6bb
Use SHA256SUMS to verify the ZIP. The manifest is published unchanged; its preparation-time status is superseded by the separate UndoKit-0.2.1-qualification.json record. Build examples from the tagged source.
UndoKit 0.2.0
UndoKit 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.
UndoKit 0.1.0
Initial independent source Swift Package extracted from Folio with implementation history and provenance preserved.
- macOS 14+, Swift 6; one dynamic UndoKit product with bundled Core Data resources.
- Durable history engine and tests preserved from Folio; 79 tests executed, one opt-in scale test skipped, zero failures. CI also verifies an independent consumer can create and reopen a store.
- Consumer policy: major-version range during development (including 0.x minor updates), minor-version range during beta, exact version during release engineering; commit resolved dependency records.
- Pre-alpha: iOS qualification, schema migration commitments, and XCFramework distribution are not included. Existing documented storage/scale limits still apply.
Folio-Suite/Folio#115; extraction PR #1.