Session recovery UX#15
Conversation
ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (5)
🚧 Files skipped from review as they are similar to previous changes (4)
📝 WalkthroughWalkthroughThe PR expands NoteActivity and session-derived transcript states (adds degraded, transcribing, recoverable), updates activity resolution and UI rendering to use session status, introduces transcript status UI/components and translations, and updates styles and tests to cover the new states. ChangesTranscript Session State Management
Sequence DiagramsequenceDiagram
participant User
participant Sidebar as Sidebar
participant ActivityUtils as captureActivity
participant NoteActivity as NoteActivityIndicator
participant TranscriptView
participant SessionStatus as sessionStatus Utils
participant UI as UI Rendering
User->>Sidebar: note (id, captureState, sessionStatus)
Sidebar->>ActivityUtils: activityForNote(id, activeId, captureState, sessionStatus)
ActivityUtils-->>ActivityUtils: resolve from active captureState or sessionStatus.state
ActivityUtils-->>Sidebar: NoteActivity (degraded/transcribing/etc.)
Sidebar->>NoteActivity: render activity indicator
NoteActivity->>UI: show dot/progress/alert
Sidebar->>TranscriptView: open note (sessionStatus, hasTranscript, isGenerating)
TranscriptView->>SessionStatus: transcriptScreenForNote(sessionStatus, hasTranscript, hasRecording, isGenerating)
SessionStatus-->>TranscriptView: TranscriptScreenState (kind,tone,canRetry,showTranscript,action)
alt showTranscript true
TranscriptView->>UI: render transcript segments
else
TranscriptView->>UI: render TranscriptStatusPanel (icon,title,body,action)
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Poem
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Review rate limit: 1/3 review remaining, refill in 29 minutes and 7 seconds. Comment |
There was a problem hiding this comment.
Code Review
This pull request enhances the transcript and recording status UI by introducing new activity states such as 'degraded', 'recoverable', and 'transcribing', along with a dedicated status panel in the transcript view. The changes include updated utility functions, expanded translation keys, and new styling for these states. Feedback highlights a missing CSS variable (--agent-blue), redundant logic in the session status utility, and the need for icon consistency using 'CircleAlert'. Additionally, it is recommended to centralize the logic for determining retry labels to improve maintainability.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c0b685c25d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Summary
Adds sessionStatus-driven transcript screens and compact note-list indicators for recording, degraded, finalizing, transcribing, recoverable, failed, and completed sessions.
Why
MirrorNote now has session recovery state, but the renderer still needed a clear user-facing contract. Failed or interrupted local STT sessions should present one recovery action without exposing internal chunk ledger details.
Changes
stt-chunks.jsonland chunk IDs internal to recovery metadata instead of rendering debug chunk UI.Validation:
npm run desktop:checkgit diff --check main..HEADSummary by CodeRabbit
New Features
Styles
Tests