DeepTutor v1.6.10 Release Notes
Release Date: 2026.09.22
Building on v1.6.9, v1.6.10 gives the native LightRAG engine its own role models and makes a published index state what it was built with. Around it: PDF attachments now honor your parsing engine, a generation cut off at its token budget says so instead of failing as a parse error, and model providers are no longer filtered out of services DeepTutor could not pre-verify. Drop-in — no migrations.
What's New
Native LightRAG role models
The native LightRAG engine takes a base model of its own, independent of the chat model, with optional per-role overrides for extraction, keyword, query and vision. Vision is off by default on a new configuration. Knowledge-base creation and full rebuilds use the shared engine defaults rather than per-index overrides, and a changed configuration is shown for review before it is submitted.
An index that records how it was built
Publication pins the extraction and vision identities an index was built with, so later changes to the engine defaults leave an existing index alone. Index versions display their embedding, extraction and vision provenance; an index whose historical identity is unknown stays queryable but refuses incremental writes until a full rebuild. Enabling, disabling or replacing vision or extraction requires a full rebuild, and a rebuild that fails withdraws its publication instead of leaving a half-published index. Credentials are excluded from persisted policy and provenance.
Embedding compatibility is enforced, not advised
Native LightRAG queries and incremental indexing require the embedding configuration recorded by the published index — model, dimension and endpoint identity. If it changes, restore the original configuration or rebuild with the current embedding. The knowledge-base detail and index-version views carry the recovery guidance, and files stay available for viewing and download throughout.
PDF attachments follow your parsing engine
A PDF attached to a turn goes through the parser configured in Settings → Knowledge Base, with its processing stages visible while it runs. When the global default engine cannot accept a file, DeepTutor falls back to a text-capable engine rather than failing the turn, and a parser failure still falls back to native PDF extraction. Non-PDF turns skip parser setup entirely, and regenerating a turn that carries attachments no longer breaks request validation.
A truncated answer says it was truncated
Responses now distinguish a complete generation from one cut off at max_tokens, so a budget exhausted by a reasoning model no longer surfaces as an undiagnosable parse error. Math animator raises its own budget across retries (capped at twice the base) and tells the retry that the budget, not the format, ran out. Visualize explains a truncated render on screen instead of ending silently, and its temperature and token budget are now configurable in Settings → Capabilities.
Model providers you can configure and test
Provider options are no longer hidden from services DeepTutor could not pre-verify: pick any provider for embedding, search, voice or multimodal, and let the connection test say whether that model actually serves that role. Unrecognized vendors resolve through the generic OpenAI-compatible binding, except for search, which has no generic adapter and is rejected by name. Staging a provider connection also works over plain HTTP, where crypto.randomUUID does not exist and the Continue button previously did nothing.
Learning and mastery evidence
Mastery evidence binds to objective and question identity, so a repair applies to the question it came from and a replayed qualitative assessment does not double-count. A mastery card that was never posted can no longer be claimed as delivered, and selected quizzes must complete before delivery. Notebook evidence is decoupled from chat sessions, and the Personalized Learning dashboard no longer crashes on its first card.
Reliability fixes
Sandboxed execution tolerates a bwrap loopback denial on modern Linux and keeps network isolation during fallback. The launcher no longer opens a stray console window that read as "the backend exited", and settings-derived environment keys stop shadowing the live settings API across processes. Research reports recover their labels on a finished reply, GitHub source sync records a confirmed-current source correctly, mastery composer resources match the chat page, persona presets are admin-gated, retry state survives request validation, and tooltips are accessible across the UI.
Upgrade Notes
Run pip install -U deeptutor; Docker users pull ghcr.io/hkuds/deeptutor:latest.
- Existing LightRAG indexes keep working. They query as before; only incremental writes are gated. An index with no recorded embedding identity, or one whose embedding configuration has changed, asks for a restore or a full rebuild before accepting new documents.
- Vision indexing is opt-in on new role configurations. Turning it on (or off, or swapping the model) applies to the next full rebuild, not to an index already published.
- Provider lists are wider on purpose. A provider that cannot serve the selected role now fails its connection test instead of being absent from the list. Test before applying.
Full Changelog: v1.6.9...v1.6.10