Fix #43: New UI layout #49

Merged
SaschaFuksa merged 4 commits from batch/43 into master 2026-04-21 17:02:24 +00:00
Owner

Issue: #43 - New UI layout

Split the recording UI into two distinct panels:

  • Current Session Panel — shows active recording with chunk count, transcript state, and structured transcript controls
  • Previous Recordings Panel — shows paginated list of all past recordings with their states

Changes:

  • Added /record/current/{session_id} API endpoint for current session state
  • New CSS for current-session-panel and previous-recordings-panel
  • Mobile-responsive layout with stacked columns on small screens
  • Transcript preview showing first 200 chars
  • Actions for both panels: Transcript, Create/Expand/Download/Copy/Send-to-repo/Recreate Structured, Delete
  • Pagination for previous recordings
**Issue:** #43 - New UI layout Split the recording UI into two distinct panels: - **Current Session Panel** — shows active recording with chunk count, transcript state, and structured transcript controls - **Previous Recordings Panel** — shows paginated list of all past recordings with their states **Changes:** - Added `/record/current/{session_id}` API endpoint for current session state - New CSS for current-session-panel and previous-recordings-panel - Mobile-responsive layout with stacked columns on small screens - Transcript preview showing first 200 chars - Actions for both panels: Transcript, Create/Expand/Download/Copy/Send-to-repo/Recreate Structured, Delete - Pagination for previous recordings
Fix #46: Add processing info to create/recreate buttons
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
86b99fa102
- 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)
Fix #43: New UI layout - split recording UI into current session and previous recordings panels
Some checks are pending
CI / lint (pull_request) Waiting to run
CI / test (pull_request) Waiting to run
6d14613ac7
Tasch self-assigned this 2026-04-21 15:28:24 +00:00
Fix #47: Implement chunk_transcription_mode feature
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
a20ccb7316
- 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.
Fix ruff F841: remove unused transcript_dispatch variable
Some checks are pending
CI / lint (pull_request) Waiting to run
CI / test (pull_request) Waiting to run
7502910b68
@ -131,0 +140,4 @@
if chunk_mode and result.chunk_count > 0:
chunk_index = result.chunk_count - 1
async def transcribe_chunk_async(chunk_idx: int) -> None:
Owner

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

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 patch
if needs_patch:
r2 = subprocess.run(
Owner

arrow pattern -> maybe too complex function, split up in smaller units

arrow pattern -> maybe too complex function, split up in smaller units
Fix review comments: extract inner function and simplify arrow pattern
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
61c430c88a
- Extract transcribe_chunk_async inner function from add_chunk() into
  module-level _transcribe_chunk_background() and _handle_overlap_transcription()
- Simplify arrow pattern in _transcribe_chunk_to_part_file() by using
  a decode_ok flag and early returns instead of nested if/else chains
- Fix ruff F821 undefined name error (stray return statement)
SaschaFuksa deleted branch batch/43 2026-04-21 17:02:24 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Tasch/whisper-transcribe!49
No description provided.