feat: write 3 files per solo recording (index + transkript + zusammenfassung)

- pipeline: call write_solo_docs() instead of save_transcript(); broadcast paths dict
- router: /open accepts paths list for Obsidian mode, copies all 3 files to vault
- app.js: store _modalPaths from saved event; Obsidian button sends all paths
- tests: test_write_solo_docs_creates_three_files added

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-02 11:10:28 +02:00
parent a37e09fb4e
commit 06f7361004
4 changed files with 58 additions and 17 deletions
+10 -3
View File
@@ -10,7 +10,7 @@ from api.router import broadcast
from config import load as load_config
from transcription import engine as transcription_engine
from llm import OllamaClient
from output import save_transcript, write_meeting_docs
from output import write_solo_docs, write_meeting_docs
logger = logging.getLogger(__name__)
@@ -80,15 +80,22 @@ async def _run_solo_pipeline(cfg, wav_path, output_dir, instructions):
model=cfg["ollama"]["model"],
)
dt = datetime.now()
paths = write_solo_docs(raw_text=raw_text, refined=refined, output_dir=output_dir, dt=dt)
title = "Diktat"
for line in refined.splitlines():
if line.startswith("# "):
title = line[2:].strip()
break
path = save_transcript(title=title, content=refined, output_dir=output_dir)
await broadcast({"event": "saved", "path": path, "title": title})
await state.set_status(Status.IDLE)
await broadcast({
"event": "saved",
"path": paths["index"],
"title": title,
"paths": paths,
})
async def _run_meeting_pipeline(cfg, wav_path, output_dir, instructions, diar_cfg):