Reported issues for talkthrough-mcp
Pod holds 14 of 14 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to talkthrough-mcp.
Most discussed
Speaker diarization: sherpa-onnx backend — accepted for v0.2.0
Meetings with multiple speakers would benefit from 'who said it'. Constraints: local-only (privacy promise), CPU-friendly, pip-installable. Candidates to evaluate: pyannote (license/weights?), NeMo, whisperX-style alignment, sherpa-onnx diarization. Deliverable: a short comparison + recommendation in an issue comment; implementation is a separate PR. Explicitly out of v1 scope (README roadmap).
Status 2026-07-14: ACCEPTED → v0.2.0, backend picked: sherpa-onnx. Backend comparison is in
Read the thread · 2026-07-10 · closed · 3 comments
Cache diarization embeddings so a num_speakers amend re-clusters in seconds
Problem
Real-world report on a large multi-speaker meeting recording (v0.2.3):
process_media(diarize=true)withoutnum_speakers→ processing took ~12 min and unconstrained clustering over-split the audio into 123 "speakers".- Re-running with the correct
num_speakers=6triggered the diarize amend path as designed — Whisper/frames/OCR were correctly reused — but the call still took roughly as long as the first run, because the amend re-runs the entire diarization engine.
Read the thread · 2026-07-27 · open · 2 comments
Semantic transcript search (local embeddings): tracking
Tracking issue for the semantic tier of transcript search (README Roadmap item, promoted to an issue after real-session evidence).
Why. search today is exact-substring — deliberate v1 scope (deterministic, zero deps, pointers-not-payloads). A real agent session hit its ceiling on concept queries: "where does he talk about the first phase" has no literal match against a transcript saying "the first one", "the first real phase", "the first step" (2026-07-14 tester feedback). Word-level ma
Read the thread · 2026-07-14 · open · 2 comments
≤0.2.4 cannot start in freshly resolved environments: MCP SDK 2.0.0 removed mcp.server.fastmcp (fixed in 0.2.5)
Symptom. The server process dies on import before the MCP handshake. Claude Code shows:
/mcp → Failed to reconnect to plugin:talkthrough:talkthrough: -32000
Running the server command manually shows the real error:
File ".../talkthrough_mcp/server.py", line 20, in <module>
from mcp.server.fastmcp import Context, FastMCP, Image
ModuleNotFoundError: No module named 'mcp.server.fastmcp'
Cause. The MCP Python SDK released 2.0.0 on 2026-07-28, which removes the `mcp.
Read the thread · 2026-07-31 · closed · 1 comment
search: multi-word queries should match by words, not exact phrase (+ Unicode/ё-е normalization)
Problem (2026-07-14 tester batch, agent-driven session): search is exact-substring, so a multi-word query silently means exact phrase. search("first phase") returns zero hits against a transcript that says "the first one", "the first real phase", "the first step" — the information is there, the agent concludes it isn't. Guidance already steers agents toward "a distinctive word", but the tool should survive natural usage instead of trapping it.
**Proposal — the dependency-free tier (de
Read the thread · 2026-07-14 · closed · 1 comment
get_frames / get_moment: explicit validity span (valid_from_ms / valid_to_ms) per served keyframe
Insight from an early tester (2026-07-14 batch, agent-driven session): perceptual dedup means a range query over a static minute returns a single keyframe — great for token budgets — and "what was on screen at time T" is answerable by reasoning over duplicate_of chains / nearest keyframes. But that's an inference the agent has to make every time. Return it as data instead.
Proposal. For every served unique keyframe, add an explicit validity span:
"valid_from_ms": 47166, /
[Read the thread](https://github.com/korovin-aa97/talkthrough-mcp/issues/14) · 2026-07-14 · closed · 1 comment
### extract_frame / get_frames: return the absolute file path in tool responses
**Problem.** `extract_frame` writes the extracted frame to `<TALKTHROUGH_HOME>/jobs/<job_id>/extracts/extract-t<ms>[-crop…].jpg`, but the JSON block in the response doesn't include that path. `get_frames` / `get_moment` similarly return only the basename (`"file": "t00047166.jpg"`) of served keyframes. An agent asked to "save this screenshot next to my project docs" has to reverse-engineer the store layout instead of copying a file it was just handed.
**Fix** (ships with v0.2.0, riding the diar
[Read the thread](https://github.com/korovin-aa97/talkthrough-mcp/issues/13) · 2026-07-14 · closed · 1 comment
### P6: macOS 26 (ReplayKit) screen recordings carry no com.apple.quicktime.creationdate — wall-clock rung 2 unreachable, docs overpromise
**Acceptance step:** 4.3 (wall-clock flagship), P6 manual acceptance 2026-07-10. Founder-approved filing.
**Expected:** per README (Wall-clock anchoring), docs/DESIGN.md (ladder table) and `core/wallclock.py` docstring, a macOS Cmd+Shift+5 recording carries `com.apple.quicktime.creationdate` (with tz offset) → `source=quicktime`, `confidence=high`.
**Got:** on macOS 26.4.1 all three ⌘⇧5 recordings on this machine are authored by ReplayKit and carry ONLY UTC `format.tags.creation_time` — no `cr
[Read the thread](https://github.com/korovin-aa97/talkthrough-mcp/issues/9) · 2026-07-10 · closed · 1 comment
## Most recent
### P6: OCR garbles Cyrillic UI text (default RapidOCR models) — document the limitation or expose a language option
**Acceptance step:** 4.5, P6 manual acceptance 2026-07-10 (founder-approved filing), job `ab4dcf3f5acf435c`.
**Got:** English/Spanish on-screen text OCRs well — `search("viajaste")` → 8 OCR hits; long English chat copy captured nearly verbatim. Large Cyrillic UI text at the same font size garbles: «Выберите поезд» → `Bepe noe3`, «Цена билета» → `Lea uneta`, RU chat bubbles → `, , ?` placeholders. `search` over RU on-screen text therefore misses even though the words are clearly legible on t
[Read the thread](https://github.com/korovin-aa97/talkthrough-mcp/issues/11) · 2026-07-10 · closed · 0 comments
### P6: get_moment picks nearest unique frame by time — can cross a scene boundary when all in-range frames are duplicates
**Acceptance step:** 4.2, P6 manual acceptance 2026-07-10 (founder-approved filing), job `ab4dcf3f5acf435c` — real 2-min screencast, 8 unique / 119 frames, one long static stretch 47.2s→92.4s deduped to a single keyframe.
**Got:** `get_moment(start_ms=81810, end_ms=88950)` returned frame `t00092358.jpg` — 3.4 s AFTER the requested range and on the far side of a scene change (92.358 s starts a new scene). Every frame inside the range is `duplicate_of: 47166`, so the faithful representative of th
[Read the thread](https://github.com/korovin-aa97/talkthrough-mcp/issues/10) · 2026-07-10 · closed · 0 comments
### whisper.cpp backend as an alternative to faster-whisper
faster-whisper (CTranslate2) is the v1 backend. whisper.cpp with Metal/CoreML could be faster on Apple Silicon and removes the ctranslate2 wheel dependency. Port shape already exists conceptually (segments JSON with ms offsets). Needs: backend selection env (`TALKTHROUGH_STT_BACKEND`), binary resolution ladder like ffmpeg.py, and CI coverage decision.
[Read the thread](https://github.com/korovin-aa97/talkthrough-mcp/issues/6) · 2026-07-10 · open · 1 comment
### Expose RapidOCR language/config knobs
OCR currently runs RapidOCR defaults. Some recordings need language hints or det/rec model switches. Proposal: `TALKTHROUGH_OCR_LANG` (and maybe a generic pass-through env) wired into `core/ocr.py:create_engine`, documented in README Configuration.
[Read the thread](https://github.com/korovin-aa97/talkthrough-mcp/issues/3) · 2026-07-10 · closed · 1 comment
### Recipe: file approved findings as GitHub issues (gh CLI example)
The triage flow ends with findings JSON per `examples/output-contract.schema.json`. Add `examples/recipes/github-issues.md` (or a small script): for each approved finding, create one GitHub issue via `gh issue create` — title from `title`, body from quote/observed/expected/acceptance_criteria/verify_via + t_wall, attach the referenced frames from `~/.talkthrough/jobs/<job_id>/frames/`.
[Read the thread](https://github.com/korovin-aa97/talkthrough-mcp/issues/2) · 2026-07-10 · closed · 0 comments
### Windows: best-effort smoke run + docs notes
The codebase is OS-neutral by design (fcntl lock degrades to no-op, static-ffmpeg has win builds), but nobody has run it on Windows yet.
**Task**: run `uv run talkthrough-mcp process tests/fixtures/talkthrough-demo.mp4` on Windows, note what breaks (paths, locking, static-ffmpeg resolution), and PR a short 'Windows notes' README section. No CI needed — v1 keeps Windows best-effort.
[Read the thread](https://github.com/korovin-aa97/talkthrough-mcp/issues/1) · 2026-07-10 · closed · 0 comments
The remaining reports are on [the project's issue tracker](https://github.com/korovin-aa97/talkthrough-mcp/issues).