- Add vitest unit tests for Zustand app store state transitions (6 tests) - Add mock speech-engine WebSocket protocol integration test (spawns server.py --mock on a free port) - Add ESLint 10 flat config with typescript-eslint; add typecheck/lint/test scripts to package.json - Fix pre-existing tsc -b breakage via noEmit in tsconfig.node.json; add dedicated tsconfig.tests.json project for Node-side tests - Track src-tauri/Cargo.lock for reproducible Rust builds; enable protocol-asset Tauri feature - Ignore generated artifacts (*.tsbuildinfo, src-tauri/gen/, emitted vite.config.js/.d.ts); remove stale emitted vite config copies - Update AGENTS.md agent guide (demo scope lock, roadmap, verification commands) - Add HANDOFF.md documenting Phase 0 state and remaining steps for the next agent
MeetVault
Self-hosted meeting recording and intelligence platform. The user machine handles local transcription; the backend API manages auth, metadata, uploads, summarization jobs, tasks, and reminders. Large media files are stored in SeaweedFS via its S3-compatible API.
Architecture
User machine:
- Record audio/video
- Local Whisper STT → transcript
- Upload to SeaweedFS (presigned URLs)
- Send transcript to backend
Backend API:
- Auth, users, subscriptions
- Meeting metadata
- Transcript ingestion
- Summarization jobs
- Task extraction
- Reminder scheduling
- PostgreSQL for structured data
Quick start
Backend
- Start PostgreSQL and run the schema SQL from
Overview/README.md(includespgcryptoextension, all tables, indexes, triggers). - Run the backend API server.
- Spin up SeaweedFS and configure presigned URL endpoints on the backend.
Desktop client
Run the Tauri + React demo in Wireframes/Desktop/MeetVault-Desktop-Demo/. It supports local Whisper transcription, speaker diarization via diart, live overlay window, recording capture, and mock speech-engine mode for UI testing without ML models.
Stack (MVP)
Frontend: React / Next.js
Backend: FastAPI or Node.js
Database: PostgreSQL + processing_jobs table as job queue
Media storage: SeaweedFS
Local STT: Whisper / whisper.cpp
No Kafka, Elasticsearch, Kubernetes, vector DBs, or Redis are needed for the MVP.