diff --git a/STATUS.md b/STATUS.md new file mode 100644 index 0000000..c9c1a60 --- /dev/null +++ b/STATUS.md @@ -0,0 +1,51 @@ +# SHONAR Desktop — Status + +Checkpoint for the standalone desktop app. Prepend a new dated section per +material change; keep history below. + +## 2026-09-15 — standalone desktop, Android fully removed + +**Verified state (live this session):** +- HEAD `6599935`, clean tree, single branch `master`, no stashes +- Backend tests: `78 passed, 1 skipped` (pytest, SQLite) · `ruff check` clean +- Frontend tests: `39 passed` across 7 gradle suites +- Engine runs locally on `127.0.0.1:8000` (healthz ok); runtime state in + `~/.config/shonar-desktop/` (`engine.db`, `settings.json`) + +**What the app is:** Compose Desktop (Kotlin) UI + bundled FastAPI engine +(SQLite + in-process queue, self-migrating on boot). No Postgres/Redis/Docker, +no server, no phone component. faster-whisper (Base vendored under +`models/hf-cache/`, Large v3 downloadable) + an LLM for summaries +(`openai_compat` or `ollama`). + +**Architecture decisions worth keeping:** +- All Android/phone code deleted (`71b5571`) — desktop is the product. The + old server-era source lives on the main repo's `deferred/desktop-server` + branch for reference only. +- Shared code sits at `shared/com/shonar` (no `src/`), pulled in via + `srcDir("../shared")` in `app/build.gradle.kts`. +- Search picks its path by SQL dialect inside `services/search.py` (SQLite + substring scan / Postgres tsvector) — intentionally **no** `search_backend` + config knob (removed `6599935`; nothing ever read it). +- Engine endpoint root is `/api/v1` (`/healthz`, `/system/status`, …). +- Dev loop: `./desktop-dev.sh` (inotifywait restarts app on `.kt`; uvicorn + `--reload` for backend). Debian path: `INSTALL-debian.md`. + +**Done this cycle (Sep 14–15):** batch transcribe-all with overall + +per-file stage progress; library multi-select/bulk delete (single delete +path); queued-file delete/rename; folder picker in-app + path in Settings; +zoom keys; search-within-recording; click-hit-to-playback; model choice +narrowed to Base + Large v3; Debian packaging + install guide; standalone +provisioning with vendored base model. + +**Open items / candidates:** +1. Startup adoption of engine jobs already running (app restart currently + orphans them from the UI). +2. Reuse upload mapping after restart instead of re-uploading. +3. Investigate the 1 skipped backend test (likely the Postgres-path test). +4. Confirm Large v3 one-command provisioning on a fresh machine. +5. Stale-noise cleanup: `~/.config/shonar-desktop/pump-error.log` holds old + Android→server upload 404s (pre-desktop pivot); no action taken. + +**Known debt:** none blocking. No dead stubs; one former TODO (search +backend) resolved by deletion.