- AGENTS.md: add Endpoints section — auth model (cloud operator-key path, license/install-id path, admin session cookie, BTCPay HMAC) plus full /relay/* surface (public + operator-key-only control plane), the /admin/* dashboard, and the /admin/internal-meetings/* API. - AGENTS.md: rewrite Current state with verified git facts — HEAD is the prior docs commit, HEAD~1 is v0.2.11, working tree at v_0_2_124, file counts pulled live from git status. - ROADMAP.md: log two doc-precision follow-ups caught in review (the working-tree counts drift fast; the admin-route shortlist silently omits three real routes).
3.9 KiB
ROADMAP — Recap Relay
Longer-term backlog for the relay. Near-term in-flight work + known box/local state live in AGENTS.md under Current state. Detailed issue write-ups live in docs/issues-backlog.md.
Highest priority — commit the uncommitted working tree (git is at v0.2.11)
Versions are reconciled: box and local working tree are both at 0.2.124 (a concurrent 2026-06-13 session bumped 0.2.117→0.2.124 and shipped it). But committed git HEAD is still v0.2.11 — everything since is uncommitted (≈28 modified + 153 untracked: v0.2.12→v0.2.124, the whole internal-meetings feature, diarization, meeting-speaker-edits.js, billing). This is the actual "catch up local git" task.
- Coordinate first — confirm no other chat session is mid-edit on this tree before committing (the 117→124 files appeared mid-session from a parallel session).
- Decide commit granularity — one big "catch up to 0.2.124" commit vs. logical chunks (internal-meetings / diarization / speaker-edit tools / billing). The history jump is large either way since nothing between v0.2.11 and v0.2.124 was committed.
- Don't bump/install while committing — the working tree already equals the box at 0.2.124; no rebuild needed just to commit.
- Confirm
.gitignorecovers*.s9pk,node_modules,cookies.txt, env files before a bulkgit add.
Speaker-tool follow-ups (built this session, deferred polish)
- Auto re-infer names after a re-run. Today
POST /:id/reclusterclears names and the operator re-labels by hand (a deliberate, instant, no-LLM default). Optional: re-runrunNameInferenceautomatically after re-clustering. - Renumber speaker letters after a merge. Merging
Speaker_CintoSpeaker_Aleaves a gap (A, B, D…). Renumbering to stay contiguous would cascade throughspeaker_names+ per-line overrides — left out for now. - Preserve an unpolished summary base.
runSummaryPolishoverwrites section summaries in place, sorepolishre-polishes already-polished text (it still corrects names because it re-reads the transcript + roster, but a clean base would be more robust). Store the original topic-only summaries at first polish. - Make re-polish async for long meetings.
POST /:id/repolishis synchronous (one LLM pass per analysis window); a 2-hr meeting could make the request hang. Move to the existing job system (createJob/appendEvent/markComplete) + poll, like the main pipeline. - Speaker MERGE provenance. Merge sums stats and approximates
chunks_appeared_inasmax(raw per-cluster chunk sets aren't retained). Recompute exactly fromrec.diarizationif precision ever matters.
Doc precision follow-ups
AGENTS.md## Current stateworking-tree counts drift. Reviewer caught28 M→ actual29 M(and183 total→184 total) within minutes of writing the snapshot. Either refresh on every touch or change the phrasing to "(as of this write)" so the numbers stop reading as authoritative-forever.AGENTS.md### /admin/*route list is non-exhaustive. The brace-expanded shortlist silently omits at least three real routes registered inserver/routes/admin.js:GET /admin/job-output/:id(line 268),GET /admin/output-store-ids(line 336), andPOST /admin/settings/promote-prompt(line 1156). Either append them or label the list "(representative, not exhaustive)".
Open issues (see docs/issues-backlog.md)
- Empty analysis section at a window boundary (observed v0.2.77 smoke test). Likely the LLM returning an empty
{title:"",summary:""}section the stitcher accepts, or a window-merge boundary hole. Low priority. Full triage path indocs/issues-backlog.md.
Adjacent (lives in ../recap)
The app surfaces relay features but owns its own roadmap. Relay-side items the app is waiting on, or that change app behavior, belong in ../recap/ROADMAP.md under its "Adjacent" section — keep them cross-referenced, not duplicated.