Files
recap-relay/ROADMAP.md
T
Keysat 87227a7ca6 Correct agent-doc accuracy: full /admin route list, git-state precision
AGENTS.md: append four real /admin routes the list omitted (job-output/:id, output-store-ids, settings/promote-prompt, test-run-suite); replace the stale HEAD hash with 'last code commit is v0.2.11, docs-only commits on top'. ROADMAP.md: fix the untracked count + HEAD wording; drop the two now-resolved doc-precision follow-ups.
2026-06-13 12:02:36 -05:00

3.2 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 the last committed code is still v0.2.11 (only docs-only commits sit on top) — everything since is uncommitted (≈28 modified + ~150 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.

  1. 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).
  2. 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.
  3. Don't bump/install while committing — the working tree already equals the box at 0.2.124; no rebuild needed just to commit.
  4. Confirm .gitignore covers *.s9pk, node_modules, cookies.txt, env files before a bulk git add.

Speaker-tool follow-ups (built this session, deferred polish)

  • Auto re-infer names after a re-run. Today POST /:id/recluster clears names and the operator re-labels by hand (a deliberate, instant, no-LLM default). Optional: re-run runNameInference automatically after re-clustering.
  • Renumber speaker letters after a merge. Merging Speaker_C into Speaker_A leaves a gap (A, B, D…). Renumbering to stay contiguous would cascade through speaker_names + per-line overrides — left out for now.
  • Preserve an unpolished summary base. runSummaryPolish overwrites section summaries in place, so repolish re-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/repolish is 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_in as max (raw per-cluster chunk sets aren't retained). Recompute exactly from rec.diarization if 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 in docs/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.