tisane 2.0.2 copy "tisane: ^2.0.2" to clipboard
tisane: ^2.0.2 copied to clipboard

Tisane is a decentralized, offline-first Data Mesh integration layer for Flutter, enabling secure FFI communication and conflict-free data synchronization.

2.0.2 #

Fixed #

  • Account isolation, part 2 (security): 2.0.1 gave each wallet its own box, but any call to initializeTTStore() / getHiveBox() with no accountKey (bootstrap paths and per-domain repositories that don't carry the walletId) would close the signed-in wallet's box and reopen the shared legacy secure-vaultBox — so subsequent reads/writes pooled back into the box every account can read. getHiveBox now never downgrades a wallet-scoped box to the shared box: a no-accountKey call keeps the currently-open wallet box open. Only an explicit switch to a different wallet closes it. Closes the residual cross-account leak the per-domain repositories re-opened.

2.0.1 #

Fixed #

  • Account isolation (security): the local vault opened a single fixed Hive box (secure-vaultBox) shared by every wallet on a device, so a second account could read the first account's records. getHiveBox / initializeTTStore now accept an accountKey and open a per-wallet box (secure-vaultBox-<key>), closing the previous wallet's box on switch — no data loss, no cross-account leak. Callers pass the wallet public key.

2.0.0 #

Changed #

  • Internal refactor: every source file is now ≤ 200 lines. infusion_manager, infusion_types, tt_graph, tt_link and the Infusion security middleware were split into cohesive part/extension files. No public symbols changed — the seal/open per-field logic moved to InfusionFieldProtector, the static InfusionManager proxy and deprecated TTLink aliases moved to their own units. Debug logging was removed from the Infusion vault path.

Security (BREAKING) #

  • Infusion is now the sole cryptography provider. Removed the entire legacy GUN-SEA(R) stack (src/sear/) and its package:webcrypto / package:crypto dependencies. No third-party crypto library remains; all crypto goes through infusion_ffi (native FFI) and its bundled WebAssembly backend on web.
  • Bumped infusion_ffi to ^1.5.0 (stable), which enforces capability expiry on every open (previously exp_ts was never validated at the FFI/WASM boundary), rejects malformed key material instead of silently using an all-zero key, and zeroizes secret key material on dispose.

Removed (BREAKING) #

  • Removed TTSeaClient, TTUserApi, UserReference, UserCredentials and the GUN-style alias + password user/auth API. None of these were consumed by the apps; an Infusion-based identity (BIP-39 mnemonic → ed25519) should be built on Infusion when a real consumer needs it.
  • Removed src/sear/* (sign, verify, secret, work, pair, certify, encrypt, decrypt, unpack, settings, sha256, shims, pseudoRandomText, base64) and src/types/sear/types.dart from the public API.
  • Removed the unused, broken _internal_crypto_util.dart.

1.2.0-dev.3 #

  • Bump infusion_ffi dependency to ^1.4.4-dev.1 for web/Wasm support.
  • Export VerifyResult and add static Infusion.cid() helper.

1.2.0-dev.1 #

  • Refactor: InfusionManager is now a Singleton Infusion class with dependency injection for storage, improving testability.
  • Feature: Added InfusionStoragePort allowing custom storage backends (e.g., memory for testing).
  • Feature: Metadata retrieval for Infusion identity.
  • Fix: Enhanced TTClient.getValue with better timeout handling and resource cleanup.
  • Fix: Fail fast with a clear error when Infusion key material cannot be persisted.
  • Web: Added web runner files to example/ and validated the Flutter web build path against infusion_ffi 1.4.0-dev.1.

1.1.2 #

  • Debug: Add detailed Infusion init/seal/open logs to trace vault lifecycle and payload flow.
  • Chore: Bump infusion_ffi to 1.3.20 for the latest multi-platform binaries and Android loader fixes.

1.1.1 #

  • Chore: Remove UI bootstrap entrypoint from package library (lib/main.dart).
  • Chore: Clean local vault artifacts from the repo and ignore them going forward.
  • Chore: Drop unused cupertino_icons dependency.

1.1.0 #

  • Feature: Full Infusion integration with structured envelopes (INFJ), AAD, policies (private/shared/public), and Cap Tokens.
  • Feature: Persist public identity (author/owner) from mnemonic and expose exportIdentity.
  • Docs: Expanded multilingual documentation with core concepts and usage guides.

1.0.2 #

  • Docs: Updated README with multilingual support (PT-BR, EN-US, ES).
  • Docs: Added comprehensive documentation for package usage.
  • Example: Added example/ directory with a working demonstration app.
  • CI: Enhanced release workflow for dynamic validation.

1.0.1 #

  • Fix: Resolved CI/CD pipeline issues.
  • Fix: Updated infusion_crypto_adapter with correct linter formatting.
  • Tests: Added conditional skipping for FFI integration tests in CI environments.

1.0.0 #

  • Initial release.
0
likes
140
points
157
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Tisane is a decentralized, offline-first Data Mesh integration layer for Flutter, enabling secure FFI communication and conflict-free data synchronization.

Repository (GitHub)

License

MIT (license)

Dependencies

base64, convert, dio, flutter, flutter_secure_storage, hive, hive_flutter, infusion_ffi, meta, mutex, path, uuid, web_socket_channel, xxh3

More

Packages that depend on tisane