# web-chat-frontend **Repository Path**: wangdaoll/web-chat-frontend ## Basic Information - **Project Name**: web-chat-frontend - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-10 - **Last Updated**: 2026-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Web Chat Frontend **业务人员使用的 qwen CLI 终端透传 + 会话录制平台** 业务人员流程 → `/login` → home 页(sessions 列表 + 新会话按钮 + 登出) → `/qwen.html?sessionId=xxx` → qwen TUI 完整复刻 → 关闭浏览器 → `cat data/sessions/.log` 复盘完整 PTY 输出 设计文档:`设计.md` / `实体.md` / `规则.md` / `执行日志.md` ## 当前状态 **v0.5.30 (2026-10-13) — M3 实体文件管理模块落地**: - ✅ 后端:`server/index.js` (Fastify + cookie + bcrypt + node-pty + WebSocket) **740 行** - ✅ DB schema:**15 列 sessions + 4 个新表** (projects / entity_files / entity_file_versions + 默认项目 `__default__`) - ✅ 4 个 project API(GET/POST/PATCH/DELETE,admin 写,全员读) - ✅ home 新会话 modal 加**项目下拉**,卡片 meta 行显示项目名 - ✅ admin settings.html **3 tab 互斥显示**:配置 / 项目 / 技能 - ✅ admin "项目" section:列表 + 新建 + ✎ 编辑 + 删除 - ✅ **BM 凭据**(`bm_username` / `bm_password` / `bm_scope`,明文存 per user 决定) - ✅ **不缓存 token**,每次下载重 OAuth login(F1 scope 可空) - ✅ 8 个 v0.5.29 修复 + 4 文档同步 + 8 笔项目 memory 沉淀 **详细 changelog 见 [设计.md § 11.4](设计.md)** + 8 笔 [项目 memory](../.qwen/projects/d--ai-web-chat-frontend/memory/MEMORY.md) ## 快速开始 ### 1. 安装依赖 ```bash cd D:\AI\web-chat-frontend npm install ``` ### 2. 启动 ```bash npm start ``` 服务器在 `0.0.0.0:3000` 启动,Windows / LAN / WSL / 容器都能访问。 ### 3. 打开浏览器 http://localhost:3000 ### 4. 登录 - 用户名:`alice` - 密码:`alice123` (第一次启动 server 自动创建 demo 账号) ## 业务人员流程 1. 打开浏览器 → 自动跳到登录页 2. 输入 `alice/alice123` → 跳到 home 页 3. home 页: - 看历史 session 列表(按时间倒序) - 点 `+ 新会话` → 弹 modal → 输入会话名(可选)+ 勾选可用 skill(多选,10 个白名单内)+ 写默认规则(自由文本) → 创建 - 点 ✏️ 重命名现有 session - 点 session 卡片 → 跳到 `/qwen.html?sessionId=xxx` 4. qwen TUI 页: - xterm.js 渲染 + WebSocket 接 PTY - 与手动在 cmd 跑 qwen 一样操作 - 可用 skill + 默认规则 通过 `--append-system-prompt` 传给 qwen TUI 5. 关浏览器 → qwen 进程关闭 → 整个会话保留在 `data/sessions/.log` ## 开发者复盘会话 ```bash cat data/sessions/.log ``` 完整 PTY 输出 = 业务人员实际操作 + qwen TUI 响应 + spinner / 颜色 / cursor 等所有终端细节。 ## 项目目的 > 我本地有一个 skill 我已经开发完成了,我需要让业务人员使用,需要保留业务人员的使用会话记录,在此完善 skill > (用户 2026-10-10 原话) 3 大目标: 1. ✅ 业务人员通过 web 端使用本地 skill 2. ✅ 保留所有业务人员的使用会话(PTY log capture) 3. ✅ 用会话记录迭代改进 skill(`cat log` 复盘真实使用模式) ## 架构(一句话) 后端 = CLI orchestrator(node-pty + cmd.exe 包装 qwen ConPTY);前端 = xterm.js 终端渲染(WebSocket 双向桥接);持久化 = better-sqlite3(metadata) + appendFileSync(PTY 输出 0 解析全留档)。auth = 用户名密码 + httpOnly cookie。 ## 已知限制 - ❌ LLM 端 `MINIMAX_API_KEY` 401:用户接受不修 - ❌ 跨用户进程 taskkill / Stop-Process 拒杀:换端口起新 server - ❌ Fastify readFileSync 启动时缓存 HTML:改 web/*.html 后必须重启 server - ⚠️ `--append-system-prompt` 在 qwen TUI 模式下的实际接受行为未实测(若 qwen 忽略,降级为"metadata only"模式) ## 下一步 - 全局配置文件 `config.json`(skills_dir 路径扫描 + 默认规则 starter)— **等用户答 3 个澄清问题** - `npm start` 验证 v0.5.21 + Option C×2 — **等用户重启 server** - `git commit + push Gitee` — **等用户授权** ## 历史 - **v0.5.28 (2026-10-12)**:8 轮诊断根因 + 修 `socket.on('data')` → `socket.on('message')`(@fastify/websocket 接收客户端消息必须用 'message' 事件,per reference/reference_websocket_message_event.md)— 客户端输入终于到 server - **v0.5.21 + Option C×2 (2026-10-10 → 2026-10-12)**:登录 → qwen TUI 复刻 → PTY capture → home 拆分 → 自定义名称 → 技能白名单 + 规则 - v0.5.13 (2026-10-10):terminal-over-web M1 跑通(xterm + node-pty + WS) - v0.5.7 → v0.5.13 (2026-10-10):架构从 chat UI 切到 terminal-over-web - v0.5.1 → v0.5.6 (2026-10-10):CLI orchestrator 早期迭代,stream-json 注入