diff --git a/_AI_USAGE_LOG.md b/_AI_USAGE_LOG.md index bae9867..8d5f9a5 100644 --- a/_AI_USAGE_LOG.md +++ b/_AI_USAGE_LOG.md @@ -125,3 +125,4 @@ | 2026-08-26 09:30 | Agent 实现 | 聊天式交互改造(Web UI 升级):前端由分步表单页 static/index.html 升级为 DeepSeek 式聊天页 static/chat.html;新增 src/genesis/chat/(intent.py 意图识别 INTENT_SCHEMA + parse_intent_fake/llm、agent.py ChatAgent.handle_message 自动驱动 解析→影响→生成→QA、确认节点处理、错误分支兜底)+ store.py 扩展 pending_intent 字段与 chat_messages 表 + app.py 新增 POST/GET /api/chat/{sid}/messages 且 GET / 返回聊天页;README 更新 Web 服务为聊天式说明 + 端点列表含聊天端点;design.md §12.6 补聊天改造记录;全量 pytest 522 passed / 99.03%,fail_under=99 达标 | src/genesis/chat/__init__.py; src/genesis/chat/intent.py; src/genesis/chat/agent.py; src/genesis/server/store.py; src/genesis/server/app.py; src/genesis/server/static/chat.html; src/genesis/server/static/index.html; scripts/serve.py; README.md; docs/design.md; tests/test_server_chat_store.py; tests/test_chat_intent.py; tests/test_chat_agent.py; tests/test_server_chat_api.py | x-preview-f-free (opencode) | | 2026-08-27 12:12 | Agent 实现 | 聊天前端升级二:会话命名(自动取要件定义文件名)+历史侧边栏;以项目为单位的模板/规则/代码库/设计文档目录配置(ProjectsStore+API),绑定项目后上传区仅要件定义;既有设计文档确定性交叉引用纳入影响调查(DesignReference) | src/genesis/server/store.py, src/genesis/server/service.py, src/genesis/server/app.py, src/genesis/parsers/source_aggregator.py, src/genesis/impact/impact_agent.py, src/genesis/data_models.py, src/genesis/chat/agent.py, src/genesis/server/static/chat.html, tests/*, docs/design.md, README.md | hy3-free | | 2026-08-27 12:40 | 反馈迭代 | 前端 UI 美化(仅样式与装饰性结构,JS 逐字节不变):Aura Space 暗色洁净混合规范(google 色板/Inter/12-16px 圆角/玻璃 header/蓝光光晕/200ms 过渡/auraPulse 助手脉冲点),文件选择改用 label+隐藏 input | src/genesis/server/static/chat.html | hy3-free | +| 2026-08-27 23:57 | Agent 实现 | 前端 v3:移除 Aura Pipeline 痕迹;顶栏项目切换器(默认绑首项)与右侧项目配置抽屉(420px滑入,含列表/表单/保存/删除);侧边栏整体可折叠(56↔264px, localStorage 持久化);会话项 hover 出 × 原生 confirm 删除(删当前会话自动重建);设计文档 docs/design-web-chat-v3.md, chat.html, _AI_USAGE_LOG.md, 558 passed, 覆盖率 99.10% | docs/design-web-chat-v3.md, src/genesis/server/static/chat.html, _AI_USAGE_LOG.md | hy3-free | diff --git a/docs/design-web-chat-v3.md b/docs/design-web-chat-v3.md new file mode 100644 index 0000000..67bce88 --- /dev/null +++ b/docs/design-web-chat-v3.md @@ -0,0 +1,256 @@ +# 前端改造 v3 设计文档 + +| 字段 | 值 | +|---|---| +| 文档版本 | v3.0 | +| 生效日期 | 2026-08-27 | +| 关联提交 | d6361cf(前置:v2 聊天前端美化) | +| 关联 AGENTS.md | 概设书自动生成 Agent 规范 | + +## 1. 背景与目标 + +v2 聊天前端(commit `916c5be` / `d6361cf`)将 Web 前端由分步表单升级为 Aura Space 风格的对话式 SPA,但仍存在以下待解决问题: + +1. 品牌区与头部出现了 "Aura Pipeline" 装饰性小标,与本项目实际品牌不一致。 +2. 侧边栏仅可新建/加载会话,**无删除入口**;长期使用后历史会话堆积。 +3. "项目" 是会话级(每会话项目独立可配置),但 UI 上没有显式的「项目上下文」指示;用户难以判断当前会话归属哪个项目。 +4. 侧边栏固定 264px 始终展开,长会话列表与项目配置同时呈现会滚动拥挤。 +5. 项目配置(7 个字段的表单)塞在侧边栏折叠面板中,宽度不足,输入体验差。 + +本次改造仅涉及前端,**后端 API 不变**(已确认 `DELETE /api/sessions/{id}` 等端点已就位)。 + +## 2. 范围与非范围 + +**In scope** +- 仅修改 `src/genesis/server/static/chat.html`(CSS + 装饰性 HTML + JS 增量逻辑) +- 新增 ID:`#proj-switcher`、`#ps-current`、`#ps-menu`、`#sidebar-toggle`、`#proj-drawer`、`#drawer-close`、`#drawer-list` +- 删除 DOM 节点:`.brand-sub`、`.crumb`、`#proj-panel`(含 `#proj-form`)—— 项目配置整体迁至抽屉 +- JS 新增:`loadProjects` 自动绑首项、`deleteSession(sid)`、`openProjectDrawer`/`closeProjectDrawer`、`toggleSidebar` 及其事件绑定 +- JS 修改:`refreshSessions` 在每条 `.sess` 内追加删除按钮 + +**Out of scope** +- 后端任何文件(store/service/app/data_models/parsers/impact/qa/writer/chat/inference) +- 数据库 schema(沿用现有 `projects` 表) +- 引入新依赖(无 npm / 无外部 JS) +- 模板/生成/影响调查/QA 等业务逻辑 + +## 3. 关键决策与权衡 + +### 3.1 项目归属语义 + +**决策**:存在项目时,`currentProject` 自动绑定第一个项目(`GET /api/projects` 按 `name` 升序);用户可在顶栏下拉切换。无项目时维持 `currentProject=null` 的"无项目"模式(用户上传全部 5 类资料)。 + +**权衡**: +- 选择"默认绑第一项"而非"必须选项目"——允许空仓库试用与脚本化无项目流程 +- 选择"字母序第一"而非"最近使用"——避免引入新的排序状态,`ProjectsStore` 已用 `ORDER BY name`(store.py: `ProjectsStore.list`) + +### 3.2 项目切换器形态 + +**决策**:顶栏 `