nomos_flutter 0.25.0
nomos_flutter: ^0.25.0 copied to clipboard
Drive the real Nomos GitHolon from a Flutter app — a local-first domain runtime. iOS runs the native-AOT kernel (no WebView memory cap); Android/macOS use a hidden secure WebView. Write TypeScript dom [...]
0.25.0 #
- Kernel pin →
c8152e9d…(the GENERICISATION cloud kernel, deployed worker15080fcf): the kernel names NO domain/directive/aggregate by ad-hoc literal — AuthProvider, the x5c rotation trigger, the birth-cert seed, and the genesis-install primitives are first-class (kernel-owned, the law compiles to them, drift-guarded); parent-attested birth reads its owner/cert locators from the law's declaration; the keyless arm reads its directive + payload fields from the law. Behaviour-identical + era-safe — every live ledger replays byte-green (verdictb6fea50e…unchanged), so this is a transparent superset of 0.24.0. - Supersedes the (never-published) 0.23.0/0.24.0 keyless line — this is the first pub.dev release carrying
the keyless self-serve home birth AND the genericisation kernel. Hash-pinned xcframework uploaded to
/v1/runtime/ios/NomosKernel-c8152e9d….xcframework.zip. - A native client built before this is on a stale kernel —
rm -rf ios/Frameworks/NomosKernel.xcframeworkthenpod installto re-fetch.
0.24.0 #
- Keyless self-serve home birth —
HomeBirth.keyless(...). A new user births their home with NO admin and NO server in the loop: pass their IdP token asNomosScope.home(authToken:)andbirth: HomeBirth.keyless(parent:…, frameworkHash:…, lawHash:…, verifiedVia: <the parent's AuthProvider issuer>). The bundled@githolon/clientceremony mints the device key, bootstraps it on the parent viaenrollFirstDevice(the on-chain device-bound IdP attestation the kernel re-verifies on every lane), then births the home — all in the embedded engine. Runner assets rebuilt with the ceremony. - NOTE: under the kernel's STRICT device-binding default the token must carry a
nonce/cnf== sha256(the device pubkey). A plain IdP token works when the parent setsrequireDeviceBinding:false(the bounded-window lane); full strict device-binding via a sign-in callback is the documented follow-up.
0.23.0 #
- Kernel pin →
75014bd1…(the keyless verified-first-device cloud kernel — superset of the signer-schema kernel): a brand-new IdP-verified user can self-enroll its FIRST device-signer on a WARRANTED workspace from an on-chain, device-bound IdP attestation (enrollFirstDevice) — self-serve + peer-to-peer, no admin/server in the loop. Era-gated + inert unless a law composes the directive, so every existing chain replays byte-identically (verdictb6fea50e…unchanged). Hash-pinned xcframework uploaded to/v1/runtime/ios/NomosKernel-75014bd1….xcframework.zip. - A native client built before this is on a stale kernel —
rm -rf ios/Frameworks/NomosKernel.xcframeworkthenpod installto re-fetch.
0.22.0 #
- Kernel pin →
eeadb8f6…(the workspace-wide signer-schema cloud kernel): a SIGNED control-plane offer (e.g.nomos/installDomain— a deploy) on a WARRANTED workspace now resolves thesignerrelation schema from the union of ALL installed law, not the offer's own domain. Before, a signed deploy to a warranted ws was refusedno-relation-schema(theidentity:signertype lives in the governance package, not the nomos controller). The native iOS shell runs this kernel so it stays byte-identical to cloud/web — proven THREE ways on the pinnedverifyChainfixture (verdictb6fea50e…, unchanged ⇒ era-safe): wasm2c-native AOT,node:wasi, and the browser wasi shim all produce the same 435-byte response. The hash-pinned xcframework (device+sim+macos) is uploaded to the cloud runtime store (GET /v1/runtime/ios/NomosKernel-eeadb8f6….xcframework.zip→ 200). - A native client built before this is on a stale kernel —
rm -rf ios/Frameworks/NomosKernel.xcframeworkthenpod installto re-fetch (the prepare_command only re-fetches when the local framework is absent).
0.21.1 #
- Native (iOS) text-codec shim — no tenant patch needed. Bare JavaScriptCore (the
flutter_jsengine) has noTextEncoder/TextDecoder; the client orchestration uses them, so the native path crashed at load and required a hand-patch. The bundlednomos-native.jsnow carries a pure-JS, WHATWG-correctTextEncoder/TextDecoder(byte-identical to the platform impl, parity-tested), soNomosScopeboots on-device out of the box. The asset is now auto-synced from the build (no stale bundle). If you carried a localnative_transport.dartpolyfill, you can delete it.
0.21.0 #
- Kernel pin →
04a04ef3…(the serve-path fold-root certification + warrant verify cloud kernel): the iOS native shell now runs the S1 serve-cert kernel and can verify its OWN warranted home locally (the warrant-flip is LAW-only, but the shell needs this kernel for the serve-cert + on-device home verify). Byte-identical to cloud/web — proven THREE ways on the pinnedverifyChainfixture (verdictb6fea50e…): the wasm2c-native AOT build (the iOS kernel), Node's builtinnode:wasi, and the@bjorn3/browser_wasi_shimthe cloud edge + web peers run all produce the same 435-byte response. The hash-pinned xcframework (device+sim+macos) is rebuilt via wasm2c (--module-name holon, 8 outputs) and uploaded to the cloud runtime store (GET /v1/runtime/ios/NomosKernel-04a04ef3….xcframework.zip→ 200). - A native client built before this is on a stale kernel —
rm -rf ios/Frameworks/NomosKernel.xcframeworkthenpod installto re-fetch (the prepare_command only re-fetches when the local framework is absent).
0.20.0 #
- The native (iOS) path now runs the ONE
@githolon/clientorchestration (index.mjs) inside an embedded JS engine (flutter_js / JavaScriptCore) over an FFI kernel provider + adart:iofetch — the Dart_Holonreimplementation of connect/offer/sync/the ceremony is DELETED. One orchestration on every peer; JS↔Dart drift is structurally impossible. THE RAM LAW: the ~1GB holon stays in NATIVE memory — the JS engine runs only the light control plane; packs/snapshots never enter the JS heap (proven: export keeps bytes native). - Authority:
NomosScope.home(subject:)binds the actor onto generated clients automatically; gated directives throwMissingOfferAuthoritybefore submit.nomos_client→ ^0.20.0. - RESIDUAL: the native runtime is structurally + unit + crypto-parity (SHA-256 shim ↔ WebCrypto) proven but NOT yet validated on a physical iOS device — run a birthHome + sync on-device to confirm flutter_js boots.
0.19.0 #
- Native home-birth parity (co2). The iOS native (
dart:ffi) path now runs the full VA home-birth ceremony, matching the WebView engine. Two fixes:NomosScope.homeno longer dies when the home is unborn: nativeconnectnow TOLERATES an unborn workspace (boots an empty holon — the kernel crypto/ceremony ops need no chain state, parity with the WebView "unborn is fine"), so the birth ceremony inonConnectedactually runs. After the birth the holon delta-pulls the full born chain. (Before: nativeconnectthrew "no ledger head" and the ceremony never fired.)- The five VA ceremony bridge ops are now wired on the native transport (they were declared on the
bridge but only implemented on WebView):
mintDeviceKey,signBirthCert(kernelcert_sign),enrollDevice(offershome/enrollSigner),verifyChain, andbirthHome(the full ceremony — mint+enroll the device key → device-sign the home cert → offer the parent'sbirthHome→ poll born → verify_chain). Exact parity with@githolon/clientbirthHome. - ONE native deviation: the post-birth peer-verify runs
verify_chainon the connected holon (which connected empty to the home name and delta-pulls the born chain — a genuine fresh peer) rather than spinning up a second holon, because the native worker runs one process-singleton wasm module.
- Pairs with the cloud fix (
worker f7dd87a2) that persists offer-effect-born children to their own custody — so a nativebirthHomenow lands a child with a real head (washead:null).
0.18.0 #
- Kernel pin →
169d1fee…(the Verified Authority cloud deploy): VA core, the peer-sovereign birth-cert root-of-trust, offline-births enforced at the custody boundary, and the drift-proofcert_signop. Byte-identical to cloud/web (prove_byte_identity.shgreen — the self-test fixture replays identically); the hash-pinned xcframework is uploaded to the cloud runtime store. nomos_client→^0.18.0.NomosScope.homenow runs the VA birth ceremony (mint + enroll the device signing key, device-sign the home cert viacert_sign, offerbirthHome, poll + verify).- A native client built before this is on a stale kernel —
rm -rf ios/Frameworks/NomosKernel.xcframeworkthenpod installto re-fetch (the prepare_command only re-fetches when the local framework is absent).
0.17.0 #
- FIX the invalid plugin spec that broke
0.16.2on pub.dev: Android/macOS were declared with the legacypluginClass: none, which current Flutter rejects. They are now correctly OMITTED from the plugin block (consumed as a plain Dart package on those platforms; iOS keeps the native-AOT kernel plugin).0.16.2cannot be overwritten, so this is the corrected republish — pin^0.17.0(not the broken0.16.2). - Depend on
nomos_client: ^0.17.0(lockstep birth-primitive release).
0.16.2 #
- Restore Android + macOS support (hidden-WebView engine); iOS keeps the native-AOT kernel.
- Depend on the renamed
nomos_client(wasnomos_dsl).
0.1.0 #
- Initial release.
NomosScopeboots the real Nomos GitHolon (the byte-identicalwasm32-wasip1artifact) inside a hidden, secure WebView host and hands your builder a connectedNomosClient— drive it with the typed Dart clientnomos compilegenerates. - Hosts the runner over a loopback
http://127.0.0.1origin (a secure context, socrypto.subtle+ storage work) viaflutter_inappwebview— the robust WKWebView/Android-WebView embedding. macOS/iOS/Android/web.