Skip to content

Releases: massif-01/ChatRaw

v2.1.3

20 Feb 06:46

Choose a tag to compare

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-cache for 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:latest

Platforms: linux/amd64, linux/arm64

v2.1.2

13 Feb 18:08

Choose a tag to compare

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.2

Full Changelog: v2.1.1...v2.1.2

v2.1.1

10 Feb 09:41
2fd9374

Choose a tag to compare

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-1 through --spacing-12) and typography tokens (--text-xs through --text-3xl)
  • Animation tokens (--duration-fast/normal/slow, --transition-colors, --transition-transform) replacing 35 transition: 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.content directly - 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 execCommand fallback for older browsers
  • i18n support (English + Chinese)

Accessibility

  • --text-muted contrast improved to WCAG AA compliant: #6b6b6b (light, 4.7:1), #737373 (dark, 4.66:1)
  • Removed opacity: 0.7 on footer links that reduced effective contrast
  • Fixed invalid aria-controls referencing non-existent DOM element

Full Changelog: v2.1.0...v2.1.1

v2.1.0

08 Feb 16:23

Choose a tag to compare

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

07 Feb 14:54

Choose a tag to compare

New

  • 增强网页解析插件(Enhanced Web Parsing plugin)
  • /api/fetch-raw-urlparse_url 钩子

Fix

  • 插件卡片设置/删除图标与侧栏一致(36×36px)

v2.0.6 - Bug Fixes

06 Feb 18:10

Choose a tag to compare

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.yml to use network_mode: host for 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 -d

Docker 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:latest

Manual installation:

git pull origin main

Bug 修复

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 -d

Docker 用户(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 main

v2.0.5 - Perfect Lighthouse Scores & UI Improvements

01 Feb 12:48

Choose a tag to compare

🎉 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 loading
  • GET /api/settings/logo - Separate endpoint for lazy-loading logo
  • GET /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

26 Jan 20:39

Choose a tag to compare

🚀 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:latest

Platforms: 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

23 Jan 22:38

Choose a tag to compare

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/plugins endpoints 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 -d

v2.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 -d

v2.0.2 - Plugin Settings & Storage Fix

23 Jan 20:03

Choose a tag to compare

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:0 for 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 await on 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