3.3 KiB
3.3 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.
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.
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.
Post-eval P3+ backlog (full eval 2026-06-13 — deferred, low risk for the private box)
From EVALUATION.md. P1 + three P2 items already fixed (see git log 8ad7c54…693d724); these are the deferred tail.
- Security hardening: no
/relay/*rate limiting; container likely runs as root (entrypointchowns uid 1001 but noUSERdirective); dashboardinnerHTMLstored-XSS surface;lan-fetchTLS verify off (admin-set URL only); debug/error fields leaked to clients. - Packaging/ops: prune the 126
startos/versions/*.tsfiles; pinyt-dlpin the Dockerfile; the Dockerfile per-subdirCOPYfootgun; manifest polish (SPDX license,docsUrls, real repo URLs, icon format); noREADME.md(blocks public-registry submission only — moot for this private box). /relay/healthreports stale0.2.11—server/package.jsonversion never bumped past 0.2.11; bump to track the StartOS version.- Doc fixes (bulk): the
test/layout line;server/index.js:3-6"two endpoints" header comment is stale;POST /admin/logoutundocumented. - Untested blind spot: the live upload → merge → recluster → repolish pipeline (admin-gated + needs Spark Control) has only unit coverage; re-run
npm audit/osv-scannerwith network to catch transitive CVEs the offline audit missed.
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.