Repository navigation
Add selectable providers for FluidMeet summaries - #1028
grohith327 wants to merge 5 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1e06c79865
ℹ️ 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".
| } | ||
| text = try Self.anthropicText(data) | ||
| } else { | ||
| text = try await self.client.call(self.configuration(transcript: transcript, kind: kind, route: route)).content |
There was a problem hiding this comment.
Reject truncated remote summaries
When a long detailed summary exhausts an OpenAI-compatible provider's output limit, the response can contain nonempty partial text with finish_reason: "length"; the Responses API similarly reports an incomplete status. LLMClient.call currently discards both completion indicators, so this path treats that partial text as successful and MeetingSummaryController persists it as a finished summary. Validate the provider's completion status before returning the text, as the Anthropic path already does for stop_reason == "max_tokens".
Useful? React with 👍 / 👎.
FluidVoice PR build readyDownload FluidVoice-PR-1028-1cd64bb0897a The artifact contains the ad-hoc-signed app ZIP, Xcode archive, build manifest, and installation instructions. It expires 5 days after the build. Install the app
This build has its own app identity, so its permissions are separate from the release version of FluidVoice. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1cd64bb089
ℹ️ 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".
| guard json["stop_reason"] as? String != "max_tokens" else { | ||
| throw LLMError.invalidRequest("The summary reached the model's output limit. Try Executive summary instead.") | ||
| } |
There was a problem hiding this comment.
Reject all unsuccessful Anthropic stop reasons
When Anthropic returns nonempty text with stop_reason: "model_context_window_exceeded" (partial output) or "refusal", this check accepts the response and the controller persists it as a completed summary. Fresh evidence beyond the prior max_tokens handling is that these distinct stop reasons also indicate the requested summary was not completed successfully; whitelist successful terminal reasons such as end_turn/stop_sequence instead of rejecting only max_tokens.
Useful? React with 👍 / 👎.
|
This pull request has been marked stale because it has had no activity for 5 days. It will be closed in 2 days if there is no further activity. Add the |
|
Hi @grohith327, thanks for this work. I opened #1076 to continue it, rebased onto current Following maintainer guidance on Discord, #1076 narrows the scope to the providers already set up in AI Providers, sent through the shared Follow-up: #1077 adds an optional custom prompt. Feedback welcome on either. |
Description
Meeting summaries currently require the on-device model or manually exporting a transcript. This adds a provider/model picker to a completed meeting's Meet Summary tab, reusing verified AI Providers configurations while keeping the summary selection independent of dictation.
claude -p) or Codex (codex exec) CLI with an optional model override. Transcripts go through stdin, with bounded output, timeout/cancellation, process-group cleanup, and separate diagnostics.Type of Change
Related Issue or Discussion
#1022
Testing
Validation performed on September 24, 2026; SwiftLint and diff checks repeated before opening the PR on September 26.
testfv -only-testing:FluidDictationIntegrationTests/MeetingSummaryProviderTests— 14 passed, zero failuresAdditional checks:
runfvsuccessfully built, installed, signed, and relaunched the final app.git diff --checkpasses.Screenshots / Video
New-meeting recording setup:
Completed meeting with Codex selected: