Changelog
All notable changes across every EchoMirror SDK package are listed here in reverse-chronological order, grouped by release date and tagged by package.
This page is auto-generated at docs-build time from the individual
CHANGELOG.md files in each package directory. Do not edit it manually —
your changes will be overwritten on the next build.
📡 Subscribe — RSS/Atom feeds for this changelog are available at rss.xml / atom.xml.
Last generated: 2026-08-29
2026-08-19
@echomirror/analytics npm — v0.1.0
Added
- Initial release of
@echomirror/analytics AnalyticsClient— privacy-safe emotional UX event tracker; no PII by defaulttrack(event, properties)— fire-and-forget event emission with local queue + flushaggregate(events)— client-side aggregation (counts, averages, percentiles) before upload- Configurable transports:
HttpTransport(batched POST) andNoopTransport(testing) PrivacyFilter— strip or hash any property keys matching a configurable deny-listLocalStorageQueue— persists unsent events across page reloads; configurable max size- Fully standalone — zero dependencies on other
@echomirror/*packages - ESM-only build (
"type": "module")
@echomirror/core npm — v0.1.0
Added
- Initial release of
@echomirror/core EchoMirrorClientwith API key and JWT auth, configurable base URL and network (testnet/mainnet)EchoMirrorConfigbuilder withtestnet()/mainnet()convenience constructors- Shared TypeScript types:
MoodEntry,StellarBalance,EchoUser,ApiResponse,EchoMirrorError setAuthToken/clearAuthTokenfor runtime JWT management- Full ESM + CJS dual-build via
tsconfig
@echomirror/mood npm — v0.1.0
Added
- Initial release of
@echomirror/mood logMood(client, entry)— record a mood entry (score 1–10, optional note and tags)getMoodHistory(client, options)— paginated mood history with date-range filteringgetMoodStreak(client)— current and longest daily-logging streakgetAIReflection(client, entryId)— fetch the AI-generated reflection for a mood entrydeleteMoodEntry(client, id)— remove a mood entry by ID- Full type coverage with
MoodEntry,MoodStreak,MoodHistoryOptions
@echomirror/react npm — v0.1.0
Added
- Initial release of
@echomirror/react <EchoMirrorProvider>— top-level context provider; acceptsapiKeyandconfiguseEchoMirror()— access the underlyingEchoMirrorClientanywhere in the treeuseMoodStreak()— auto-fetching hook for the current user's streak with loading / error statesuseStellarBalance(publicKey)— reactive hook for XLM + ECHO balance- React 18 and React 19 compatible; peer dependency
react >= 18.0.0
@echomirror/social npm — v0.1.0
Added
- Initial release of
@echomirror/social getGlobalFeed(client, options)— paginated global mood feedgetLeaderboard(client, period)— weekly / monthly / all-time streak leaderboardfollowUser(client, userId)/unfollowUser(client, userId)— social graph managementgetFeed(client, options)— personalised feed from followed users- Real-time feed updates via
FeedSubscription(SSE-backed) - In-memory LRU cache for leaderboard results; configurable TTL
- Optional React helpers (
useFeed,useLeaderboard) — tree-shaken, peer-dep on React
@echomirror/stellar npm — v0.2.0
Added
- Multi-wallet adapter: Freighter, Albedo, and xBull — unified
connect()/sign()interface getBalance(client, publicKey)— XLM + ECHO token balance via Horizon, no API round-tripsendEcho(client, params)— build, sign, and submit ECHO token payment in one callfundTestnetAccount(publicKey)— Friendbot wrapper for testnet accountsisValidStellarAddress(address)— Ed25519 address validation (pure, no network call)- Typed error hierarchy:
StellarConnectionError,InsufficientFundsError,TransactionError, and more (17 typed subclasses) - Retry middleware with configurable exponential back-off
- Playwright e2e tests for Freighter wallet flow
@echomirror/wasm npm — v0.1.0
Added
- Initial release of
@echomirror/wasm - Dual-target wasm-pack build:
wasm-web(browser ESM) andwasm-node(CJS for Node.js) isValidStellarAddress(address)— pure Ed25519 validation, no network callhashPublicKey(publicKey)— SHA-256 hex digest of a Stellar public keyserializeSyncCursor(cursor)/deserializeSyncCursor(bytes)— XDR-compatible cursor serialisation for the sync engineencryptMoodPayload(data, key)/decryptMoodPayload(cipher, key)— AES-GCM encryption helpers- Automatic environment detection: loads WASM binary from correct path in browser vs Node.js
WasmLoadErrorwith cause chain for clean error handling- Bundle size:
wasm-web~120 kB gzipped;wasm-node~115 kB
2026-07-01
@echomirror/stellar npm — v0.1.0
Added
- Initial release with basic Freighter wallet integration and XLM balance queries
Undated releases
@echomirror/social npm — vUnreleased
Fixed
LeaderboardClientnow sends the canonicallimitquery parameter and unwraps leaderboard responses from{ entries }instead of expecting a bare array.
@echomirror/stellar npm — vUnreleased
Fixed
getTransactionHistorynow sends the canonicalpublic_keyquery parameter expected by the wire contract. This corrects the previously published camelCasepublicKeyrequest shape.
Packages without changelogs yet
The following packages do not yet have a CHANGELOG.md file and are excluded
from this page. Once they adopt Changesets (JS) or start maintaining a
CHANGELOG.md alongside their Cargo.toml / pubspec.yaml, entries will
appear here automatically:
echomirror-coreechomirror-ffiechomirror-pythonechomirror-stellarechomirror-syncechomirror-wasmechomirror_sdk (Flutter)
Rust crates — the source of truth for versioning is
Cargo.toml. UntilCHANGELOG.mdfiles are added to each crate, refer to the GitHub Releases page for historical change notes.Flutter —
pubspec.yamltracks the version; aCHANGELOG.mdwill be added once pub.dev publishing is set up.