Skip to content

v1.6.5

Latest

Choose a tag to compare

@pancacake pancacake released this 06 Sep 05:59

DeepTutor v1.6.5 Release Notes

Release Date: 2026.09.06

v1.6.5 gives DeepTutor a folder of your own to work in. You point it at a directory, and the assistant can browse, read, and search what is already there while everything it generates lands in one predictable place — with anything leaving that place needing your approval first. Around that, code execution collapses into a single tool, Mastery Path learns when it is allowed to teach versus redesign, and Settings finally distinguishes "not configured" from "broken." Drop-in for local installs; Docker users should read the workspace mount note below.

What's New

A content workspace you choose

Point DeepTutor at any folder and it becomes the working directory for the whole session. The assistant can list, read, and search what is in it, so your own material is available without uploading anything. Generated files land in outputs/, and moving a file out of outputs/ into the rest of your folder is an explicit, user-approved step rather than something that happens quietly. Manage it from Settings, or with deeptutor workspace show, set, and reset.

One tool runs code

code_execution and exec were two tools with one job. They are now a single exec that takes Python, C, C++, or shell. Every call in a turn shares one working directory and one dependency environment, so a later call can reopen and revise a file an earlier call wrote instead of starting over.

Mastery Path knows which mode it is in

A study goal now moves between three modes — designing the outline, working it forward, and reviewing — and the available tools follow. Only outline can change the map, so a tutor cannot quietly rewrite your plan mid-lesson; only study and review can examine you, and neither will start before an outline is actually agreed. Posed questions arrive as a card that ends the turn, so answering is a deliberate act.

Settings separates "not set up" from "broken"

The overview grades every capability as a blocker, a warning, or a suggestion, and each row records whether the install genuinely depends on it. An optional video model you never configured is no longer reported as a fault; a parser you did select and that does not work is. The matrix carries identities, booleans, and reason codes only — provider URLs, model names, credentials, and exception text stay on the server, and model providers are never called to build it.

Questions appear while they are still being written

An ask_user card used to arrive all at once, several seconds after the prose introducing it. The card now appears with its intro and grows its options in place as the model writes them, so the turn no longer goes silent at the moment it asks you something.

Video learning you can keep

Connected Invidious accounts get their own adapters, transcript cues stay visible as playback moves, and timestamped notes export to Markdown. A visual learning board collects what a session produced.

Knowledge bases pin their indexing models

LightRAG knowledge bases record which models indexed them and let you pin those models per base, so re-indexing does not silently change the embedding behind an existing index.

Subagents over the wire

A hardened remote Hermes backend joins the local subagent harnesses, so a consulted agent can run somewhere other than this machine.

Fixes

Chinese Markdown keeps its raw content while streaming; unsafe web-search titles and snippets are filtered; DeepSeek reasoning-replay 400s from Responses turns fall back instead of failing the turn; Settings scrolls inside its own pane; legacy Mastery /study URLs redirect to /sessions; quiz card text decodes unicode escapes; restored reading material loads lazily; and source checkouts are detected correctly when updating.

Upgrade Notes

Run pip install -U deeptutor; Docker users pull ghcr.io/hkuds/deeptutor:latest. Settings, books, sessions, and learning data need no manual migration.

  • The code_execution tool is gone — its work moved into exec. Custom prompts, skills, or plugins that name code_execution should call exec with a language instead.
  • Docker workspace mount. The container now expects the content workspace at the stable path /workspace. Set DEEPTUTOR_WORKSPACE_HOST=/absolute/host/folder before python scripts/docker_compose.py up -d to choose the host folder; omitting it keeps ./data/user/workspace. The helper creates the folder and its outputs/ for you so the bind mount is not root-owned.
  • The sandbox runner sees less. It no longer mounts data/users; it receives /workspace read-only with /workspace/outputs writable, bounded by DEEPTUTOR_RUNNER_ALLOWED_WORKDIRS. Executed code can no longer reach another account's settings, chat history, or knowledge bases.
  • Multi-user deployments share the mounted workspace. When DEEPTUTOR_WORKSPACE_ROOT is set — every supplied Compose file sets it — that one folder is the content workspace for every account, and the path shows as locked in Settings. Leave it unset to keep per-user workspaces.
  • Extensions importing deeptutor.config.schema, .defaults, .accessors, or .constants must move to the public settings surfaces; those modules were removed.
  • The English and Chinese guides have been updated together at deeptutor.info.

Full Changelog: v1.6.4...v1.6.5