From d770e52d8f7cda4351bfa64a448a38dd9faeedd8 Mon Sep 17 00:00:00 2001 From: Grant Gilliam Date: Mon, 15 Jun 2026 20:45:20 -0500 Subject: [PATCH] Refresh Current state: backend connected end-to-end; Settings save confirmed --- AGENTS.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f4f209a..f1dca53 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -82,9 +82,10 @@ open /Applications/Ten31Transcripts.app - Never commit to `main` or force-push a shared branch; branch first and ask. ## Current state -Present tense; overwritten each session. `main` clean and pushed; 73 tests pass; `/Applications/Ten31Transcripts.app` is built from HEAD — **quit + relaunch the menu-bar app** to load the TLS change. 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`). -- **Working:** call detection (Meet/Zoom/Teams/Signal), dual-track capture, dual-channel + chunked backend hand-off, speaker reconciliation, recap (`transcript.md` + `recap.html`), speaker editor, configurable chunk length, standalone Settings. -- **Done this session:** TLS validation on by default + skip-TLS bypass scoped to the configured host (`InsecureTrustDelegate.allowsTrustOverride`, unit-tested); verified `URLSession` default validation reaches the live backend + fallback. Ran + triaged the eval. Purged backend LAN IPs from git history (2nd `filter-repo` rewrite; backups `../ten31-transcripts-*.bundle`). -- **Next up (start here): backend URL + primary→fallback.** App has a single `backendBaseURL`, no fallback, and on this Mac no value is saved (resolves to the placeholder → recordings wouldn't reach SparkControl). (1) persist the URL in Settings + confirm it actually saves; (2) primary→fallback on connection failure + show which endpoint is live; (3) freebie: the `mmss()` NaN/∞ guard. Sketch before coding. Keep real IPs out of source — use `192.0.2.x` placeholders. +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.