Skip to content

Dev - #18

Merged
hebulin merged 16 commits into
masterfrom
dev
Aug 12, 2026
Merged

Dev#18
hebulin merged 16 commits into
masterfrom
dev

Conversation

@hebulin

@hebulin hebulin commented Aug 12, 2026

Copy link
Copy Markdown
Owner

No description provided.

hebulin added 16 commits July 30, 2026 16:00
- 新增接口获取当前用户会话数据版本号,支持多端轻量变更检测
- 保存会话历史时返回版本号,前端据此避免重复拉取无变更数据
- 聊天数据存储服务新增版本号查询,实现会话行与状态行更新时间最大值检测
- 客户端自动同步逻辑新增版本号对比,只有版本改变时才拉取摘要更新
- 增加同步节流及状态标识,避免上传与同步冲突造成数据覆盖
- 侧边栏添加自动同步定时器及聚焦事件监听,实现前台低频版本检测合并变更
- 同步过程中智能合并服务端状态,本地已删除会话不会被重生,已加载会话变更时切换为未加载状态
- 前端UI切换会话时自动同步新增消息,当前聊天页消息达到时自动滚动到底部
- 登录成功跳转主页面时保持加载状态,防止重复点击
- 注册成功跳转主页面时保持加载状态,防止重复提交
- 修正跳转失败时按钮加载状态复位逻辑
- 网络错误时正确关闭加载状态

style(usage-stats): 优化日期范围选择器快捷项显示和弹层定位

- 快捷项由块级行内样式改为自适应宽度胶囊按钮样式
- 添加快捷项边框、背景色及悬停激活状态样式
- 取消日期选择器左侧快捷栏留白,调整布局间距
- 弹层改为固定居中定位,防止超出视口被遮挡
- 隐藏弹层箭头并限制弹层最大高度,支持内滚动
- 兼容极矮视口和移动端滚动体验
- 为输入框添加 min-width 以防内部工具栏撑宽
- 限制模型选择器最大宽度并使长模型名省略显示
- 调整模型选择器选中文本单行显示并截断
- 缩减工具栏按钮大小与间距,增加模型名显示空间
- 超窄屏下进一步缩小按钮尺寸和字体,提升布局紧凑度
- 隐藏分隔线以简化界面视觉并增加横向空间
- 添加空会话欢迎视图,展示欢迎标题、说明及建议提问按钮
- 新会话未发送内容时显示引导,发送首条消息后自动隐藏
- 点击建议提问会回填输入框,便于编辑和发送
- 避免重复创建空会话,已有空会话时直接复用
- 优化会话列表,不展示空消息的会话摘要
- 增加相关样式及动画提升用户体验
- 补充多语言欢迎文案与提示内容
- 客户端 ChatInput 组件附件支持列表加入 pdf 格式
- 服务端 DocumentParseService 增加对 pdf 文件的文本提取能力
- 使用 Apache PDFBox 实现 PDF 文本层按页提取并限制最大字符数
- 扫描件或无文本层 PDF 会统一按提取失败处理
- pom.xml 中新增 pdfbox 依赖以支持 PDF 文档解析
- 新增后端 /api/upload/pdf 接口,接收PDF文件并逐页渲染成图片
- 前端添加 uploadChatPdf 请求函数调用该接口
- ChatInput组件支持PDF文件的上传、状态显示及多模态模型限制提示
- 粘贴和选择上传时将PDF文件区分处理,支持文件大小6MB限制
- 后端DocumentParseService移除PDF文本提取逻辑,改由PdfRenderService渲染图片
- FileStorageService新增保存图片字节方法,用于存储PDF渲染图片
- 多处国际化文本新增PDF相关提示文案和上传状态信息
- 优化附件类型白名单,PDF不再作为纯文本文档处理
- 新增依赖 katex,支持数学公式和化学式的渲染
- 在 Markdown 渲染流程中抽取数学公式为占位符避免转义
- 使用 KaTeX 将 LaTeX 公式渲染为安全的 HTML 代码
- 增加对应的 CSS 样式,保证行内与块级公式的显示效果
- 对渲染错误的公式显示红色提示,避免整条消息中断
- 在 DOMPurify 清洗后回填渲染好的 KaTeX HTML,确保安全且效果正常
- 引入 mermaid SVG 缓存机制,避免流式输出时反复销毁重建导致闪烁
- 以主题+代码为键缓存裁剪后的 SVG,采用简单 FIFO 策略限制缓存大小
- 流式重建时命中缓存直接回填已渲染 SVG,跳过重复渲染过程
- 解析与渲染流程中增加缓存相关逻辑,传递原始代码用于缓存使用
- mermaid 渲染后保存裁剪 SVG 至缓存,非流式状态下生效避免未闭合代码缓存
- 在 html 生成阶段用占位符承载缓存 SVG,生成后回填绕过 DOMPurify 清洗
- 全量 DOM 重建后,重新绑定已渲染 mermaid 视图的缩放与拖拽事件,保证交互正常
- 新增 PdfRenderService 服务,将上传的 PDF 按页渲染为 JPEG 图片
- 限制 PDF 文件大小最大 6MB,最多渲染 15 页以控制资源消耗
- 采用 144 DPI 渲染,保持文字清晰兼顾图片体积
- 渲染后的图片通过 FileStorageService 保存,并返回访问 URL 列表
- 支持异常检测,自动抛出文件为空、超限、非 PDF 或无有效页面等错误
- 提供 RenderResult 记录渲染图片列表、总页数及是否截断信息
- 调整个人设置弹窗默认页签为“通用”页,替代原先的“修改密码”页
- 更新界面底部提示文案,统一为“AI生成 · 请注意甄别”
- 同步修改 i18n 配置中的免责声明文案
- 更新应用版本号至 3.1.0.26.83
- 将 AdminController 中模型管理相关接口拆分到 AdminModelController
- 新增 AdminModelController,负责模型的增删改查、批量操作及测试连通性
- AdminController 保留其他后台管理功能,与 AdminModelController 共用 /api/admin 路径前缀
- 统一使用 AdminSupport 统一管理管理员身份校验及审计日志记录
- 删除 AdminController 中模型管理的旧代码,减少代码冗余和复杂度
- 更新依赖注入并调整相关调用使用 AdminSupport 进行权限及审计处理
- 优化样式文件,调整字体变量定义,移除不必要字体声明
- 用 canvas measureText 按真实字体精准计算输入框宽度,替代原估算方法
- 预留 22px 后缀宽度以确保名称与下拉箭头间距精准
- 调整 el-input__inner min-width 为 0,允许输入框在 flex 布局中收缩
- 收紧名称与下拉箭头间距,去除多余 margin 和 padding 导致空隙
- 主题适配级联浮层及移动端下拉浮层的样式,优化厂商分组标题与触摸行高
- 消除 Element Plus 组件默认内部间隙,避免名称与图标间过大空隙
- 在 ChatMessages 组件中为用户消息添加唯一 DOM 锚点 ID,支持跨渲染窗口稳定定位
- 支持高亮动画效果,点击锚点后用户消息短暂高亮提示定位
- 新增消息锚点直尺刻度组件,悬停显示消息预览,点击平滑滚动定位至对应消息
- 直尺刻度支持当前视口中心刻度高亮,移动端适配触控优化
- ChatView 集成消息锚点直尺刻度组件,管理锚点高亮状态与跳转逻辑
- 实现跳转至裁剪窗口外消息时自动展开渲染窗口,确保 DOM 元素存在后滚动定位
- 增加相关样式定义,包括高亮动画和直尺线条及刻度的视觉设计
- 将刻度按钮热区高度从12px增加到24px,改善触控便捷性
- 调整刻度线高度,hover及高亮状态下刻度宽高随之放大
- 添加刻度线hover时的圆角样式,使视觉更柔和
- 移动端刻度相关样式同步放大,保持一致的交互面积
- 增加刻度线过渡效果,提升交互反馈流畅度
- 替换原有的直尺 tooltip 为完整的锚点消息列表面板
- 实现面板的绝对定位布局,与直尺右缘对齐显示
- 添加消息列表滚动容器和自定义滚动条样式
- 创建消息项展示区域,支持索引标记和文本截断
- 实现当前选中消息项的高亮状态样式
- 添加面板的进入离开过渡动画效果
- 优化移动端响应式适配,调整面板尺寸和位置
- 移除过时的 el-tooltip 全局样式配置
@hebulin hebulin self-assigned this Aug 12, 2026
@hebulin
hebulin merged commit e5739d3 into master Aug 12, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant