Skip to content

feat(app): None LLM provider + graceful protocol generation fallback#63

Merged
pasrom merged 2 commits intomainfrom
feat/none-llm-provider
Mar 22, 2026
Merged

feat(app): None LLM provider + graceful protocol generation fallback#63
pasrom merged 2 commits intomainfrom
feat/none-llm-provider

Conversation

@pasrom
Copy link
Copy Markdown
Owner

@pasrom pasrom commented Mar 22, 2026

Summary

Inspired by execsumo/meeting-transcriber (commit 7a04dc2).

  • "None (Transcript Only)" option in LLM Provider picker — skips protocol generation, saves only transcripts
  • Graceful LLM fallback — if protocol generation fails, transcript + audio are still saved, job completes with warning instead of error
  • Decoupled pipeline — transcript and audio always saved first, protocol generation is optional
  • transcriptPath on PipelineJob for transcript-only job access (menu bar "Open" button, notifications)

Changes

  • AppSettings.swift: .none case on ProtocolProvider
  • PipelineJob.swift: transcriptPath property
  • PipelineQueue.swift: Transcript/audio saved before optional LLM; LLM errors caught gracefully with warning
  • AppState.swift: Factory returns nil for .none; notification title adapts ("Protocol Ready" vs "Transcript Saved")
  • MenuBarView.swift: Open button falls back to transcriptPath
  • SettingsView.swift: Info text for None mode, renamed to "LLM Provider"
  • MeetingTranscriberApp.swift: Open last protocol falls back to transcript

Test plan

  • testWorkflowNoneProviderSavesTranscriptOnly — no .generatingProtocol state, transcript saved, no protocol, no warnings
  • testWorkflowProtocolGenerationFailsSavesTranscriptWithWarning — graceful fallback (.done + warning + transcript, no protocol)
  • testTranscriptPathSurvivesEncoding — JSON round-trip for transcriptPath
  • Updated testConfigurePipelineCallbacksDoneFiresNotification — adaptive notification title
  • Updated testProviderPickerExists — renamed picker label
  • Full suite: 772 tests, 0 failures
  • Lint: 0 violations
  • AppStore build: OK

…lback

Add "None (Transcript Only)" option to the LLM Provider picker,
allowing users to skip protocol generation and save only transcripts.

Decouple transcript/audio saving from protocol generation — transcript
and audio are always saved first. If LLM fails, job completes with a
warning instead of error. Add transcriptPath to PipelineJob so
transcript-only jobs can be opened from menu bar.
@github-actions github-actions bot added the enhancement New feature or request label Mar 22, 2026
- testWorkflowNoneProviderSavesTranscriptOnly: verifies no
  .generatingProtocol state, transcript saved, no protocol, no warnings
- testTranscriptPathSurvivesEncoding: JSON round-trip for transcriptPath
@pasrom pasrom merged commit f18f2b1 into main Mar 22, 2026
7 checks passed
@pasrom pasrom deleted the feat/none-llm-provider branch March 22, 2026 19:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant