From 783f883cb6371a74f7a426e4116cef62d853d99a Mon Sep 17 00:00:00 2001 From: hude Date: Sat, 12 Sep 2026 15:31:27 +0900 Subject: [PATCH] docs: prepare ICNativeClient 0.7.8 release --- CHANGELOG.md | 14 ++++++++++++++ README.md | 6 +++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b0c8fb..90f6792 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes are documented here. +## [0.7.8] - 2026-09-12 + +### Changed + +- Reuse validated Candid values during encoding and scan sorted record fields linearly during reply projection. +- Avoid repeated keyword-set allocation in the Swift binding generator and rebuild both bundled macOS architectures. +- Remove unused internal functions, parameters, and unreachable branches. +- Consolidate redundant tests, remove real polling waits from transport tests, and replace ineffective delegation-limit and OID cases with otherwise-valid inputs. Verify shared decoding budgets with smaller fixtures. +- Compile the plugin fixture in the renamed-checkout CI job without repeating its runtime tests. + +### Compatibility + +- Public APIs, accepted inputs, session storage, wire formats, generated Swift output, and default limits are unchanged. The bundled generator remains version 0.1.3. + ## [0.7.7] - 2026-09-09 ### Added diff --git a/README.md b/README.md index 6662759..95590f4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ICNativeClient -ICNativeClient is a Swift package for calling Internet Computer canisters from native Apple applications. Version 0.7.7 adds expiring delegated sessions from existing Ed25519 keys without retaining the root secret. +ICNativeClient is a Swift package for calling Internet Computer canisters from native Apple applications. Version 0.7.8 improves Candid processing and binding generation while preserving public APIs and wire formats. It includes principal/account helpers, a Candid DIDL codec, explicit Swift model conversion, and raw Candid-byte transport. @@ -312,6 +312,10 @@ let sharedStore = ICIdentityStore( Every participating target must include that access group in its Keychain Sharing entitlement. ICNativeClient does not migrate items between access groups or from application-specific storage formats. If the shared item is initially absent, authenticate and save the session from the main application before an extension attempts to load it. An invalid access group or missing entitlement is reported as `ICClientError.keychainFailure`. +## New in 0.7.8 + +0.7.8 is a backward-compatible patch release. Candid encoding reuses validated values, record projection uses a linear field scan, and binding generation avoids repeated keyword-set allocation. Redundant tests and unused internals have been removed, while delegation limits, signature validation, and shared decoding budgets retain focused regression checks. Public APIs, accepted inputs, session storage, wire formats, and default limits are unchanged. The bundled generator remains version 0.1.3, with rebuilt arm64 and x86_64 binaries and unchanged generated Swift output. + ## New in 0.7.7 0.7.7 adds `ICAuthSession.delegating(ed25519PrivateKey:configuration:options:)` for applications that already own an Ed25519 identity. Each call creates a fresh session key and signed delegation, with existing lifetime and target validation. The root secret is not retained in the session or Keychain record. Existing session storage and wire formats are unchanged; the bundled generator remains version 0.1.3.