-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Comparing changes
Open a pull request
base repository: HKUDS/DeepTutor
base: v1.3.6
head repository: HKUDS/DeepTutor
compare: v1.3.7
- 12 commits
- 26 files changed
- 5 contributors
Commits on Apr 30, 2026
-
fix: fallback content to reasoning_content when DeepSeek returns empt…
…y content field DeepSeek models (v4-flash, reasoner, etc.) return the actual response in the reasoning_content field while leaving content empty when thinking mode is enabled. The _parse() method only fell back to m.reasoning (DashScope-style), causing "LLM returned empty response" errors. Also fix idea_agent to handle LLM responses that are JSON arrays instead of objects with an "ideas" key.
Configuration menu - View commit details
-
Copy full SHA for cf9d021 - Browse repository at this point
Copy the full SHA cf9d021View commit details -
fix: add reasoning_content fallback in streaming path and align prece…
…dence - Swap reasoning_content/reasoning fallback order in _parse() to match the precedence used when extracting reasoning_content (per Copilot review) - Add reasoning_content → content fallback in _parse_chunks() for both provider_core and tutorbot providers - Fix streaming path in factory.py: when only reasoning chunks are emitted (no direct content), fall back to response.content so downstream consumers receive non-empty responses - Harden idea_agent against non-dict JSON payloads
Configuration menu - View commit details
-
Copy full SHA for 96070fa - Browse repository at this point
Copy the full SHA 96070faView commit details -
feat: support LLM_REASONING_EFFORT env var for controlling thinking mode
- Read LLM_REASONING_EFFORT from environment in config.py - Pass config.reasoning_effort to chat_with_retry/chat_stream_with_retry in both complete() and stream() (was previously dropped) - Set to "low"/"medium"/"high" to enable thinking, leave empty to use automatic detection based on reasoning_model_patterns
Configuration menu - View commit details
-
Copy full SHA for bb5cd2c - Browse repository at this point
Copy the full SHA bb5cd2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3e0de96 - Browse repository at this point
Copy the full SHA 3e0de96View commit details -
docs: fix LLM_REASONING_EFFORT value descriptions per DeepSeek API docs
DeepSeek only supports high/max for reasoning_effort; minimal is a DeepTutor convention that maps to thinking.type=disabled. Update comments to be accurate for each provider.
Configuration menu - View commit details
-
Copy full SHA for 44686ab - Browse repository at this point
Copy the full SHA 44686abView commit details -
fix: use robust JSON parser in book block generators
Replace fragile json.loads() with parse_json_response() in code, flash_cards, timeline, and deep_dive generators. Handles LLM responses with markdown fences, preamble text, and malformed JSON.
Configuration menu - View commit details
-
Copy full SHA for ed9e810 - Browse repository at this point
Copy the full SHA ed9e810View commit details -
fix: apply LLM_REASONING_EFFORT env var via resolver path as well
get_llm_config() prefers the resolver path over .env, so the env var was silently ignored. Apply it as an override regardless of which path produced the config.
Configuration menu - View commit details
-
Copy full SHA for 66d0f62 - Browse repository at this point
Copy the full SHA 66d0f62View commit details
Commits on May 2, 2026
-
fix(chat): forward extra_headers to all LLM calls in agentic pipeline
The chat capability silently dropped `extra_headers` from the active LLM profile because three downstream call sites in `AgenticChatPipeline` did not forward them: - `_build_openai_client()` constructed `AsyncOpenAI` / `AsyncAzureOpenAI` without `default_headers`, so custom headers required by some gateways (e.g. a `User-Agent` override to bypass WAF allowlists that block `OpenAI/Python <ver>`) were lost on the native-tool-calling path. - `_stream_messages` and `_run_react_fallback` invoked `llm_stream()` with `model`, `api_key`, `base_url`, `binding` but no `extra_headers`. The factory's `_resolve_call_config` treats this set of caller-provided fields as an explicit override and rebuilds `LLMConfig` with empty `extra_headers`, bypassing the catalog value loaded by `get_llm_config()`. Pulls `extra_headers` from `llm_config` once in `__init__` and forwards it from all three call sites. Reproduce: configure an OpenAI-compatible gateway whose WAF rejects the default `OpenAI/Python <ver>` User-Agent; set `extra_headers: { "User-Agent": "Mozilla/5.0 ..." }` on the active LLM profile in `model_catalog.json`. Before this change, chat returns HTTP 403 "Your request was blocked." After, the override reaches the gateway and chat succeeds.Configuration menu - View commit details
-
Copy full SHA for 51f8299 - Browse repository at this point
Copy the full SHA 51f8299View commit details
Commits on May 4, 2026
-
Merge pull request #436 from zuoliangyu/fix/chat-extra-headers
fix(chat): forward extra_headers to all LLM calls in agentic pipeline
Configuration menu - View commit details
-
Copy full SHA for 5520e21 - Browse repository at this point
Copy the full SHA 5520e21View commit details -
Merge remote-tracking branch 'origin/dev' into fix/deepseek-reasoning…
…-content-fallback # Conflicts: # deeptutor/book/blocks/code.py # deeptutor/book/blocks/deep_dive.py # deeptutor/book/blocks/flash_cards.py # deeptutor/book/blocks/timeline.py
Configuration menu - View commit details
-
Copy full SHA for d23ea03 - Browse repository at this point
Copy the full SHA d23ea03View commit details -
Merge pull request #428 from Starfie1d1272/fix/deepseek-reasoning-con…
…tent-fallback fix: fallback content to reasoning_content when DeepSeek returns empty content field
Configuration menu - View commit details
-
Copy full SHA for b1faa72 - Browse repository at this point
Copy the full SHA b1faa72View commit details -
Co-authored-by: Cursor <cursoragent@cursor.com>
Configuration menu - View commit details
-
Copy full SHA for 9389178 - Browse repository at this point
Copy the full SHA 9389178View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v1.3.6...v1.3.7