acedc2b0ba903469bb48db0d92e7fb7e570715e4
## 新增功能 - 支持用户上传的 Word(.docx)、PDF、Excel(.xlsx/.csv)、PPT(.pptx)、 图像(png/jpg/svg/webp等)、纯文本/代码文件的在线高保真预览 - 预览与受控工作流文档严格隔离:上传文档走 FilePreviewPanel, 工作流/对话入库文档继续走 BlockRenderer,互不干扰 ## 核心 Bug 修复 - 修复页面刷新后上传文件无法预览/下载的根本问题 - 根因:File 对象无法 JSON 序列化,刷新后内存引用丢失 - 方案:新增 fileStore.ts,使用 IndexedDB 持久化文件二进制内容 - App 启动时自动 restoreFileRawToDeliverables() 从 IndexedDB 恢复 fileRaw - 上传时 saveFile() 同步写入 IndexedDB(fire-and-forget) ## 下载按钮修复 - 优先从内存 File 对象动态创建 blob URL,避免依赖已 revoke 的旧 URL - 文件内容不可用时按钮禁用并显示 tooltip 说明 ## 存储层改进 - saveDeliverables() 序列化前剔除 fileRaw(不可持久化)和 blob: URL 避免 localStorage 保存损坏的空对象 ## 新增文件 - web/src/data/fileStore.ts — IndexedDB 封装(saveFile/getFile/restore) - web/src/components/doc/preview/FilePreviewPanel.tsx — 预览面板主组件 - web/src/components/doc/preview/renderers/DocxViewer.tsx — Word 预览 - web/src/components/doc/preview/renderers/PdfViewer.tsx — PDF 预览 - web/src/components/doc/preview/renderers/ExcelViewer.tsx — Excel 预览 - web/src/components/doc/preview/renderers/PptViewer.tsx — PPT 预览 - web/src/components/doc/preview/renderers/ImageViewer.tsx — 图像预览 - web/src/components/doc/preview/renderers/TextViewer.tsx — 文本预览 - web/src/tests/file-preview.test.ts — 预览功能单元测试
Chat-Agent-System (项目工作流与对话智能体系统)
本项目是一个面向企业与团队的高可用对话智能体(Chat Agent)系统,结合了知识库检索增强(RAG)、自动化 Agent 执行能力与安全审计机制。
一、 仓库三分支结构说明
根据系统架构与运维稳定性规范,本仓库固定维护三个分支:
| 分支名 | 定位 | 职责与准入规则 |
|---|---|---|
dev |
开发分支 | 日常开发基线。所有代码开发均在此分支或其衍生子分支(feature/*, fix/*)进行,子分支自测后合并回 dev。支持一个任务按功能拆解并逐步渐进式提交。 |
test |
测试分支 | 准生产实测分支。当 dev 积累了一定功能阶段后合并至此,建立发布候选节点(rc-vX.Y.Z),进行真实环境部署与长期集成测试与运维检验。 |
main |
主分支 | 生产发布分支。严禁直接提交。仅在 test 分支经过真实运维和测试验证达到发布标准后,将对应节点合并回 main 并打正式版本 Tag(vX.Y.Z)。 |
完整的分支流转模型、热修复流程与提交规范请参阅:docs/workflow/BRANCH_AND_ENVIRONMENT_RULES.md。
二、 三套服务环境架构(知识库共享 + 对话与数据隔离)
本系统为 dev、test、main 三个分支各提供了一套独立运行的服务环境:
[ 共享基础设施: 知识库服务 (pgvector / regulations-db) ]
│ (共享知识库索引)
┌──────────────────────┼──────────────────────┐
▼ ▼ ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ 开发环境 (dev) │ │ 测试环境 (test) │ │ 生产环境 (main) │
├──────────────────┤ ├──────────────────┤ ├──────────────────┤
│ 容器组:agent-dev │ │ 容器组:agent-test│ │ 容器组:agent-main│
│ HTTP: 8080 │ │ HTTP: 8081 │ │ HTTP: 8000 │
│ DB: 5433 (独占) │ │ DB: 5434 (独占) │ │ DB: 5435 (独占) │
│ 独占对话记录/卷 │ │ 独占对话记录/卷 │ │ 独占对话记录/卷 │
└──────────────────┘ └──────────────────┘ └──────────────────┘
- 知识库共享:三套环境均可连接同一个知识库向量检索服务,确保专业法规与企业标准数据集中维护、保持一致。
- 对话与数据库严格隔离:各环境拥有独立的数据库实例/库、独立的会话记录、独立的审计日志与工作区持久化卷,互不污染。
三、 快速启动与运维指南
项目在 scripts/env-service.sh 中提供了统一的环境管理工具:
# 1. 启动共享知识库服务 (首次使用前启动)
./scripts/env-service.sh shared start
# 2. 启动对应环境服务
./scripts/env-service.sh dev start # 启动开发环境 (端口: 8080, DB: 5433)
./scripts/env-service.sh test start # 启动测试环境 (端口: 8081, DB: 5434)
./scripts/env-service.sh main start # 启动主分支生产环境 (端口: 8000, DB: 5435)
# 3. 检查环境状态
./scripts/env-service.sh all status
# 4. 停止指定环境服务
./scripts/env-service.sh dev stop
四、 开发任务拆分与逐步提交规范
进行功能研发时,遵循**“按功能层次拆分,过程逐步提交”**原则:
- 数据模型层 (
feat(db): ...):数据表迁移、字段变更、实体定义。 - 业务逻辑层 (
feat(agent): ...):核心 Agent 能力、工作流处理。 - 接口服务层 (
feat(api): ...):HTTP/Web 路由及交互。 - 自动化测试 (
test(...): ...):单元测试与联调集成测试。 - 文档与配置 (
docs(...): .../chore(...): ...):环境配置与说明文档。
Languages
Go
56.4%
TypeScript
24.8%
Python
9.9%
PLpgSQL
6%
Shell
1.4%
Other
1.3%