Releases: massif-01/ChatRaw
v2.1.3
ChatRaw v2.1.3
Highlights
Mindmap Renderer Plugin
- Rendering fix: Correct SVG namespace (
createElementNS), container layout, Markmap data pipeline - Format support: JSON (title/children, center/branches, root/data), Markdown headings, Mermaid mindmap
- Download: Top-right SVG export button (avoids tainted canvas; use PNG converters if needed)
Enhanced Export Plugin
- Export button now displays correctly (sync injection + polling fallback)
- Plugin main.js cache:
Cache-Control: no-cachefor fresh updates
Voice Input Plugin
- Web Speech API for speech-to-text in the input toolbar
Plugin Market & UI
- 2-column grid layout, search bar
- Info popover for plugin details
- Compact toggle switches (36×20)
- Wider settings modals
- Local install: drag-and-drop zip upload
Developer Docs
- Mindmap renderer example (MutationObserver, SVG export, createElementNS)
- index.json registration for plugin market
Docker
docker pull massif01/chatraw:v2.1.3
# or
docker pull massif01/chatraw:latestPlatforms: linux/amd64, linux/arm64
v2.1.2
ChatRaw v2.1.2
插件相关修复 / Plugin Fixes
Excel 解析器 (v1.0.2)
- 修复从插件市场安装时 lib/ 文件 404 问题
- 安装流程会下载 manifest dependencies 中的 lib 文件
- 修复 BUNDLED_PLUGINS_DIR 路径(支持本地开发)
- 增加 cellNF、raw 解析选项以提升表格读取准确性
Markdown 渲染增强 (v1.0.1)
- 添加 manifest dependencies,解决从市场安装时 KaTeX/Mermaid/lib 404
- 安装时自动下载全部 18 个 lib 文件
- 修复:CSS 依赖用 loadCSS 加载(不再误用 loadScript)
- 修复:hljs 语言包在 hljs 核心加载后再加载,避免 "hljs is not defined"
插件设置
- 修复 select 类型 options 为对象数组时的 Alpine x-for key 警告
- 支持
{value, label}格式的选项
文档上下文持久化 / Document Context Persistence
- 上传的表格/网页内容现会保存到对话历史
- 后续追问时模型仍可访问之前的文档内容
其他修复 / Other Fixes
- 修复点击「停止」时的 AbortError(流式响应)
- 开发者文档:补充 lib/dependencies 在插件市场安装中的说明
Docker
多平台镜像(linux/amd64, linux/arm64)发布至 Docker Hub:
massif01/chatraw:v2.1.2
如何更新 / How to Update
docker pull massif01/chatraw:v2.1.2
docker stop chatraw && docker rm chatraw
docker run -d -p 51111:51111 -v chatraw-data:/app/data --name chatraw massif01/chatraw:v2.1.2Full Changelog: v2.1.1...v2.1.2
v2.1.1
What's New in v2.1.1
UI Overhaul - shadcn/ui Design System Alignment
A comprehensive UI optimization touching mobile responsiveness, visual polish, design tokens, accessibility, and a new copy button.
Mobile Fixes
- Viewport height: Progressive fallback chain (
100vh->-webkit-fill-available->100dvh) eliminates address-bar gap on iOS/Android - 51 inline styles extracted to CSS classes for maintainability and responsive overrides
- Settings tab navigation: Horizontal scroll with fade-edge mask on mobile
- Input toolbar: Overflow handling prevents button clipping on narrow screens
- Code blocks & tables: Constrained width + horizontal scroll on mobile
- 44px touch targets: All interactive buttons meet minimum tap-target size
- Sticky hover fix:
@media (hover: none)resets for touch devices
Visual Improvements
- 8 opacity-based hovers replaced with explicit color values
- Dark mode: restored
shadow-sm/md, border-color brightened for depth - Input fields: unified full-border + rounded style (replacing bottom-only border)
- Code blocks: stronger background contrast; blockquotes: background + rounded edge
- Model badge: lighter outlined variant; toast: md border-radius
- Scrollbar width increased; upload area: default background fill
Design System
- HSL color tokens (
--background,--foreground,--muted,--destructive, etc.) compatible with shadcn/ui - Spacing tokens (
--spacing-1through--spacing-12) and typography tokens (--text-xsthrough--text-3xl) - Animation tokens (
--duration-fast/normal/slow,--transition-colors,--transition-transform) replacing 35transition: all - 23 ARIA attributes added:
role="dialog",aria-modal,role="tab",role="switch",aria-expanded,aria-live="polite" - focus-visible global styles for keyboard navigation
- prefers-reduced-motion media query respects user preference
Copy Button for AI Responses
- New copy button appears on hover (desktop) or always visible (mobile) below each AI message
- Copies
msg.contentdirectly - only the final response text (markdown) - Does NOT copy thinking blocks, RAG references, API metadata, system prompts, or token counts
- Icon swaps to checkmark for 2-second visual feedback
- Clipboard API with
execCommandfallback for older browsers - i18n support (English + Chinese)
Accessibility
--text-mutedcontrast improved to WCAG AA compliant:#6b6b6b(light, 4.7:1),#737373(dark, 4.66:1)- Removed
opacity: 0.7on footer links that reduced effective contrast - Fixed invalid
aria-controlsreferencing non-existent DOM element
Full Changelog: v2.1.0...v2.1.1
v2.1.0
What's New in v2.1.0
🚀 Toolbar Extension API for Plugins
A major new feature that allows plugin developers to add interactive toolbar buttons to ChatRaw's input area:
- registerToolbarButton: Add custom buttons with icons, labels, and click handlers
- setButtonState: Control button states (active/loading) for visual feedback
- openFullscreenModal: Open fullscreen modals for complex plugin interactions
- Auto-overflow menu: When more than 5 buttons are added, extras collapse into a "More" menu
- Strict RemixIcon validation ensures consistent UI across all plugins
- Automatic cleanup when plugins are disabled/uninstalled
New Demo Plugin: "Toolbar Extension Demo" plugin showcases all new features
📊 Excel Parser Pro Enhancements
The Excel Parser plugin has been significantly upgraded:
- Formula result extraction: Shows calculated results instead of formula text
- Date format detection: Automatically detects and converts Excel date serial numbers
- Number formatting: Properly handles currency (¥, $, €), percentages, and decimal places
- Merged cell handling: Correctly parses merged cell ranges
- Smart filtering: Automatically removes empty rows and columns
- Multi-sheet support: Statistics for each sheet in workbooks
- Offline-ready: Bundled SheetJS library for offline use
- Configurable settings: Max rows/cols, date format options, empty row inclusion
📚 Developer Documentation
- Comprehensive API guide for the new Toolbar Extension system
- Common pitfalls section with troubleshooting tips
- Updated README with new feature highlights
Full Changelog: v2.0.7...v2.1.0
v2.0.7
v2.0.6 - Bug Fixes
Bug Fixes
1. Excel File Upload Dialog
- Fixed: Excel files (.xlsx, .xls, .xlsm) appeared grayed out and unselectable after installing the Excel parser plugin
- Added
getDocumentAcceptTypes()method to dynamically generate supported file types from enabled plugins
2. Docker Network Isolation
- Fixed: Docker container couldn't access LAN services (e.g., local LLM on 192.168.x.x)
- Changed
docker-compose.ymlto usenetwork_mode: hostfor direct LAN access
How to Update
Docker users (docker-compose):
# Pull latest docker-compose.yml
curl -O https://raw.githubusercontent.com/massif-01/ChatRaw/main/docker-compose.yml
# Restart
docker-compose down && docker-compose up -dDocker users (docker run):
docker pull massif01/chatraw:latest
docker stop chatraw && docker rm chatraw
docker run -d --network host -v chatraw-data:/app/data --name chatraw massif01/chatraw:latestManual installation:
git pull origin mainBug 修复
1. Excel 文件上传对话框
- 修复:安装 Excel 解析插件后,Excel 文件(.xlsx、.xls、.xlsm)显示为灰色无法选中
- 添加
getDocumentAcceptTypes()方法,根据已启用插件动态生成支持的文件类型
2. Docker 网络隔离
- 修复:Docker 容器无法访问局域网服务(如本地部署的 LLM,192.168.x.x)
- 修改
docker-compose.yml使用network_mode: host以直接访问局域网
如何更新
Docker 用户(docker-compose):
# 拉取最新的 docker-compose.yml
curl -O https://raw.githubusercontent.com/massif-01/ChatRaw/main/docker-compose.yml
# 重启
docker-compose down && docker-compose up -dDocker 用户(docker run):
docker pull massif01/chatraw:latest
docker stop chatraw && docker rm chatraw
docker run -d --network host -v chatraw-data:/app/data --name chatraw massif01/chatraw:latest手动安装:
git pull origin mainv2.0.5 - Perfect Lighthouse Scores & UI Improvements
🎉 Performance & UI Improvements
✨ Lighthouse Performance Optimization
Achieved excellent Lighthouse scores through major performance optimizations:
Desktop: 100 / 100 / 100 / 100 (Performance / Accessibility / Best Practices / SEO)
Mobile: 96 / 93 / 100 / 100
Key Optimizations
- ⚡ Replaced all SVG icons with RemixIcon webfonts (local hosting)
- ⚡ Inlined RemixIcon CSS to eliminate render-blocking requests
- ⚡ Lazy load logo_data - Moved 751KB logo from initial settings to separate endpoint
- ⚡ Pre-render LCP content - Instant display of welcome text
- ⚡ Lazy load highlight.js - Load syntax highlighting on-demand
- ⚡ Production builds - terser (JS) + cssnano (CSS) compression
Performance Results
- 🚀 LCP: 1.1s → 0.6s (45% improvement)
- 🚀 FCP: 0.5s
- 🚀 TBT: 0ms
- 🚀 CLS: 0 (perfect stability)
File Size Reductions
- 📦 JavaScript: 78KB → 33KB (57% reduction)
- 📦 CSS: 51KB → 36KB (30% reduction)
- 📦 Initial settings load: 566KB → 1KB (99.8% reduction)
🎨 UI Improvements
- Fixed send/stop button icon sizes for better proportion
- Updated UI screenshots with white background (fixes GitHub dark theme display)
- Plugin default state changed to disabled (prevents auto-enabling after updates)
🐳 Docker Multi-Platform Support
Supports:
linux/amd64(x86_64)linux/arm64(ARM64/Apple Silicon)
docker pull massif01/chatraw:2.0.5
# or
docker pull massif01/chatraw:latest🔧 Technical Details
New API Endpoints:
GET /api/settings- Now excludes logo_data by default for faster loadingGET /api/settings/logo- Separate endpoint for lazy-loading logoGET /api/settings?include_logo=true- Optional parameter to include logo
Build System:
- Added production build script using terser and cssnano
- Automated minification with
python backend/build_production.py
Full Changelog: v2.0.4...v2.0.5
v2.0.4 - Lighthouse Perfect Score Performance Optimization
🚀 Major Performance Optimization
Achieved Lighthouse perfect scores with comprehensive performance optimizations!
📊 Performance Metrics
Desktop: Performance 100 | Accessibility 96 | Best Practices 91 | SEO 91
Mobile: Performance 91 | Accessibility 93 | Best Practices 96 | SEO 91
✨ Key Optimizations
Performance
- ⚡ GZip Compression: 70% size reduction
- 🚀 Resource Optimization: preconnect, preload, defer
- 📦 Code Splitting: highlight.js reduced from 7 to 4 languages
- 🎨 Critical CSS Inlining
- 📝 Cache Headers: 1-year caching
Accessibility
- 🏷️ ARIA Labels for all buttons
- 🔍 Screen Reader Support
- 📱 Mobile Scaling enabled
Layout Stability
- 📐 Image dimensions (prevents CLS)
- 🎯 CSS layout containment
- 📏 Mobile min-height stabilization
🐳 Docker Multi-Platform Support
Now supports both AMD64 and ARM64 architectures!
docker pull massif01/chatraw:2.0.4
# or
docker pull massif01/chatraw:latestPlatforms: linux/amd64, linux/arm64
📈 Performance Gains
| Metric | Before | After | Improvement |
|---|---|---|---|
| Desktop Performance | 87 | 100 | +13 |
| Desktop Accessibility | 78 | 96 | +18 |
| FCP | 674ms | 400ms | -40% |
| LCP | 2242ms | 400ms | -82% |
| Mobile Performance | 69 | 91 | +22 |
v2.0.3 - Markdown Enhancer & Rate Limit Fix
v2.0.3 - Markdown Enhancer & Rate Limit Fix
🔧 Bug Fixes
Markdown Enhancer Plugin
- Fixed Mermaid CSS pollution using Shadow DOM isolation
- Fixed KaTeX formula rendering during streaming
- Removed message copy button feature (caused issues)
- Cleaned up plugin code, removed unnecessary polling
Rate Limiting
- Excluded
/api/pluginsendpoints from rate limiting - Prevents 429 errors during plugin initialization
📊 Performance
- Image Size: 513MB
- Memory Usage: ~65MB (idle)
How to Update
docker pull massif01/chatraw:2.0.3
docker-compose down && docker-compose up -dv2.0.3 - Markdown 增强插件 & 请求限流修复
🔧 Bug 修复
Markdown 增强插件
- 使用 Shadow DOM 隔离修复 Mermaid CSS 污染问题
- 修复流式输出时 KaTeX 公式渲染
- 移除消息复制按钮功能(存在问题)
- 清理插件代码,移除不必要的轮询
请求限流
/api/plugins相关接口不再计入请求限流- 防止插件初始化时出现 429 错误
📊 性能数据
- 镜像大小: 513MB
- 内存占用: ~65MB (空闲时)
如何更新
docker pull massif01/chatraw:2.0.3
docker-compose down && docker-compose up -dv2.0.2 - Plugin Settings & Storage Fix
ChatRaw v2.0.2
Bug Fixes
Plugin Settings Scroll Issue
- Fixed custom settings UI not scrolling, causing Cancel/Save buttons to be hidden
- Affects: RAG plugin, Tavily plugin, and other plugins with complex settings UI
- Key fix: Added
min-height:0for proper flex container scrolling
Multi-Model Manager Storage Persistence
- Fixed model configurations being lost after Docker container restart
- Changed storage from browser localStorage to server-side API
- Fixed missing
awaiton async save operations - Added debug logging for troubleshooting
Documentation
- Updated plugin development guide with storage method comparison
- Added scrollable settings UI guide with recommended HTML structure
- Clarified when to use localStorage vs backend API for plugin data persistence
Other Changes
- Updated docker-compose.yml to use image version 2.0.2
ChatRaw v2.0.2
Bug 修复
插件设置页面滚动问题
- 修复自定义设置 UI 无法滚动,导致"取消"和"保存"按钮被隐藏
- 影响:RAG 插件、Tavily 插件及其他复杂设置界面的插件
- 关键修复:添加
min-height:0实现正确的 flex 容器滚动
多模型管理插件存储持久化
- 修复 Docker 容器重启后模型配置丢失的问题
- 将存储方式从浏览器 localStorage 改为服务器端 API
- 修复异步保存操作缺少
await的问题 - 添加调试日志便于排查问题
文档更新
- 更新插件开发指南,添加存储方式对比说明
- 添加可滚动设置 UI 指南,包含推荐的 HTML 结构
- 明确何时使用 localStorage vs 后端 API 进行插件数据持久化
其他更改
- 更新 docker-compose.yml 使用镜像版本 2.0.2