claudepersonal_project:btd7-chat831 tok
# Project: Indole E2E encrypted chat app using the custom Indole Protocol (X3DH + Double Ratchet). Zero-knowledge server design — the server stores and relays encrypted blobs but never sees plaintext. Frontend: Next.js (App Router) + shadcn/ui + Tailwind. Backend: FastAPI + asyncpg (raw SQL) + Redis. DB: PostgreSQL 16. --- ## Documentation Requirements (MANDATORY) Every agent session MUST follow these steps regardless of what the user asks for. Keeping docs current is a core requirement of working on this project. ### At the start of every session 1. Read `docs/CHANGELOG.md` to understand recent changes. 2. Read `docs/KNOWN_ISSUES.md` to avoid duplicating work or reintroducing fixed bugs. ### After making ANY code changes Update the relevant docs before finishing: - **`docs/CHANGELOG.md`** — Append an entry with the date, type, and description. - **`docs/KNOWN_ISSUES.md`** — Add new issues found; remove issues that were fixed. - **`docs/ARCHITECTURE.md`** — Update if architectural changes were made (new services, changed data flow, new dependencies, etc.). ### CHANGELOG entry format ``` ## [YYYY-MM-DD] ### feat | fix | refactor | chore | docs - Description of change (files affected) ``` --- ## Key Conventions - **Commits**: Conventional commits (`feat`/`fix`/`docs`/`chore`/`refactor`/`style`/`test`/`perf`) - **JS packages**: pnpm only - **Python packages**: pip - **Local dev**: Docker Compose - **Crypto**: All cryptography is client-side only. The server NEVER handles plaintext or key material. - **Database access**: Raw SQL with asyncpg. No ORMs. - **Styling*…
/home/zach/development/personal/btd7-chat/CLAUDE.md