DeepTutor v1.2.0 Release Notes
Release Date: 2026.04.20
Highlights
Book Engine — Multi-Agent "Living Book" Compiler
Introduced a brand-new Book Engine (deeptutor/book/) that compiles user inputs — chat history, notebooks, knowledge bases, and free-form intent — into structured, block-based, interactive "living books". The engine sits parallel to ChatOrchestrator and drives a five-stage multi-agent pipeline:
- Ideation — an LLM proposes a book outline from the user's intent and source material.
- Source exploration — a
SourceExploreragent performs deep RAG retrieval and knowledge-base health checks (kb_health.py) to surface the most relevant passages. - Spine synthesis — a
SpineSynthesizeragent merges the proposal with explored sources into a chapter/page tree (Spine → Chapter → Page). - Page planning — a
PagePlanneragent designs each page as an ordered sequence of typed blocks. - Block compilation — a
BookCompilerdispatches each block to its dedicated generator.
14 block types ship in Phase 1: text, callout, quiz, flash cards, code, figure, deep dive, animation, interactive, timeline, concept graph, section, user note, and a placeholder for blocks still compiling. Each generator has its own bilingual (en/zh) YAML prompts and can call RAG helpers for grounded content.
The web UI (web/app/(workspace)/book/) includes a BookCreator wizard (intent → proposal → spine confirmation), a SpineEditor for drag-and-drop chapter reordering, a PageReader with an outline nav rail and per-block renderers (concept graphs rendered as interactive force-directed diagrams, quizzes with inline grading, flash cards with flip animations, etc.), a BookProgressTimeline for real-time compilation tracking, a BookChatPanel for in-context Q&A, and a BookHealthBanner that warns when the underlying KB is unhealthy. A per-book WebSocket stream fans out compilation events to all connected clients.
Backend: POST /api/v1/book/create, POST /confirm-proposal, POST /confirm-spine, POST /compile-page, GET /list, GET /{book_id}, DELETE /{book_id}, plus WS /ws/{book_id}. CLI: deeptutor book create, deeptutor book list, deeptutor book show, deeptutor book delete.
Legacy Guided Learning Removed
The deeptutor/agents/guide/ module (guide manager, 4 agents, 8 prompt YAMLs) and the entire /guide web UI (components, hooks, types, API router — ~5,300 lines) have been removed. The Book Engine supersedes Guided Learning with a richer, more extensible architecture.
Multi-Document Co-Writer Workspace
Co-Writer is no longer a single-document scratchpad. Each document now gets its own persistent directory under data/user/workspace/co-writer/documents/ with atomic manifest writes (CoWriterStorage). The web UI routes to per-document pages (/co-writer/[docId]) and the sidebar shows a CoWriterRecent section for quick access. New API endpoints handle full document CRUD (GET /list, POST /create, GET /{doc_id}, PATCH /{doc_id}, DELETE /{doc_id}).
Interactive HTML Visualizations
The Visualize capability now supports a fourth render type — html — alongside svg, chartjs, and mermaid. When the LLM determines that the user request requires "user interaction + state changes + mixed text/graphics" (e.g. draggable demos, step-by-step walkthroughs, clickable practice exercises), it produces a self-contained single-file HTML page that renders inside an iframe. A local validation pass (is_valid_html_document) checks the output before serving; if the model returns something unrenderable, a styled fallback template is injected instead. The LLM review stage is skipped for HTML pages (saving 30–60s of latency with negligible quality loss). A new figure constraint mode restricts the LLM to svg/chartjs/mermaid only — used internally by the Book Engine's figure block.
Question Bank @-Mention in Chat
A new QuestionBankPicker component lets users @-mention individual Question Bank entries directly in the chat composer. Selected entries are resolved by the turn runtime (_build_question_bank_context) into structured Markdown context — including question text, options, user/reference answers, and explanations — and injected alongside notebook and history references so the LLM can reason over specific past quiz performance.
Prompt Externalization — Phase 2
Continued the migration of hard-coded LLM strings into editable YAML files:
- answer_now —
question,research,solve, andvisualizecapabilities now load their fast-path prompts fromprompts/{en,zh}/answer_now.yaml. - notebook agents —
analysis_agentandsummarize_agentprompts moved to YAML; the Python modules now delegate to the prompt manager. - Capability modules (
_answer_now.py,deep_question.py,deep_research.py,deep_solve.py,visualize.py) slimmed down accordingly.
Co-Writer Module Restructured
Moved deeptutor/agents/co_writer/ to deeptutor/co_writer/ (top-level service module) to reflect its standalone nature alongside deeptutor/book/.
Sidebar Overhaul
- "Guided Learning" nav entry replaced with Book (Library icon).
- Added BookRecent and CoWriterRecent sidebar sections with per-item navigation.
- Sidebar collapsed/expanded state lifted into
AppShellContextso it persists across route transitions. - Collapsed sidebar refined: logo + expand toggle layered with hover reveal, circular "New Chat" button, subtle dividers, and consistent spacing.
Capability & Config Panel Refresh
Updated shared type definitions and config panels across Quiz, Research, Visualize, and Math Animator to align with new capability options (e.g. html render mode, expanded locale keys). TracePanels in the chat UI received layout and styling improvements.
README & Localization Update
All nine localized README files (AR, CN, ES, FR, HI, JA, PT, RU, TH) updated to reflect the Book Engine, multi-document Co-Writer, and other v1.2.0 features.
Bug Fixes
- Channel manager import-time crash —
loguru.loggerwas imported at module scope, causingImportErrorwhen TutorBot dependencies were absent. Replaced with a lazy_logger()factory function. - Obsolete
test_app_facade.py— removed a stale test module that referenced deleted code paths. - Missing
__init__.pyin test packages — added init files acrosstests/agents/,tests/api/,tests/cli/,tests/knowledge/,tests/scripts/,tests/services/llm/,tests/services/memory/,tests/services/search/,tests/services/session/, andtests/tools/to fix import resolution.
Test Suite & CI
- CI now installs
requirements/tutorbot.txtand caches it alongside server/cli requirements. - Removed the obsolete
test_app_facadefrom the CI test manifest. - Updated
conftest.pyfor RAG pipeline tests; refreshed prompt parity, capabilities runtime, LLM probe config, factory provider, model catalog, config loader, and notebook service tests to match restructured imports. - Added
faviconandapple-touch-iconassets for PWA metadata.
Full Changelog: v1.1.2...v1.2.0