DeepTutor v1.1.2 Release Notes
Release Date: 2026.04.18
Highlights
Schema-Driven Channels Tab with Token Reveal (#338)
The Channels tab in the Agents page is no longer hard-coded for Telegram. It now auto-discovers every channel (Telegram, Slack, Discord, Matrix, Email, Feishu, …) and renders a form directly from each channel's Pydantic config schema — no per-channel front-end code required. Secret fields (tokens, passwords, API keys) render as masked inputs with an eye-toggle for explicit reveal. A last_reload_error banner warns when live listeners failed to restart after a config change.
Channel Secret Masking
API responses no longer expose raw channel secrets. Tokens and passwords are replaced with *** by default; the admin edit form uses ?include_secrets=true to fetch plaintext when needed. Create and update responses are likewise masked.
Channel Config Validation & Reload Hardening
PATCH /tutorbot/{bot_id} now validates channel payloads upfront and returns a 422 with structured errors instead of silently persisting bad config. reload_channels is serialised with a per-instance lock to prevent duplicate listeners, and any failure is recorded in last_reload_error so the UI can surface it.
RAG Simplified to a Single Pipeline
Removed ~2,600 lines of unused RAG scaffolding (chunkers, embedders, indexers, parsers, retrievers, pipeline orchestrator, type definitions) that existed as placeholders for never-shipped backends. The RAG service is now a thin wrapper over the single LlamaIndex pipeline. Legacy rag_provider values (e.g. lightrag) are silently coerced to llamaindex and the KB is flagged for re-indexing.
Centralized File Type Routing
Consolidated file-type classification into a single FileTypeRouter module with a flat API (get_document_type, classify_files, get_supported_extensions, etc.). The old per-provider extension helpers are gone — there's only one provider. Unknown extensions still fall through to content sniffing before being rejected.
No More Phantom Knowledge Bases
Closed every code path that could silently call RAG against a non-existent KB:
- deep_solve — strips the
ragtool when no KB is attached and warns the user. - deep_research — drops
kbfrom sources, warns, and aborts if no sources remain. - SolveToolRuntime — returns a graceful "no KB selected" observation instead of crashing, keeping the ReAct loop alive.
- ResearchPipeline — returns a structured "skipped" event instead of falling back to the old
DE-allplaceholder. - DecomposeAgent — no longer defaults to
ai_textbook; disables RAG when no KB is provided.
Externalized Chat Prompts
Moved all hard-coded zh/en strings out of AgenticChatPipeline into editable YAML files (agentic_chat.yaml for each language). Stage labels, system prompts, user templates, and UI notices are now configurable without code changes. Falls back gracefully if the YAML is missing.
Thai README (#337)
Added README_TH.md with Thai-language documentation.
Bug Fixes
- Research pipeline crashed without a KB — the
DE-allfallback KB no longer exists in most installs; now short-circuits with a structured skip event. - Decompose agent tried RAG against
ai_textbook— replaced the hard-coded default withNoneand a defensive guard. - Bad channel config persisted silently — now rejected at the API boundary with a 422 before reaching disk.
- Concurrent
reload_channelscreated duplicate listeners — serialised via an asyncio lock; failure leaves the bot channel-less with a clear error instead of half-rebuilt. - Channel tokens leaked in API responses — now masked by default across all endpoints.
Test Suite
Added 6 new test modules (1,042 lines total): file-type routing, KB config migration, channel schema introspection, channel secret masking, RAG/KB consistency at the capability layer, and research pipeline RAG safety. Extended existing tests for the tool runtime, knowledge router, TutorBot router, and RAG pipeline modules.
What's Changed
- feat(tutorbot): Channels tab, Telegram UI, API channel reload, token … by @srinivasrk in #338
- docs: add Thai README documentation by @DoctorNasa in #337
- release: v1.1.2 — CI fix & release notes cleanup by @pancacake in #341
New Contributors
- @DoctorNasa made their first contribution in #337
Full Changelog: v1.1.1...v1.1.2