DeepTutor v1.5.4 Release Notes
Release Date: 2026.07.24
A same-day maintenance follow-up to v1.5.3, focused on how chat feels: the post-answer "generating" stall is gone, IM partners render Markdown tables faithfully, and the JSON that models hand back parses more robustly. Drop-in — no migrations.
What's New
Chat responsiveness
- The seconds-long "generating…" stall after an answer finished streaming is eliminated: the turn's completion event now carries the persisted message ids so the frontend reconciles them in place instead of refetching and re-rendering the whole session, turn events flush in one transaction (#678), and the streaming autoscroll no longer forces a layout every frame.
- Pressing Enter while the assistant is still streaming no longer fires a second, interleaved message (#674).
Faithful IM tables
Markdown-table handling is unified across partner channels, fixing empty cells dropped from Slack (#679) and Feishu (#683) tables and empty rows misread as header separators (#682).
Sturdier LLM-output parsing
Structured output survives messier model responses: <think> reasoning tags are stripped before parsing (#675), a JSON value followed by adjacent values no longer breaks Deep Research extraction (#680), and the parser returns the longest decodable value instead of the first prefix it finds (#692).
Assorted fixes
- Quiz cards generated mid-stream are scoped to their own turn — a new quiz no longer inherits (and silently re-reports) the previous quiz's answers (#677).
- The create-KB form no longer loses typed input and loaded files while another knowledge base is indexing in the background (#691).
- Math Animator reads
500msas milliseconds, not minutes (#681).
Upgrade Notes
Drop-in from v1.5.3: pip install -U deeptutor; Docker users pull ghcr.io/hkuds/deeptutor:latest. No migrations, no schema or config changes.
Full Changelog: v1.5.3...v1.5.4