You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v1 (MVP, #1) and v1.1 (meeting intelligence, #76) are shipped and merged. This EPIC covers the gap between "feature-complete" and "a product the operator trusts in real meetings": STT accuracy/calibration on the production model, coaching latency + persistence, local-engine verification, design-system debt, and everything that can be prepped before the Apple-signing operator gate (#14).
Source: handoff audit 2026-07-05 — every item below was verified against current main (fa26d60) with file:line evidence before ticketing.
Problem inventory (why these tickets)
STT floors are tuned for the wrong model.CONFIDENCE_FLOOR=0.5 / AUTO_DETECT_CONFIDENCE_FLOOR=0.6 (crates/livecap-core/src/whisper/engine.rs:35,48) are hardcoded consts seeded against tiny, but production default is small (crates/livecap-core/src/model.rs:22). No per-model table, no runtime override — live tuning requires recompiles.
No user-facing model choice.AppSettings has no STT model field; better models (medium / large-v3-turbo) exist in MODEL_NAMES but are unreachable.
Coaching is slow by construction: coachUtterances loops serially, one CLI turn per utterance through a shared turn mutex (packages/engine/src/extras-pipeline.ts:219-228) — ~30 s for 10 utterances.
Coaching rewrites are not persisted: archive CaptionEntry has no coaching fields (packages/archive/src/types.ts:8-21); the Dashboard coaching tab can only show "before" text (src/dashboard.ts:310-334).
Local Qwen tier never ran for real: code-complete and e2e-tested only against a fake llama-server (packages/engine/test/local-llm-engine.e2e.test.ts). Real download → real server → real quality unverified.
Dev-verify loop is painfully slow: capture-visible is env-only (needs LSEnvironment inject + re-sign), and every ad-hoc re-sign resets TCC → an operator SecurityAgent click per rebuild.
Design-token debt: 3× #0d0f12, #1a1205, #7ad17a + ~45 raw rgba(255,255,255,…) literals in src/styles.css with no CI guard.
Same binding rules as #1: no mock/stub/TODO in app code (CI gate), tests first, branch task/<issue>-<slug>, PR Fixes #<issue>, CI green, never log caption content.
Vision
v1 (MVP, #1) and v1.1 (meeting intelligence, #76) are shipped and merged. This EPIC covers the gap between "feature-complete" and "a product the operator trusts in real meetings": STT accuracy/calibration on the production model, coaching latency + persistence, local-engine verification, design-system debt, and everything that can be prepped before the Apple-signing operator gate (#14).
Source: handoff audit 2026-07-05 — every item below was verified against current
main(fa26d60) with file:line evidence before ticketing.Problem inventory (why these tickets)
CONFIDENCE_FLOOR=0.5/AUTO_DETECT_CONFIDENCE_FLOOR=0.6(crates/livecap-core/src/whisper/engine.rs:35,48) are hardcoded consts seeded againsttiny, but production default issmall(crates/livecap-core/src/model.rs:22). No per-model table, no runtime override — live tuning requires recompiles.sayTTS and thetiny-model integration tests.AppSettingshas no STT model field; better models (medium / large-v3-turbo) exist inMODEL_NAMESbut are unreachable.coachUtterancesloops serially, one CLI turn per utterance through a shared turn mutex (packages/engine/src/extras-pipeline.ts:219-228) — ~30 s for 10 utterances.CaptionEntryhas no coaching fields (packages/archive/src/types.ts:8-21); the Dashboard coaching tab can only show "before" text (src/dashboard.ts:310-334).packages/engine/test/local-llm-engine.e2e.test.ts). Real download → real server → real quality unverified.#0d0f12,#1a1205,#7ad17a+ ~45 rawrgba(255,255,255,…)literals insrc/styles.csswith no CI guard.Tickets & order
Dispatch order: #108 first (unblocks all device verification) · QuadWork VPS stream: #109 → #112 → #113 → #116 (one ticket per batch) · local/PO stream: #110 → #111, #114 (after #113), #115, #117 · gate #14 stays open, operator-owned.
Engineering policy
Same binding rules as #1: no mock/stub/TODO in app code (CI gate), tests first, branch
task/<issue>-<slug>, PRFixes #<issue>, CI green, never log caption content.