Fix #43: New UI layout #49
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "batch/43"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Issue: #43 - New UI layout
Split the recording UI into two distinct panels:
Changes:
/record/current/{session_id}API endpoint for current session state- Show spinning cursor (⏳) and 'Creating…' text on Create button during processing - Show in-progress state on Recreate button during processing - Add .in-progress CSS class for visual feedback (opacity + cursor)- Add chunk_transcription_mode support in RecordingManager: - _transcribe_chunk_to_part_file: transcribe a chunk to part_NNN.txt - _merge_part_transcripts: merge part files into transcript.txt - _extract_webm_header / _patch_chunk_with_header: helper utilities - Updated transcribe_chunk_folder to merge part files in chunk mode - Updated routes.py add_chunk: - When chunk_transcription_mode is enabled, each chunk is transcribed immediately in the background after being saved - Subsequent chunks prepend last N seconds of previous chunk as overlap - Each chunk becomes a part_NNN.txt file - Updated routes.py stop_recording: - In chunk_transcription_mode: wait for background transcriptions to complete, then merge part_NNN.txt files into transcript.txt The feature was designed in settings.yaml (recording.chunk_transcription_mode and recording.overlap_time) but the implementation was missing after the refactoring that removed it. This restores the per-chunk transcription mode.@ -131,0 +140,4 @@if chunk_mode and result.chunk_count > 0:chunk_index = result.chunk_count - 1async def transcribe_chunk_async(chunk_idx: int) -> None:Avoid inner functions! And this function is also too long! Split up in clean functions or create a AddChunk class in a add_chunk.py
@ -384,0 +439,4 @@print(f"[ERROR] Failed to decode chunk {chunk_path.name}: {r.stderr[-200:]}")# Fallback: try without patchif needs_patch:r2 = subprocess.run(arrow pattern -> maybe too complex function, split up in smaller units