API Changelog¶
All notable platform changes since v0.5.0. Lane numbers reference the internal Lane / Commit identifiers used in commit messages and docs/claude/current-state.md; squash-merge SHAs are listed for traceability.
v0.19.0 — Lane I 1d (May 2026)¶
Changed¶
- ME-DXG-001 (Developer Experience Guide) v1.3 → v1.4: §1 Enforceable-from clarified to Lane I Commit 1; §3/§3.6/§4.4/§6.1/§7.1 canonical-domain placeholders eliminated (zero hostname placeholders remain anywhere in the document); §5 Contributing now references the Lane I 1c published CLA Gist + cla-assistant.io bot + ME-ILF-001 v1.1 governing-law cross-ref; §6 SDK section rewritten to "TypeScript SDK (In Development)" reflecting the unpublished state of in-repo
packages/sdk(@echolabs/multiverse-echoesperpackages/sdk/package.json). - Developer portal: SDK references aligned across 5 files (
sdk.md,getting-started.md,guides/getting-started-api.md,guides/building-custom-client.md,websocket-events.md) — npm-install lines replaced with directfetch/WebSocketexamples until first npm publish. - ME-PLB-001 (Development Playbook) v2.1 → v2.2: §19.1 folder tree no longer references the deleted stub
mkdocs.yml. The live MkDocs config ismkdocs-developer.yml.
Internal¶
- Repo-root
mkdocs.ymlstub deleted (4-line file with no nav).mkdocs-developer.ymlis the sole MkDocs config;.github/workflows/deploy-developer-portal.ymlreferences it explicitly. - CLAUDE.md folder-tree mention of
mkdocs.ymlremoved (Rule #14 sibling-fix).
v0.18.0 — Lane I 1c — CLA suite publish + cla.yml Gist wiring (May 2026, squash-merge 28d2155)¶
Added¶
- Echo Labs Contributor License Agreement published as a public Gist at gist.github.com/asiamtm/3f9566d5c60080dfe23e5d6c39984034. ICLA (individual) is the default; CCLA (corporate) is available on request via conduct@echolabsme.com. Both governed by Singapore law.
cla.ymlworkflow on the open-source client repo wired to the published Gist via cla-assistant.io. First-time contributors are prompted to sign before their PR can be merged.- ME-ILF-001 (IP & Legal Framework) v1.0 → v1.1: §5.2 amendment + §1.0 Founder-accepted-risk carve-out for the CLA suite. Filenames bumped to
EchoLabsME-{ICLA,CCLA}-v1.0.1.mdpost-amend (Rule #14 sibling sweep covering §8 comma + line 101 statute-name fixes parallelling CCLA DOC-3).
v0.17.0 — Lane I 1b — Mirror-sync workflow (May 2026, paperwork 63bbbb7)¶
Added¶
- Mirror-sync workflow propagating the in-engine
client/directory to the public OSS mirror at github.com/echolabs-me/multiverse-echoes-client. On every push tomainthat touchesclient/**, the public mirror receives a clean replay so external contributors always see the current shipping client. client/.github/workflows/cla.ymlmirrored to public root.github/workflows/cla.ymlvia the same propagation path.
v0.16.0 — Lane I 1a — Public OSS foundation (April 2026, squash-merge a7d0464)¶
Added¶
- Open-source client foundation under MIT License at github.com/echolabs-me/multiverse-echoes-client. Initial publish: 122-file Prettier pass (
prettier-plugin-tailwindcssremoved from.prettierrcto resolve the dual class-sorter conflict witheslint-plugin-better-tailwindcss);.prettierignoreforsrc/types/generated.ts; community surface —CODEOWNERS,dependabot.yml,SECURITY.md,.env.example,.gitignore. scripts/pre-commitaugmented withnpm run format:checkstep.
v0.15.0 — Lane MOCK_SHARD-cleanup (April 2026, squash-merge 46f53dd)¶
Internal¶
- E2E + a11y test infrastructure — MOCK_SHARD canonical wire shape parity with the server contract. Drives the e2e accessibility suite to zero failures across mock-API render coverage.
v0.14.0 — Lane Install-Discipline (April 2026, squash-merge 8f81983)¶
Internal¶
npm ci-only install discipline codified for all Node projects in the repo (currentlyclient/package.json).pnpm,yarn, andbunare forbidden as installers —package-lock.jsonis the only committed lockfile and those tools do not read it (silently bumping transitive dependencies past their pins)..github/workflows/install-discipline.ymlrejects any PR ormain-push that introducespnpm-lock.yaml,yarn.lock, orbun.lockb.
v0.13.0 — Lane SEO-LangPage (April 2026, squash-merge 69e2dba)¶
Added¶
- Canonical,
hreflang, and Open Graph tags on the/(root) public page across all 21 supported locales. Improves search-engine canonicalization and social-preview surfaces.
v0.12.0 — Lane E — Public Pages + Developer Portal launch (April 2026, squash-merges 6e61337 + 97db344)¶
Added¶
GET /api/v1/users/{user_id}andGET /api/v1/public/users/{user_id}— read public profile by user ID; the public variant is unauthenticated and visibility-gated (returns 404 forPrivateprofiles, suspended accounts, accounts pending deletion, deleted accounts; uniform 404 surface so visibility state cannot be inferred).GET /api/v1/users/{user_id}/echoes— list a user's public Echoes.GET /api/v1/marketplace/itemsandGET /api/v1/marketplace/items/{item_id}— browse marketplace catalog.POST /api/v1/marketplace/purchase— purchase a marketplace item (request body:{ item_id }).- og-router Cloudflare Worker extended with
/users/{user_id}crawler dispatch path consuming the new public-user endpoint; existing/share/{token}Lane H surface preserved.
Public Surface¶
- MkDocs Developer Portal live at developers.echolabsme.com. Auto-deployed via
.github/workflows/deploy-developer-portal.ymlon push tomainaffectingdocs/developer-portal/**,mkdocs-developer.yml,crates/api/src/routes/**,crates/api/src/openapi_schemas.rs, orcrates/api/src/bin/generate-openapi.rs. The API Reference page renders a build-timeopenapi.jsonsnapshot via self-hosted Redoc. - New public pages on the main client at
/users/{user_id}(UserProfilePage),/marketplace(MarketplacePage), and the About page.
v0.11.0 — Lane C — Subscription Health (April 2026, squash-merges bd15ac1 + 80eda52)¶
Added¶
GET /api/v1/me/billing-health— read your current dunning state (5-phase state machine: Active, GraceHardWarning, Suspended, Cancelled, Recovered) and account-level billing snapshot.GET /api/v1/admin/billing/dunning-states— admin-only list of users in non-Active dunning phases.GET /api/v1/admin/billing/revenue-snapshots— admin-only daily revenue-snapshot history.POST /api/v1/admin/billing/dunning-states/{user_id}/{provider}/override— admin override of dunning phase (override_reason1..=500 chars, audit-logged).POST /api/v1/admin/billing/revenue-snapshots/trigger— admin synchronous run of the revenue-snapshot pass.GET /api/v1/admin/billing/notification-dead-letters— admin-only list of failed billing-notification deliveries.POST /api/v1/admin/billing/notification-dead-letters/{user_id}/{kind}/{period_anchor_unix}/redrive— admin retry of a dead-lettered notification.GET /api/v1/admin/billing/dunning-pass-reports— admin-only ring-buffer of recent dunning-pass observability reports.- 3 new
WorldEventPayloadvariants exposed via dashboard WebSocket:PaymentFailed,DunningPhaseChanged,RevenueSnapshotGenerated. - BillingBanner client component with WS-driven live updates (5 banner variants — GracePeriod, HardWarning, Suspended, RefundReceived, Recovered).
- Cross-provider in-app subscription-health notifier with Stripe
charge.refundedhandler. 5 newEmailTemplate::BILLING_*constants with 210 Tera template files (10 EN + 200 non-English across 21 supported locales).
Changed¶
- ME-MIS-001 (Monetisation & Influence System) v1.5 → v1.10 across the lane (new §5.4 dunning state machine, §5.4.5 banner copy, §5.4.6 admin override, §5.4.7 cross-provider notifier, §5.4.7.3 dead-letter ledger).
v0.10.0 — Lane H — Share Subsystem (April 2026, squash-merge ca6741f)¶
Added¶
POST /api/v1/feeds/{item_id}/shareandGET /api/v1/feeds/share/{token}— generate and resolve share tokens for personal-feed items. Token TTL defaults to 30 days; expired tokens 404 cleanly. Snapshot stored in Cloudflare KV (SHARE_SNAPSHOTS_KVbinding).- og-router Cloudflare Worker
/share/{token}branch — unconditional dispatch (humans + crawlers both hit the worker; share landing has no SPA route equivalent). Fetches the snapshot from KV and emits OG tags + canonical disclaimer +og:image:width/heightfallback for missing avatars; serves a uniform 404 for missing/expired tokens. - Viral-content monitoring admin endpoint (
GET /api/v1/admin/share/viral-content). - Share-subsystem analytics events surfaced to the client (Lane H Commit 5).
v0.9.0 — Domain cleanup v2 (April 2026, 17d008a)¶
Changed¶
- All references to
echolabs.memigrated to canonicalecholabsme.com. API base nowhttps://api.echolabsme.com; static client served fromhttps://echolabsme.comvia Cloudflare Pages; WebSocket served fromwss://api.echolabsme.com/ws/....cors_allowed_originsupdated to include bothhttps://echolabsme.comandhttps://www.echolabsme.com.
v0.8.0 — Phase 6B/C/D — UX atmosphere + security audit + retention + deletion pipeline (March 2026)¶
Added¶
- Account deletion pipeline with grace-period revocation + cascade across all user-owned tables (Echo, DiaryEntry, Relationship, MemoryNode, content_translations, user_input_originals).
- Retention enforcer (100% coverage across user-owned tables) and Redb migrations for payment, deletion ledger, breach record models.
- FLUX 1280×720 image generation with batch endpoint, image-prompt diversity, Community Pulse length filter.
Changed¶
- Phase 6D security audit close-out (Sessions 085-088). Live B200 deploy verification pinned the audited surface in production.
- GPU shutdown helper (
scripts/start.sh::stop_gpu_service) — SIGTERM + 60s grace + SIGKILL only after grace, preventing orphaned VRAM allocations on PyTorch sidecars.
Internal¶
- ruff + mypy pre-commit + CI for
services/Python sidecars; Python 3.12 modernization across the repo.
v0.7.0 — Phase 6A — Billing infrastructure (March 2026)¶
Added¶
- NOWPayments (cryptocurrency) and Xaman (XRP wallet sign-in) payment provider implementations against the
PaymentProvidertrait. - Stripe payment integration (Phase 6A close).
- Billing surface integrated into the API: subscription tier enforcement, webhook handlers, payment record persistence.
v0.6.0 — Phase 5 — Visual polish + video + PDF export + initial SDK + Developer Portal expansion (February 2026)¶
Added¶
- Video pipeline (talking-Echo highlights via MuseTalk + LivePortrait + voice classifier).
- PDF Story Export — generate per-Echo or per-shard PDFs from accumulated diary entries + life events.
- Initial TypeScript SDK at
packages/sdk/(in-development; not yet published to npm — see SDK page). - Developer Portal expansion (Phase 5C Step 14) — first iteration of the MkDocs portal that became
developers.echolabsme.comin v0.12.0.
Changed¶
- Visual polish pass + animation/transition refinement + reduced-motion audit + canvas 2D color extraction.
v0.5.0 — Phase 4 (March 2026)¶
Added¶
- Direct Echo Conversation endpoints (
/echoes/{id}/conversations,/conversations/{id}/messages) - Oracle assistant endpoint (
/oracle/ask) - Search endpoints (
/search/echoes,/search/diary,/search/events,/search/shards,/search/messages) - Story export endpoints (
/account/me/export) - API key management (
/keys) - Account deletion with grace period
- Notification preferences endpoints
- Admin dashboard endpoints (admin-only)
- OpenAPI spec at
/api/docsand Swagger UI at/api/docs/ui
v0.4.0 — Phase 3 (March 2026)¶
Added¶
- Shard management endpoints (public/private creation, access control, travel)
- Channel system with 5 channel types
- Channel messages with auto-moderation
- Social graph endpoints (follow, block, mute)
- User reporting system
- Community moderation tools
- Discord bridge
- Global events (admin)
- WebSocket streams for Shards and Channels
v0.3.0 — Phase 2 (February 2026)¶
Added¶
- Multi-Echo tick processing
- Echo relationships and encounter system
- Hibernation state machine
- Multi-Echo tier enforcement
v0.2.0 — Phase 1 (January 2026)¶
Added¶
- Echo CRUD endpoints
- WebSocket Echo event streaming
- Personal feed and notifications
- Influence point system
- User account management (password reset, data export, sessions)
- System tick endpoint (admin)