From d4228b566ae9c8d9a6e21f4fa13f8ae762744f02 Mon Sep 17 00:00:00 2001 From: Grant Gilliam Date: Tue, 16 Jun 2026 22:34:37 -0500 Subject: [PATCH] Refresh Current state: docs/repo-hygiene session, doc-debt drained --- AGENTS.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index d94bb1e..029bea3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -84,10 +84,10 @@ open /Applications/Ten31Transcripts.app - Never force-push a shared branch, and never push without my approval. (Work on `main` — don't create feature branches unless I ask.) ## Current state -Present tense; overwritten each session. `main` clean and pushed; 73 tests pass; `/Applications/Ten31Transcripts.app` is built from HEAD. A 2026-06-13 independent eval → `EVALUATION.md`; its only P1 (TLS) is fixed, the rest are P2/P3 in `ROADMAP.md` (full evidence in `EVALUATION.md`). -- **Backend now connected end-to-end (2026-06-16):** the user entered their real LAN backend URL in Settings → SparkControl backend and the app connected — transcription/analysis is reachable. The prior "not connected" symptom was just the saved value still being the `your-spark-backend.local` placeholder. -- **Working:** backend hand-off (now live), call detection (Meet/Zoom/Teams/Signal), dual-track capture, dual-channel + chunked send, speaker reconciliation, recap (`transcript.md` + `recap.html`), speaker editor, configurable chunk length, standalone Settings. -- **Settings save confirmed (2026-06-16):** the "Base URL" field is bound to `AppSettings.backendBaseURL`, persisted to UserDefaults on every change via `didSet` — entirely off-repo (`~/Library/Preferences/xyz.ten31.transcripts.plist`), so the real LAN URL there never touches source/git; the committed default stays the placeholder. Check the saved value with `defaults read xyz.ten31.transcripts backendBaseURL`. -- **Next up (start here): backend URL primary→fallback.** App still has a single `backendBaseURL` and no fallback. (1) primary→fallback on connection failure + show which endpoint is live; (2) freebie: the `mmss()` NaN/∞ guard. Sketch before coding. Keep real IPs out of source — use `192.0.2.x` placeholders. -- **In progress / unverified:** the Meet visual fix (reject solid camera-off tiles) has no clean end-to-end run yet — validate by re-processing the saved Meet session and recording a fresh Meet call (needs the real app + backend; not doable offline). -- **Known bugs:** sparse Meet speaking-detection (faint blue border); sub-second junk "self" mic fragments; same person on desktop-mic vs phone doesn't unify by voiceprint. +Present tense; overwritten each session. `main` clean and pushed (HEAD `35ba6ec`); `/Applications/Ten31Transcripts.app` rebuilt + installed from HEAD. Release build green; the full test suite was **not re-run this session** (changes were docs/comments + one plist key + one UI string — no logic touched; 73 pass as of the last run). A 2026-06-13 eval → `EVALUATION.md`; its P1 (TLS) is fixed and this session drained most of the P2/P3 **doc-debt**. +- **This session (2026-06-16) — docs/repo hygiene:** added `.claude/settings.json` + the portable inbox-check line + canonical `.gitignore`; rewrote the stale README and reconciled `docs/01–03` with the shipped app (dual-channel API + recap phase); marked `docs/04` COMPLETE/historical; removed the dead `NSAppleEventsUsageDescription` and the last stale "Phase 0" strings/comments; completed the AGENTS Layout listings. Jitsi support routed to `ROADMAP.md`. +- **Backend connected end-to-end (2026-06-16):** real LAN URL saved in Settings → SparkControl backend; transcription/analysis reachable. The saved value lives off-repo (`defaults read xyz.ten31.transcripts backendBaseURL`); the committed default stays the placeholder. +- **Working:** backend hand-off (live), call detection (Meet/Zoom/Teams/Signal), dual-track capture, dual-channel + chunked send, speaker reconciliation, recap (`transcript.md` + `recap.html`), speaker editor, configurable chunk length, standalone Settings. +- **Next up (start here): backend URL primary→fallback.** Single `backendBaseURL`, no fallback. (1) primary→fallback on connection failure + show which endpoint is live; (2) freebie: the `mmss()` NaN/∞ guard. Sketch before coding. Keep real IPs out of source — use `192.0.2.x`. +- **In progress / unverified:** the Meet visual fix (reject solid camera-off tiles) has no clean end-to-end run yet — validate by re-processing the saved Meet session + a fresh Meet call (needs the real app + backend; not offline). +- **Known bugs / loose end:** sparse Meet speaking-detection (faint blue border); sub-second junk "self" mic fragments; desktop-mic vs phone doesn't unify by voiceprint. Doc loose end: `docs/01 §5`/`docs/02 §2.4` still list "AppleScript" as a Meet name source though the code uses window titles — reconcile when tracing the real Meet name path.