weichen and Cursor
2e14b3563c
fix(web): remove dead notification/workflow/settings components and orphaned APIs (X-5)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:02:18 +00:00
weichen and Cursor
2620d808c4
fix(web): unify chat window cache keys and merge IndexedDB restore
...
Pass userId on every saveSessionWindowCache write, LRU-evict full cache
keys, and applyRestoredFileRaw so mount restore cannot drop newer deliverables.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 16:42:56 +00:00
weichen and Cursor
a44df9280c
fix(web): rewrite demoSeedIds tests for node:test npm gate
...
Vitest-style suite was caught by tsx --test and broke npm test.
Align with storage.test.ts and narrow vitest include to chat suites.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 03:11:36 +00:00
weichen and Cursor
855363fd60
fix(web): gate demo seeds and reclaim mock deliverables
...
Stop shipping hard-coded demo docs/projects into production builds,
drop local mock items on authoritative empty server lists, and purge
stale demo seed residue from localStorage on boot.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 02:50:34 +00:00
weichen and Cursor
b6aebc8176
fix(web): improve chat window refresh state and user-scoped cache
...
Distinguish authorized-empty and forbidden phases; skip caching day
buckets with zero messages; bind window cache keys to user id.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 03:06:11 +00:00
WeiCHEN and Cursor
636eb0ccf1
fix(web): align workbench user ids with auth seed
...
Unify MOCK_USERS with backend auth (admin id=1), merge session identity on login, and migrate demo seeds/tests to id 2/3/4 for 张工/李/王.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:22 +00:00
WeiCHEN and Cursor
7ab5041c59
refactor(web): stop persisting full message list to localStorage
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:22 +00:00
WeiCHEN
222b0c2dd6
feat(doc-preview): 上传文档多格式在线预览 + IndexedDB 持久化恢复
...
## 新增功能
- 支持用户上传的 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 — 预览功能单元测试
2026-09-13 02:50:21 +00:00
WeiCHEN
917740f26d
feat(project): implement modal-based project creation, creator-led member assignment, and exited-member read-only retention
2026-09-13 02:50:21 +00:00
WeiCHEN
eda2a2b32b
refactor(dialogue): implement task dispatch notifications and consecutive assistant messages with confirmation cards
2026-09-13 02:50:21 +00:00
WeiCHEN
0df8b065c2
refactor(dialogue): naturalize multi-role conversations, close chat sessions with assistant response, and set URS to project shared
2026-09-13 02:50:21 +00:00
WeiCHEN
76e538a47f
fix(doc): resolve URS viewing and private-to-shared workflow in document pane for 10 review projects
2026-09-13 02:50:21 +00:00
WeiCHEN
f48181ee0c
feat(chat): add URS requirement document upload dialogues with attachments and phase events for all 10 projects
2026-09-13 02:50:21 +00:00
WeiCHEN
27fe03a3e3
feat(chat): mount interactive review, approval, and verification confirmation cards in multi-role dialogues
2026-09-13 02:50:21 +00:00
WeiCHEN
2e3e43be8f
fix(frontend): align MockDocumentMeta markdown property and guard nullish input in markdownToBlockAST
2026-09-13 02:50:21 +00:00
WeiCHEN
a8f74244f5
feat(review): seed 10 real medical device projects with dual workflows, multi-role dialogues and fix account-switch chat isolation
2026-09-13 02:50:21 +00:00
WeiCHEN
e8002b2243
feat(category): implement recategorize backfill engine and fallback mapping (Spec §3.4-3.5 A4-A5)
2026-09-13 02:50:20 +00:00
WeiCHEN
fb8f57398c
feat(history): 实现超长对话历史按日归档与滑动窗口 (Phase P0)
2026-09-13 02:50:20 +00:00
WeiCHEN
e5e80a6fc6
feat(core): update backend coordinator, docgov lease, squad workflow and web governance integration
2026-09-13 02:50:20 +00:00
WeiCHEN
658e9db65e
fix(web): wire ALL_MOCK_DOCUMENTS and project deliverables to fix document switching
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
b13a03840c
feat(web): upgrade settings modal with dynamic roles CRUD and permission matrix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
2faddab7ac
refactor(types): extend deliverable item with projectId and isTemplateOnly
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:19 +00:00
WeiCHEN and Cursor
ff1eaab820
test(workbench): 增加 DOCX/XLSX 导出与会话隔离单元测试
...
- 验证 DOCX 二进制 Buffer 生成、TextRun 解析与 Blob 输出
- 验证 XLSX 多表提取、自适应列宽与工作簿 Sheet 命名规范
- 验证 sess-001 与 sess-002 对话隔离及动态追加互不串线
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:19 +00:00
WeiCHEN and Cursor
ece051d456
feat(storage): 实现多项目会话隔离与 localStorage 全局刷新持久化
...
- 预设 sess-001 (4K内窥镜) 与 sess-002 (掌上超声) 独立初始消息流
- safeGetItem/safeSetItem 包装器防御性存取 sessions, activeSessionId, messages, deliverables
- 确保页面刷新后用户发送的所有内容、回复及即时生成的私密文档零丢失
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:19 +00:00
WeiCHEN and Cursor
9eb155021b
fix(chore): 修正.gitignore根目录data规则并纳入前端mockDocuments
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:19 +00:00