Kimosabe.AI

Changelog

All notable changes to Kimosabe.AI are documented here. Format: Keep a Changelog 1.1. Versioning: Semantic Versioning 2.0 for public artifacts (Agent SDK, OpenAPI contract). The web app itself ships continuously off main; calendar dates anchor each entry.

[Unreleased]

Added

  • In-app docs viewer: new /docs and /docs/$ routes render the markdown documentation suite (STATE, FEATURES, ROADMAP, WECHAT-PARITY, SECURITY, AGENTS, MANUAL, SUPPORT, BUSINESS, REQUIREMENTS, STANDARDS, GAMIFICATION, PROJECT_MANAGEMENT, AUDIT-A11Y, GAME-01-BETA-COMPETITION, and CHANGELOG). Uses marked and a custom .markdown-body theme that respects the Kimosabe color tokens.
  • Landing page (/) and /trust page now link to /docs so the documentation suite is discoverable without remembering markdown paths.
  • Game 01 — First Hundred: 90-day Cohort 001 beta competition spec at docs/GAME-01-BETA-COMPETITION.md. Scoring rewards real usage and high-signal bug reports; explicit anti-patterns prevent vanity gaming; founder commitments codified (48h reply SLA, no dark patterns).
  • /beta route — invite-list landing page for Cohort 001 with the honest pitch (free, founders' badge, vote on Phase 2; things will break).
  • /welcome route — 4-step post-signup onboarding that teaches the one thing that actually matters: save the recovery key.
  • docs/MANUAL.md — combined v1 user manual + system documentation, structured as the future Docusaurus sidebar so the migration is a copy-paste, not a rewrite.
  • docs/SUPPORT.md — beta-scale help-desk plan: in-app feedback as the primary channel, email + invite-only Discord as fallbacks, Discord never the system of record, explicit "when we outgrow this" trigger.
  • packages/agent-sdk-preview/ — proof-of-life Node 20+ adapter that proves the docs/AGENTS.md contract compiles and runs against the current 1:1 ECDH protocol. Exposes KimosabeAgent.login() / onMessage() / replyEncrypted(). Will be rewritten when MLS lands (ADR-0003); not consumed by the web app.
  • WCAG 2.2 AA audit checklist at docs/AUDIT-A11Y.md (NFR-08, in progress).
  • Focus-revealed "Skip to content" link in the root shell (WCAG 2.4.1).
  • Global prefers-reduced-motion: reduce honors OS setting and collapses decorative animations to ~0ms (WCAG 2.3.3).
  • .github/workflows/ci.yml — typechecks the web app and the standalone agent-sdk-preview package on every PR so the agent contract can't silently regress.
  • docs/STATE.md — 1-page "you are here" snapshot: identity, Phase 1 status, active work, the decision waiting on a human, and the sacred "out of scope forever" list.

Fixed

  • WCAG 1.4.11 (non-text contrast): --input raised from oklch 0.28 (1.32:1 vs background) to oklch 0.50 (3.21:1) so form-control borders meet AA. Decorative --border left subtle since it's never the only indicator of an interactive element. Measurements logged in docs/AUDIT-A11Y.md F-04.
  • Markdown links in the docs suite were previously unreachable from the app preview (404). They now resolve through the in-app docs viewer.

Changed

  • /, /login, /signup, /forgot-password, /reset-password, /trust, and every _authenticated/* route now expose a single <main id="main-content"> landmark wired to the skip link (WCAG 1.3.1, 2.4.1).
  • /_authenticated/new: search input is now programmatically associated with its label via htmlFor / id (WCAG 1.3.1, 4.1.2).
  • /trust roadmap updated to name MLS (RFC 9420), X3DH, sealed sender, passkeys, and Phase 6 agent participants — matches docs/ROADMAP.md.
  • docs/STATE.md, docs/FEATURES.md, and docs/WECHAT-PARITY.md sync dates updated to 2026-08-25.
  • GitHub sync confirmed live (2026-08-25). Two-way GitHub ↔ Lovable sync is connected and active: commits made in Lovable push to the connected GitHub repository automatically, and commits pushed to GitHub sync back. This supersedes the earlier note in this entry that a GitHub.com mirror was not yet connected; docs/STATE.md has been corrected accordingly.

[2026-05-09] — Documentation suite

[2026-05-09] — Documentation suite

Added

  • docs/STANDARDS.md — every public spec we anchor to (Signal, MLS, HPKE, WebAuthn, OWASP, NIST, WCAG).
  • docs/REQUIREMENTS.md — FR / NFR / SR / CR with stable IDs.
  • docs/BUSINESS.md — market, positioning, monetization, GTM.
  • docs/PROJECT_MANAGEMENT.md — cadence, DoD, RACI, risk register.
  • docs/GAMIFICATION.md — Curate Your Brain ladder (privacy-safe).
  • docs/agent-sdk.openapi.yaml — OpenAPI 3.1 stub for the Agent SDK.
  • docs/adr/ — ADRs 0001–0005 (process, backend, MLS, recovery, PWA).
  • docs/agents/ — per-framework integration notes (Hermes, OpenClaw, Agent Zero).

Changed

  • docs/ROADMAP.md Phase 2 names MLS / X3DH / Double Ratchet / HPKE / Sealed Sender / Passkeys explicitly.
  • .lovable/plan.md rewritten — removed stale "Sage" + open-question text.
  • README.md documentation index expanded.

[2026-05-08] — Read receipts (opt-in)

Added

  • Per-conversation read_receipts_enabled toggle.
  • message_receipts table with RLS + Realtime.
  • Single ✓ (delivered) / double ✓ (read) UI on sent messages.

Security

  • Receipts are opt-in per conversation; visibilitychange gates "read" marking to active tabs.

[2026-05-08] — PWA shell + offline outbox

Added

  • Service worker (public/sw.js) — NetworkFirst HTML, CacheFirst static. Skips /api/* and Supabase calls so ciphertext is never cached.
  • IndexedDB-backed outbox (src/lib/outbox.ts) — queues encrypted rows while offline; flushes on online or app boot.

[2026-05-07] — pg_cron expired-message purge

Added

  • delete_expired_messages() SECURITY DEFINER function.
  • pg_cron schedule + cleanup-expired-messages edge function with CRON_SECRET auth.

[2026-04 → 2026-05-06] — Phase 1 core

Added

  • Email + password auth, username discovery, @handle registration.
  • ECDH P-256 identity keys generated in browser.
  • Recovery key (24 base32 chars, ~120 bits).
  • Private key wrapped twice (password + recovery code) in wrapped_keys.
  • 1:1 E2EE chat (ECDH → HKDF-SHA-256 → AES-GCM-256).
  • Encrypted image attachments via Supabase Storage.
  • Disappearing messages (off / 1d / 7d).
  • Settings: change password, rotate recovery key, export identity, delete account.
  • Zero-knowledge recover-with-key edge function.
  • Public threat model at /trust.
  • PWA manifest + 430px mobile-first design.