Add STATUS.md checkpoint: verified state, architecture decisions, open items

Folds in the Sep 14-15 cycle (Android removal, batch transcribe, library
bulk ops, Debian path) with live test counts and the five open candidates.
This commit is contained in:
avi 2026-09-15 12:47:10 -05:00
commit 2a1d5d5ab2

51
STATUS.md Normal file
View file

@ -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.