Skip to content

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-echoes per packages/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 direct fetch/WebSocket examples 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 is mkdocs-developer.yml.

Internal

  • Repo-root mkdocs.yml stub deleted (4-line file with no nav). mkdocs-developer.yml is the sole MkDocs config; .github/workflows/deploy-developer-portal.yml references it explicitly.
  • CLAUDE.md folder-tree mention of mkdocs.yml removed (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 [email protected]. Both governed by Singapore law.
  • cla.yml workflow 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.md post-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 to main that touches client/**, the public mirror receives a clean replay so external contributors always see the current shipping client.
  • client/.github/workflows/cla.yml mirrored to public root .github/workflows/cla.yml via 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-tailwindcss removed from .prettierrc to resolve the dual class-sorter conflict with eslint-plugin-better-tailwindcss); .prettierignore for src/types/generated.ts; community surface — CODEOWNERS, dependabot.yml, SECURITY.md, .env.example, .gitignore.
  • scripts/pre-commit augmented with npm run format:check step.

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 (currently client/package.json). pnpm, yarn, and bun are forbidden as installers — package-lock.json is the only committed lockfile and those tools do not read it (silently bumping transitive dependencies past their pins). .github/workflows/install-discipline.yml rejects any PR or main-push that introduces pnpm-lock.yaml, yarn.lock, or bun.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} and GET /api/v1/public/users/{user_id} — read public profile by user ID; the public variant is unauthenticated and visibility-gated (returns 404 for Private profiles, 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/items and GET /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.yml on push to main affecting docs/developer-portal/**, mkdocs-developer.yml, crates/api/src/routes/**, crates/api/src/openapi_schemas.rs, or crates/api/src/bin/generate-openapi.rs. The API Reference page renders a build-time openapi.json snapshot 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_reason 1..=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 WorldEventPayload variants 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.refunded handler. 5 new EmailTemplate::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}/share and GET /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_KV binding).
  • 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/height fallback 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.me migrated to canonical echolabsme.com. API base now https://api.echolabsme.com; static client served from https://echolabsme.com via Cloudflare Pages; WebSocket served from wss://api.echolabsme.com/ws/.... cors_allowed_origins updated to include both https://echolabsme.com and https://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 PaymentProvider trait.
  • 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.com in 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/docs and 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)