1.2.0
π Release v1.2.0
β¨ New Features
π Conversation Interruption
Users can now abort an LLM response mid-stream. Partial content (including reasoning/thinking) is automatically saved to the database β nothing is lost.
- Introduced placeholder mode: real MongoDB documents are created before the chat request, eliminating the old temporary ID mechanism
- New endpoint:
POST /create-message-placeholders
π³ Docker One-Click Deploy
docker compose up --build
4 services β MongoDB 8, MySQL 9.6, backend (Python 3.14), frontend (Node β nginx) β with health checks, startup ordering, and persistent volumes.
Also added Makefile (14 targets) and VS Code Dev Container (.devcontainer/).
π Full i18n Coverage
All hardcoded Chinese strings across the UI are now translation keys β chat actions, input controls, error boundary, loading screen, and API error messages. Added check-i18n-sync.mjs to keep en.json and zh.json in sync.
π‘οΈ Structured Error Handling
Unified error format across all endpoints β backend returns error codes via error_codes.py, frontend resolves them to localized messages via apiError.ts.
π Smarter Title Generation
Refactored to a Template Method pattern across all model services. Titles now match the user's language instead of defaulting to Chinese.
π¨ Model Select Box UI
Optimized the model selector dropdown appearance.
π Bug Fixes
- π package-lock.json was out of sync with
package.json, causingnpm cito fail in CI β regenerated without--legacy-peer-deps
π Docs
- README (EN & ZH) rewritten with Mermaid architecture diagrams
- Added
.webpdemo videos, replaced old PNG screenshots