Remove redundant cursor styling
This commit is contained in:
parent
080b4bdaf1
commit
b24dd72ae0
93 changed files with 9058 additions and 1 deletions
87
clio-android/.claude/CLAUDE.md
Normal file
87
clio-android/.claude/CLAUDE.md
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# Phone Recorder Server
|
||||
|
||||
Encrypted audio recording server with transcript viewing capabilities.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
cd server
|
||||
nix develop # or activate venv
|
||||
uv run python main.py
|
||||
```
|
||||
|
||||
Server runs on port 8000 by default.
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
.
|
||||
├── app/ # Android app (Kotlin, Android Studio)
|
||||
├── server/ # FastAPI server (Python)
|
||||
│ ├── main.py # API endpoints
|
||||
│ ├── crypto.py # PyNaCl decryption, keypair management
|
||||
│ ├── database.py # SQLite for recordings metadata
|
||||
│ ├── importer.py # Import transcriptions from batch processing
|
||||
│ ├── cli.py # CLI tools
|
||||
│ ├── config.py # Paths, ports
|
||||
│ ├── keys/ # Server keypair (auto-generated)
|
||||
│ └── recordings/ # Decrypted audio files
|
||||
└── test_recordings/ # Test data
|
||||
```
|
||||
|
||||
## Key Commands
|
||||
|
||||
```bash
|
||||
# Run server
|
||||
cd server && uv run python main.py
|
||||
|
||||
# Run tests
|
||||
cd server && python test_crypto.py
|
||||
cd server && python test_integration.py
|
||||
|
||||
# CLI tools
|
||||
cd server && uv run python cli.py --help
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
| Endpoint | Method | Description |
|
||||
|----------|--------|-------------|
|
||||
| `/health` | GET | Health check |
|
||||
| `/api/v1/public-key` | GET | Get server public key (Base64) |
|
||||
| `/api/v1/recordings/upload` | POST | Upload encrypted file from phone |
|
||||
| `/api/v1/recordings` | GET | List recordings with transcripts |
|
||||
| `/api/v1/recordings/{id}` | GET | Get recording details |
|
||||
| `/api/v1/recordings/{id}/audio` | GET | Stream audio file |
|
||||
| `/api/v1/import/transcription` | POST | Import transcription JSON |
|
||||
| `/api/v1/highlights` | GET/POST | Manage highlights |
|
||||
|
||||
## Security Model
|
||||
|
||||
- Phone encrypts with server's public key (sealed box / X25519 + XSalsa20-Poly1305)
|
||||
- Server decrypts with private key on upload
|
||||
- Phone never stores unencrypted audio
|
||||
- Files use SREC format (chunked encryption for large files)
|
||||
|
||||
## Frontend
|
||||
|
||||
The frontend is a separate static React app in `/work/projects/view_recordings/designer_export/`:
|
||||
|
||||
```bash
|
||||
cd /work/projects/view_recordings/designer_export
|
||||
python -m http.server 3000
|
||||
# Open http://localhost:3000/RecordingsViewer.html
|
||||
```
|
||||
|
||||
## Dependencies
|
||||
|
||||
- Python 3.x with uv
|
||||
- PyNaCl (libsodium bindings)
|
||||
- FastAPI + uvicorn
|
||||
- SQLite (via database.py)
|
||||
|
||||
## Important Files
|
||||
|
||||
- `description.md` - Detailed architecture documentation
|
||||
- `todo.md` - Future features and known limitations
|
||||
- `server/keys/` - Contains server keypair (do not commit private key)
|
||||
Loading…
Add table
Add a link
Reference in a new issue