- Backend (Python 3.9+/FastAPI,
app/)- Pydantic settings (
app/core/config.py) - Service layer: note, search, chat, session, chunking, citation
- Routes by domain under
app/routes/ search.py: in‑memory cosine engineparser.py: Google Keep JSON ingestionimage_processor.py: CLIP image embeddings
- Pydantic settings (
- Frontend (React 19 + TypeScript + Vite 6,
client/)- Tailwind v4 theming
- Hooks (
useSearch,useChat, etc.) and component‑per‑feature structure
- Cache under
./cache/for embeddings and sessions - Dev scripts:
scripts/dev.ps1/dev.sh - Config via
.env(see.env.example)
# backend
python -m uvicorn app.main:app --reload
# frontend
cd client && npm run dev
# combined development (Windows)
.\scripts\dev.ps1
# tests
pytestThis project uses a memories.md file to record lessons learned, solutions to problems, and important notes from implementations. Before starting a new task, check memories.md to avoid repeating past mistakes.
- Before implementing: Read
memories.mdto understand past solutions - After solving a problem: Document the issue, root cause, and solution in
memories.md - Include key details:
- Problem description
- Root cause
- Solution with code changes
- Key lessons learned
- Files modified