Releases: massif-01/ChatRaw
Release list
v2.2.2
ChatRaw v2.2.2
新增功能
Server-owned LinkDB Agent bridge (#45)
- 新增同源
/api/linkdb-agent/health与/api/linkdb-agent/chat接口。 - Agent URL、API Key、超时与可信 principal 由 ChatRaw Host 持有;浏览器不能注入或覆盖这些传输与身份字段。
- 增加 Origin、请求大小、JSON 结构与字段校验;无效请求不会调用上游。
- 仅在上游成功后原子保存完整对话,避免失败时留下半条会话记录。
chatraw-linkdb-agent使用新的专用安全边界,其他插件继续沿用现有通用设置、密钥与代理行为。
部署说明
升级 Host 前,请先安装配套的新版 LinkDB Agent Plugin,并在服务端配置:
CHATRAW_LINKDB_AGENT_ENABLED=trueCHATRAW_LINKDB_AGENT_BASE_URLCHATRAW_LINKDB_AGENT_API_KEY- 可选:
CHATRAW_LINKDB_AGENT_PRINCIPAL - 可选:
CHATRAW_LINKDB_AGENT_TIMEOUT_SECONDS
Docker Hub 提供 linux/amd64 与 linux/arm64 镜像:
docker pull massif01/chatraw:2.2.2也可拉取最新版本:
docker pull massif01/chatraw:latest发布边界
本版本发布 ChatRaw Host 与 LinkDB Agent 的工程集成能力。完整链路仍需配套的 LinkDB、Agent 与 Plugin;客户网络、认证、硬件和生产切换需在目标环境完成验收。
v2.2.1
ChatRaw v2.2.1
新增功能
Skill Manager 插件 (#31)
- 支持从 GitHub URL、本地
SKILL.md和本地 zip 安装 Skills。 - 新增 Skills 管理能力:启用、禁用、删除、预览和安装诊断。
- 聊天输入支持
/skill-name调用和补全,选中的 Skill 由后端注入到本轮模型上下文,不污染用户可见消息。
Hermes 插件后端路由 (#32)
- 新增 Hermes 路由插件,可将选定聊天请求安全转发到 Hermes API Server。
- 支持 Chat Completions 与 Runs 两种 Hermes 执行模式。
- Hermes API Key、Session Key 和 Base URL 只由 ChatRaw 后端保存和使用,浏览器端不暴露敏感传输信息。
Hermes Runs 工具事件与审批 (#41)
- Runs 模式支持展示 run 生命周期、工具调用进度、reasoning、失败、取消和完成状态。
- 聊天气泡新增 Hermes Run 区块,工具事件和审批事件不会混入最终 assistant 正文。
- 新增工具审批卡,支持“允许一次”“本会话允许”“拒绝”三种操作。
- Stop generation 可中断 active Hermes run,并清理运行态。
v2.2 macOS
ChatRaw v2.2
重点更新
ChatRaw for Mac
- 新增 macOS 版本第一版:
ChatRaw for Mac。 - 采用 SwiftUI 外壳 + WKWebView + 本地后端 runtime 的桌面架构。
- macOS App 会自动启动本地后端,并通过本机
127.0.0.1端口加载 ChatRaw 界面。 - 新增一键构建与运行脚本,Codex 开发环境可直接使用 Run 动作启动。
macOS 交互修复
- 修复 RemixIcon 字体在 macOS 壳内显示为方块的问题。
- 修复 Logo、头像、插件、本地文件等上传入口在 WKWebView 中无法打开文件选择器的问题。
- 修复插件卸载、清空对话等
confirm()确认弹窗在 WKWebView 中无法继续执行的问题。 - App 可见名称调整为
ChatRaw for Mac。
发布包
- 本次 Release 附带
ChatRaw-for-Mac-2.2.dmg。 - DMG 内包含
ChatRaw for Mac.app,可拖入 Applications 使用。 - macOS 包当前面向 Apple Silicon(arm64),最低系统版本为 macOS 14。
使用说明
- 下载
ChatRaw-for-Mac-2.2.dmg。 - 打开 DMG,将
ChatRaw for Mac.app拖入 Applications。 - 首次启动如遇到 macOS 安全提示,请在系统设置中允许打开。
已知限制
- 这是 macOS 第一版桌面壳,后端核心仍以 Python runtime 方式运行。
- 目前尚未进行 Apple notarization;正式分发链路会在后续版本继续完善。
- Docker 版本仍按既有发布流程构建。
Docker
docker pull massif01/chatraw:2.2
# 或
docker pull massif01/chatraw:latest平台:linux/amd64, linux/arm64
v2.1.5
ChatRaw v2.1.5
重点更新
对话框与输入体验
- 修复从欢迎页发送第一条消息后,输入框仍保持多行展开高度的问题。
- 在清空输入内容后等待 Alpine 完成 DOM 同步,再重新执行输入框自动高度计算,让对话框立即恢复正常高度。
- 同步更新实际被页面加载的
app.min.js,并提升静态资源查询版本,避免旧缓存继续命中。 - 清理设置与插件对话框页脚品牌文案,保留 ChatRaw、作者署名与 MIT 协议链接。
移动端体验
- 统一 JavaScript 与 CSS 的移动端断点判断,修复横屏手机等低高度触摸视口误进入桌面布局的问题。
- 将 URL 输入弹窗移出可横向滚动的工具栏,避免移动端弹窗被裁剪。
- 调整移动端和小高度视口的滚动与溢出规则,让欢迎页、消息区和输入区保持可用。
- 为设置与插件弹窗增加移动端视口约束,确保底部操作按钮在手机尺寸下仍可触达。
静态资源一致性
- 重新生成
backend/static/app.min.js和backend/static/styles.min.css,确保源码和线上加载资源一致。 - 更新内联关键样式和生产静态资源引用,降低移动端缓存与布局回归风险。
Docker
docker pull massif01/chatraw:2.1.5
# 或
docker pull massif01/chatraw:latest平台:linux/amd64, linux/arm64
v2.1.4
ChatRaw v2.1.4
重点更新
上下文压缩插件
- 新增
context-compressor插件,可自动压缩较早的聊天上下文,并在输入框工具栏提供手动压缩按钮。 - 插件支持
autoCompress自动压缩开关和thresholdPercent自动压缩阈值;关闭自动压缩后,用户仍可点击工具栏按钮手动压缩。 - 压缩结果只影响模型输入链路,不删除、不改写原始聊天记录;禁用插件后会恢复完整历史输入。
- 模型输入会使用“历史摘要 + 最近 3 轮对话原文 + 当前问题”,在压缩上下文的同时保留近期对话连续性。
后端压缩链路
- 新增会话摘要表,每个会话保留一份最新摘要,并记录压缩边界、估算 token 和累计覆盖消息数。
- 自动压缩在当前用户消息保存前判断,避免把当前问题提前写入摘要。
- 手动压缩接口新增可解释 no-op 返回;当摘要模型返回空内容时,不再返回 500,也不会写入无效摘要。
- 压缩摘要调用不会写入聊天消息表,避免污染用户可见历史。
稳定性与兼容性
- 不修改现有
before_sendhook 语义,避免影响搜索、RAG 等已有插件。 - 合并用户 system prompt 与上下文摘要,避免向模型传入多条冲突的 system message。
- 删除会话和自动清理旧会话时同步清理压缩摘要与进程内锁。
- 插件市场远程索引请求超时时降级为 warning,减少误导性的错误日志。
文档与测试
- 更新插件开发文档,补充上下文压缩插件的配置、自动压缩、手动压缩和后端行为说明。
- 更新 README 插件列表,加入上下文压缩能力说明。
- 新增上下文压缩后端测试,覆盖自动压缩、手动压缩、滚动摘要、异常配置、空摘要 no-op、并发锁和摘要注入等关键路径。
Docker
docker pull massif01/chatraw:v2.1.4
# 或
docker pull massif01/chatraw:latest平台:linux/amd64, linux/arm64
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