DeepTutor v1.3.5 Release Notes
Release Date: 2026.05.02
v1.3.5 focuses on making local setup and knowledge-base chat more reliable. The
launcher now follows the same runtime settings users configure in the web app,
RAG tool calls are stricter about real search queries, and local embedding
servers no longer receive placeholder auth headers.
Highlights
Smoother Local Launch
- Setup Tour writes launch ports - the guided installer now records backend
and frontend ports indata/user/settings/env.json, so later launches can use
the same choices. start_web.pyreads runtime settings first - backend/frontend ports and UI
language come from web settings when available, with.envkept as fallback.- Cleaner process handling - the launcher records started processes, detects
port conflicts, waits for readiness, and exposesscripts/stop_web.pyfor
cleaning up recorded backend/frontend processes. - Setup requirements are clearer - README and environment examples now align
around Node.js 20.9+, install profiles, complete embedding endpoint URLs, and
optional attachment storage.
More Reliable RAG Tool Calls
- RAG queries must be non-empty - tool schemas, prompts, and built-in checks
now reject blank queries early instead of passing empty input into retrieval. - Chat-side fallback is safer - when a model omits the RAG query, the agentic
pipeline can reuse the user's actual question as the retrieval query. - ReAct calls accept simple string input -
ragactions that provide a
string are normalized to{"query": ...}, reducing fragile tool-call failures.
Local Embedding Compatibility
- No fake API key for local embedding providers - runtime config no longer
injectssk-no-key-requiredfor local embedding servers. - Placeholder keys are not sent as auth headers - OpenAI-compatible
embedding requests suppressAuthorizationandapi-keywhen the configured
key is the local placeholder, which helps LM Studio, Ollama, vLLM, and similar
servers. - Embedding examples are easier to follow - English and Chinese sample env
files now explain thatEMBEDDING_HOSTis the exact endpoint DeepTutor calls.
Web UX Polish
- Dark-mode provider dropdown is readable - the Settings provider selector
now uses the theme background token, fixing the white native dropdown popover
reported on Edge/Chromium. - Settings controls are more consistent - select fields and setup tour
spotlight behavior were tightened for a steadier settings experience. - Book reference payloads are normalized more defensively - selected book
references keep the same behavior with cleaner filtering and deduplication.
Tests
- Added launch settings tests for runtime settings precedence,
.envfallback,
and invalid-port handling. - Added
start_web.pytests for translation, state persistence, and recorded
process matching. - Added Setup Tour coverage for dependency profiles, Math Animator selection,
Node.js version validation, and saved launch ports. - Added RAG/tool tests for non-empty query schemas, blank-query rejection, and
fallback query behavior. - Added embedding runtime and adapter tests for local providers, placeholder API
keys, and auth header suppression.
Upgrade Notes
- Local web installs now require Node.js 20.9 or newer.
start_web.pyand setup helpers preferdata/user/settings/env.jsonand
interface.jsonover.env; edit the web Settings page or rerun
start_tour.pywhen changing launch ports.- Local OpenAI-compatible embedding servers should use an empty API key unless a
real key is required. Avoid relying onsk-no-key-requiredas a transmitted
credential. - Custom RAG callers should always provide a non-empty
query; blank queries now
fail fast by design.
Full Changelog: v1.3.4...v1.3.5