fix: thinking+json_mode crash, SSE dedup, improve meeting summary quality#17
Merged
Conversation
DashScope's OpenAI-compatible API expects {"enable_thinking": bool}
for thinking mode, not DeepSeek's native {"thinking": {"type": ...}}.
The wrong format caused DashScope to return misleading 400 errors like
"Range of input length should be [1, 1000000]" even when input was
well within limits. This affected all meeting summarization calls
when meeting_thinking was enabled with a DashScope provider.
- Detect DashScope endpoints via base_url (dashscope.aliyuncs.com)
- Add _build_thinking_extra() helper for format dispatch
- Apply to all three call sites: generate, generate_stream_tagged,
generate_stream
…cription - Auto-open floating transcript panel on the rising edge of realtime transcription starting (false → true transition) - After recording stops and audio is saved, automatically trigger file transcription if a cloud/file provider is configured, replacing realtime WebSocket segments with full-quality transcription
…ord mode When coming from record mode, save_realtime_transcript already set status to completed. The upload_audio endpoint was unconditionally resetting status to created, which broke the flow where the frontend expects completed status to immediately trigger /transcribe. Now only resets to created if there's no transcript yet (pure upload).
…lity - Extract JSON from reasoning_content before _strip_think() when json_mode is active (fixes DashScope/mimo empty response bug) - Deduplicate blueprint and section SSE streams to prevent duplicate LLM calls on page refresh - Scale max_tokens 2x when thinking mode is active - Rewrite Detail section style: final answers only, no discussion journey, speaker attribution only for decisions/opinions - Strengthen language constraint (hard failure on language switch) - Add inference rules: allow single-step arithmetic, forbid multi-step/domain-specific derivations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
reasoning_contentbefore_strip_think()whenjson_modeis active. Fixes empty response bug on DashScope/mimo models where JSON answer gets trapped inside<think>tags.max_tokens2x when thinking mode is active, preventing content truncation (especially Detail sections).Files changed
src/providers/llm/openai_compat.py_extract_json_from_raw()helper +generate()fallback fixsrc/meeting/service.py_thinking_max_tokens()src/prompts.py