| # Changelog |
|
|
| All notable changes to this project will be documented in this file. |
|
|
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). |
|
|
| ## [0.2.1] - 2026-04-26 |
|
|
| ### Features |
|
|
| - **[VoxCPM2](https://github.com/OpenBMB/VoxCPM) TTS provider with voice cloning** β MultiMind Classroom adapts to user-managed VoxCPM backends (vLLM-Omni, Nano-VLLM, official Python API). Clone any voice from a reference audio clip you upload or record in the browser, or let Auto Voice generate a fitting voice from each agent's persona at synthesis time. Voice profiles are stored locally to keep the serverless setup model. The Agent Bar exposes a searchable, previewable voice picker that draws from the global VoxCPM voice pool [#496](https://github.com/THU-MAIC/MultiMind Classroom/pull/496) |
| - **Per-model thinking configuration** β First-class metadata for each model's reasoning capability (effort levels, on/off toggle, adjustable budget, or fixed thinking) flows through chat and all generation paths and is mapped to the right provider-specific request fields (Anthropic `thinking`, OpenAI `reasoning`, etc.). The model selector becomes a unified provider/model/thinking popover with compact search and a much smaller toolbar footprint [#494](https://github.com/THU-MAIC/MultiMind Classroom/pull/494) |
| - **End-of-course completion page with persistent quiz state** β When the outline is fully materialized, students see a course-complete view with quiz score card, scene-type stat cards, and a (motion-respecting) confetti celebration. Quiz answers persist on submit and grading results persist on completion, so navigating away and back restores the reviewing state with AI feedback intact instead of resetting [#484](https://github.com/THU-MAIC/MultiMind Classroom/pull/484) |
| - Add latest released models including [GPT-5.5](https://github.com/THU-MAIC/MultiMind Classroom/pull/487), DeepSeek-V4 (`-pro`, `-flash`), Xiaomi [MiMo](https://github.com/XiaomiMiMo) (`mimo-v2.5-pro`, `mimo-v2.5`), Tencent [Hy3](https://github.com/Tencent-Hunyuan), and [OpenRouter](https://openrouter.ai/) as a multi-provider gateway [#481](https://github.com/THU-MAIC/MultiMind Classroom/pull/481) [#487](https://github.com/THU-MAIC/MultiMind Classroom/pull/487) |
| - Add OpenAI image generation (GPT-Image-2) as a media provider [#481](https://github.com/THU-MAIC/MultiMind Classroom/pull/481) |
| - Refresh built-in model registries across Anthropic, DeepSeek, Kimi, Qwen, MiniMax, Grok, OpenAI, GLM, SiliconFlow, and Ollama; persisted local settings now rehydrate in registry order so newly curated lists appear consistent without clearing state [#481](https://github.com/THU-MAIC/MultiMind Classroom/pull/481) |
| - Add inline search for recent classrooms on the home page with deferred filtering by name and description, keyboard-driven open/clear/collapse [#476](https://github.com/THU-MAIC/MultiMind Classroom/pull/476) |
| - Add Deep-Interactive badge on classroom thumbnails for sessions generated with Interactive Mode [#478](https://github.com/THU-MAIC/MultiMind Classroom/pull/478) |
| - Replace always-included media instruction blocks in generation prompts with conditional snippet includes gated on `imageEnabled` / `videoEnabled` β disabled capabilities are removed from the prompt entirely instead of relying on negative-override directives the model often ignored [#490](https://github.com/THU-MAIC/MultiMind Classroom/pull/490) (by @YizukiAme) |
|
|
| ### Bug Fixes |
|
|
| - Fix language drift between outline and scene generation by unifying the languageDirective across the pipeline so the same target language flows from outline planning through every per-scene call [#474](https://github.com/THU-MAIC/MultiMind Classroom/pull/474) |
|
|
| ### Other Changes |
|
|
| - Refactor whiteboard role prompts to file-based markdown templates and add a geometry-conflict detector (overlap, line-through-bbox, canvas clipping) that surfaces problems back to the model. Eval (flash, repeat 3, gemini-3.1-pro scorer) shows overall quality 5.4 β 6.1 and overlap 6.3 β 8.1 from prompt + detector alone [#485](https://github.com/THU-MAIC/MultiMind Classroom/pull/485) |
| - Migrate orchestration prompt builders (`buildStructuredPrompt`, `buildDirectorPrompt`, `buildPBLSystemPrompt`) from inline TS template literals to file-based markdown templates under `lib/prompts/`, sharing the loader infrastructure with the generation pipeline. `prompt-builder.ts` 890 β 314 lines; future content tweaks land as markdown edits [#459](https://github.com/THU-MAIC/MultiMind Classroom/pull/459) |
|
|
| ## [0.2.0] - 2026-04-20 |
|
|
| ### Features |
|
|
| - **Deep Interactive Mode** β Generate hands-on interactive scenes (3D visualization, simulation, game, mind map/diagram, online programming) with an AI teacher who operates the UI to guide students. Fully responsive across desktop, tablet, and mobile [#461](https://github.com/THU-MAIC/MultiMind Classroom/pull/461) |
| - Add code element support on the whiteboard β AI agents can write, display, and reference runnable code during lessons [#385](https://github.com/THU-MAIC/MultiMind Classroom/pull/385) (by @cosarah) |
| - Add Arabic (ar-SA) interface language [#431](https://github.com/THU-MAIC/MultiMind Classroom/pull/431) (by @YizukiAme) |
| - Add MinerU Cloud API as a PDF parsing provider, with a dedicated settings UI [#438](https://github.com/THU-MAIC/MultiMind Classroom/pull/438) |
| - Add latest OpenAI models to the default config [#416](https://github.com/THU-MAIC/MultiMind Classroom/pull/416) (by @donghch) |
| - Add GLM-5.1 and GLM-5V-Turbo to GLM preset models [#437](https://github.com/THU-MAIC/MultiMind Classroom/pull/437) |
| - Add international base URL shortcuts for GLM, Kimi, and MiniMax in provider settings [#449](https://github.com/THU-MAIC/MultiMind Classroom/pull/449) |
| - Add anti-framing security headers (X-Frame-Options + CSP `frame-ancestors`) with an optional `ALLOWED_FRAME_ANCESTORS` override [#430](https://github.com/THU-MAIC/MultiMind Classroom/pull/430) (by @YizukiAme) |
| - Add i18n key alignment check to CI so missing or extra translation keys fail the build [#447](https://github.com/THU-MAIC/MultiMind Classroom/pull/447) (by @KanameMadoka520) |
| - Add whiteboard layout quality eval harness and unify it with the outline-language harness [#425](https://github.com/THU-MAIC/MultiMind Classroom/pull/425) [#453](https://github.com/THU-MAIC/MultiMind Classroom/pull/453) |
|
|
| ### Bug Fixes |
|
|
| - Fix classroom ZIP export to use the latest classroom name from IndexedDB [#435](https://github.com/THU-MAIC/MultiMind Classroom/pull/435) |
| - Fix spotlight cutout for text elements and add element-content variant for image/video [#457](https://github.com/THU-MAIC/MultiMind Classroom/pull/457) |
|
|
| ### Other Changes |
|
|
| - Renew the README with Deep Interactive Mode showcase and visual assets [#463](https://github.com/THU-MAIC/MultiMind Classroom/pull/463) (by @Shirokumaaaa) |
| - Update Discord invite links across README, CONTRIBUTING, and issue templates |
|
|
| ## [0.1.1] - 2026-04-14 |
|
|
| ### Features |
| - Add inline language inference for outline and PBL generation, replacing manual language selector [#412](https://github.com/THU-MAIC/MultiMind Classroom/pull/412) (by @cosarah) |
| - Add ACCESS_CODE site-level authentication for shared deployments [#411](https://github.com/THU-MAIC/MultiMind Classroom/pull/411) |
| - Add classroom export and import as ZIP [#418](https://github.com/THU-MAIC/MultiMind Classroom/pull/418) |
| - Add custom OpenAI-compatible TTS/ASR provider support [#409](https://github.com/THU-MAIC/MultiMind Classroom/pull/409) |
| - Add Ollama as built-in provider with keyless activation [#94](https://github.com/THU-MAIC/MultiMind Classroom/pull/94) (by @f1rep0wr) |
| - Add Japanese (ja-JP) locale [#365](https://github.com/THU-MAIC/MultiMind Classroom/pull/365) (by @YizukiAme) |
| - Add Russian (ru-RU) locale [#261](https://github.com/THU-MAIC/MultiMind Classroom/pull/261) (by @maximvalerevich) |
| - Migrate i18n infrastructure to i18next framework [#331](https://github.com/THU-MAIC/MultiMind Classroom/pull/331) (by @cosarah) |
| - Add MiniMax provider support [#182](https://github.com/THU-MAIC/MultiMind Classroom/pull/182) (by @Hi-Jiajun) |
| - Add Doubao TTS 2.0 (Volcengine) provider [#283](https://github.com/THU-MAIC/MultiMind Classroom/pull/283) |
| - Add configurable model selection for TTS and ASR [#108](https://github.com/THU-MAIC/MultiMind Classroom/pull/108) (by @ShaojieLiu) |
| - Add context-aware Tavily web search when PDF is uploaded [#258](https://github.com/THU-MAIC/MultiMind Classroom/pull/258) (by @nkmohit) |
| - Add course rename [#58](https://github.com/THU-MAIC/MultiMind Classroom/pull/58) (by @YizukiAme) |
| - Add end-to-end generation happy path test [#405](https://github.com/THU-MAIC/MultiMind Classroom/pull/405) |
| |
| ### Bug Fixes |
| - Fix DNS rebinding bypass in SSRF validation [#386](https://github.com/THU-MAIC/MultiMind Classroom/pull/386) (by @YizukiAme) |
| - Add ALLOW_LOCAL_NETWORKS env var for self-hosted deployments [#366](https://github.com/THU-MAIC/MultiMind Classroom/pull/366) |
| - Fix custom provider baseUrl not persisting on creation [#417](https://github.com/THU-MAIC/MultiMind Classroom/pull/417) (by @YizukiAme) |
| - Hide Ollama from model selector when not configured [#420](https://github.com/THU-MAIC/MultiMind Classroom/pull/420) (by @cosarah) |
| - Fix agent configs not persisting in server-generated classrooms [#336](https://github.com/THU-MAIC/MultiMind Classroom/pull/336) (by @YizukiAme) |
| - Fix action filtering logic and add safety improvements [#163](https://github.com/THU-MAIC/MultiMind Classroom/pull/163) (by @zky001) |
| - Fix modifier-key combos triggering single-key shortcuts [#359](https://github.com/THU-MAIC/MultiMind Classroom/pull/359) (by @YizukiAme) |
| - Fix agent mode selection for conditionally set generatedAgentConfigs [#373](https://github.com/THU-MAIC/MultiMind Classroom/pull/373) (by @YizukiAme) |
| - Unify TTS model selection to per-provider and fix ElevenLabs model_id [#326](https://github.com/THU-MAIC/MultiMind Classroom/pull/326) |
| - Allow model-level test connection without client-side API key [#309](https://github.com/THU-MAIC/MultiMind Classroom/pull/309) (by @cosarah) |
| - Add structured request context to all API error logs [#337](https://github.com/THU-MAIC/MultiMind Classroom/pull/337) (by @YizukiAme) |
| - Fix breathing bar background color in roundtable [#307](https://github.com/THU-MAIC/MultiMind Classroom/pull/307) |
|
|
| ### Other Changes |
| - Add missing Ollama and Doubao provider names for ru-RU [#389](https://github.com/THU-MAIC/MultiMind Classroom/pull/389) (by @cosarah) |
| - Update Ollama logo to official version [#400](https://github.com/THU-MAIC/MultiMind Classroom/pull/400) (by @cosarah) |
| - Remove deprecated Gemini 3 Pro Preview model [#142](https://github.com/THU-MAIC/MultiMind Classroom/pull/142) (by @Orinameh) |
| - Update expired Discord invite link |
| - Create SECURITY.md [#281](https://github.com/THU-MAIC/MultiMind Classroom/pull/281) (by @fai1424) |
|
|
| ### New Contributors |
|
|
| @f1rep0wr, @maximvalerevich, @Hi-Jiajun, @cosarah, @zky001, @Orinameh, @fai1424 |
|
|
| ## [0.1.0] - 2026-03-26 |
|
|
| The first tagged release of MultiMind Classroom, including all improvements since the initial open-source launch. |
|
|
| ### Highlights |
|
|
| - **Discussion TTS** β Voice playback during discussion phase with per-agent voice assignment, supporting all TTS providers including browser-native [#211](https://github.com/THU-MAIC/MultiMind Classroom/pull/211) |
| - **Immersive Mode** β Full-screen view with speech bubbles, auto-hide controls, and keyboard navigation [#195](https://github.com/THU-MAIC/MultiMind Classroom/pull/195) (by @YizukiAme) |
| - **Discussion buffer-level pause** β Freeze text reveal without aborting the AI stream [#129](https://github.com/THU-MAIC/MultiMind Classroom/pull/129) (by @YizukiAme) |
| - **Keyboard shortcuts** β Comprehensive roundtable controls: T/V/Esc/Space/M/S/C [#256](https://github.com/THU-MAIC/MultiMind Classroom/pull/256) (by @YizukiAme) |
| - **Whiteboard enhancements** β Pan, zoom, auto-fit [#31](https://github.com/THU-MAIC/MultiMind Classroom/pull/31), history and auto-save [#40](https://github.com/THU-MAIC/MultiMind Classroom/pull/40) (by @YizukiAme) |
| - **New providers** β ElevenLabs TTS [#134](https://github.com/THU-MAIC/MultiMind Classroom/pull/134) (by @nkmohit), Grok/xAI for LLM, image, and video [#113](https://github.com/THU-MAIC/MultiMind Classroom/pull/113) (by @KanameMadoka520) |
| - **Server-side generation** β Media and TTS generation on the server [#75](https://github.com/THU-MAIC/MultiMind Classroom/pull/75) (by @cosarah) |
| - **1.25x playback speed** [#131](https://github.com/THU-MAIC/MultiMind Classroom/pull/131) (by @YizukiAme) |
| - **OpenClaw integration** β Generate classrooms from Feishu, Slack, Telegram, and 20+ messaging apps [#4](https://github.com/THU-MAIC/MultiMind Classroom/pull/4) (by @cosarah) |
| - **Vercel one-click deploy** [#2](https://github.com/THU-MAIC/MultiMind Classroom/pull/2) (by @cosarah) |
|
|
| ### Security |
|
|
| - Fix SSRF and credential forwarding via client-supplied baseUrl [#30](https://github.com/THU-MAIC/MultiMind Classroom/pull/30) (by @Wing900) |
| - Use resolved API key in chat route instead of client-sent key [#221](https://github.com/THU-MAIC/MultiMind Classroom/pull/221) |
|
|
| ### Testing |
|
|
| - Add Vitest unit testing infrastructure [#144](https://github.com/THU-MAIC/MultiMind Classroom/pull/144) |
| - Add Playwright e2e testing framework [#229](https://github.com/THU-MAIC/MultiMind Classroom/pull/229) |
|
|
| ### New Contributors |
|
|
| @YizukiAme, @nkmohit, @KanameMadoka520, @Wing900, @Bortlesboat, @JokerQianwei, @humingfeng, @tsinglua, @mehulmpt, @ShaojieLiu, @Rowtion |
|
|