]>
acesimba.cloud Git - StationBuilder.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
wang.yu [Mon, 17 Aug 2026 14:08:32 +0000 (22:08 +0800)]
docs: 设计方案描述脱敏,移除站点隐私与具体 AI 服务信息
- 移除 IP/端口(:37823/:37822 等)、DNS、域名等站点隐私信息,改为组件名
- 将 codebuddy CLI / Wordbuddy Hy3 / dashboard-json-generator Skill 等具体 AI 服务描述
改写为中性的「AI 生成服务」「可视化生成 Skill」「后端固定配置模型」等表述
- 保留通用技术栈(Next.js/Vite/Cloudflare Worker)与接口路由,作为文档契约
wang.yu [Mon, 17 Aug 2026 14:02:04 +0000 (22:02 +0800)]
perf: 生成流程四项优化(代码级修复/精简数据/重试降级/并行生成)
- ① 新增 fixDashboard + repairAndValidate:校验失败优先程序化修复(越界/重叠/Title定位/KPI与Radar字段/缺失id/gridPos),免重跑模型
- ⑤ 生成与微调重试由最多 3 次模型调用降为 2 次(首次失败先走代码修复),修复过程推送 AI 生成工作流日志
- ② DASHBOARD_SPEC 与站点上下文约束模拟数据规模(时序<=16点、样例<=6行)以缩减输出 token
- ⑥ handleGenerateAll 由顺序循环改为 Promise.all 并发生成各 Cube
- 同步更新 public/design-doc.html 第6节与性能说明
wang.yu [Mon, 17 Aug 2026 10:10:17 +0000 (18:10 +0800)]
fix: 失败页面也显示「✎ 修改意见」入口(有生成文件即显示)
- 结果页卡片「✎ 修改意见」按钮由 cube.status==="generated" 改为 cube.gen_file_id,使生成失败但留有 JSON 的页面也能提修改意见/重生成
- 设计文档 5.7 同步说明该按钮在有生成文件(含失败页面)时即显示
wang.yu [Mon, 17 Aug 2026 09:39:45 +0000 (17:39 +0800)]
fix: 反馈弹窗将「修改意见」输入框置顶并自动聚焦,确保可见可填写
- 反馈弹窗(feedback)将修改意见 textarea 移至弹窗顶部、紧跟影响范围标题,并加 autoFocus,避免被折叠在弹窗底部
- 提示文案改为引导在上方输入框填写
- 设计文档 8 反馈模态补充说明输入框置顶与自动聚焦
wang.yu [Mon, 17 Aug 2026 09:24:59 +0000 (17:24 +0800)]
fix: 修复反馈弹窗提交按钮被裁切;结果页多页改为纵向单列
- modal-body 增加 flex:1/min-height:0,内容超长时内部滚动,页脚「提交并重新生成」按钮始终可见
- result-pages 由三列网格改为单列纵向排列(上下结构),卡片占满整行,四个操作按钮并排可见
- 设计文档 5.7 补充结果卡片纵向单列说明
wang.yu [Mon, 17 Aug 2026 09:14:50 +0000 (17:14 +0800)]
feat: 修改意见重新生成时展示「AI 生成工作流」实时进度
- db-sidecar: handleRefineCube 改为 NDJSON 流式返回,refineCubeJson 透传 onEvent,发射 log 进度与 task 状态
- 前端 refineCube 改为读取流并累积 refineLog;反馈弹窗「修改意见」下方新增黑底白字只读终端,自动滚动
- 设计文档同步更新(5.7 修改意见 / 8 反馈模态)
wang.yu [Mon, 17 Aug 2026 08:59:48 +0000 (16:59 +0800)]
docs: 设计文档新增左侧章节目录(TOC)导航
- 页面左侧固定目录栏,自动由 h2/h3 生成,点击跳转、滚动高亮当前章节
- 窄屏(<=760px)隐藏目录;打印时同时隐藏目录与顶栏工具
- 第 1 章补充目录说明
wang.yu [Mon, 17 Aug 2026 08:54:42 +0000 (16:54 +0800)]
docs: 设计文档补充左侧导航菜单完整结构与各菜单项说明
- 4.2 新增左侧导航整体结构(side-nav)树形图,覆盖三大模块上下文的全部菜单项
- 4.2 表格逐条说明每个导航元素的功能/数据来源/交互效果
- 原模块切换与站点列表/详情小节顺延为 4.3 / 4.4
wang.yu [Mon, 17 Aug 2026 08:51:49 +0000 (16:51 +0800)]
docs: 新增设计文档 design-doc.html 并增加顶栏「设计方案」入口
- public/design-doc.html: 朴实风格的在线设计文档,逐页/逐元素说明功能、数据来源、交互效果,含端到端生成流程、AI 问答、模态框、数据存储,未实现功能标注「尚未实现」,支持导出 PDF/Word/Markdown
- app/page.tsx: 顶栏登录名左侧新增「设计方案」超链,新窗口打开 design-doc.html
- app/globals.css: 新增 .design-link 样式
wang.yu [Mon, 17 Aug 2026 08:33:55 +0000 (16:33 +0800)]
fix: 修正模块切换高亮——StationBuilder 改用正向页面集合判断,避免与页面样式库同时选中
wang.yu [Mon, 17 Aug 2026 08:29:46 +0000 (16:29 +0800)]
feat: 生成页新增只读实时终端「AI 生成工作流」并修复代理缓冲导致的过程不可见
- 新增 DB 代理流式透传(原 Buffer 整段缓存使生成过程在完成后才一次性返回)
- db-sidecar 将 codebuddy CLI 实时输出(text_delta)与 Skill 调用标记以 {log} 事件转发
- Generate 组件新增只读终端面板,节流刷新 + 自动滚动,点开始生成时清空
- globals.css 新增 .gen-right/.console-panel/.gen-console 终端样式
- 面板标题定为「AI 生成工作流」
wang.yu [Mon, 17 Aug 2026 07:59:51 +0000 (15:59 +0800)]
fix: AI-FAB 常态光标改为 pointer(功能按钮),拖动时仍显示 grabbing
wang.yu [Mon, 17 Aug 2026 07:57:20 +0000 (15:57 +0800)]
chore: 压缩 AI 图标为 256×256 PNG(1.4MB→109KB)
wang.yu [Mon, 17 Aug 2026 07:49:34 +0000 (15:49 +0800)]
feat: 将 AI 问答入口图标替换为机器人头像,裁剪为圆形
- 新增 public/ai-icon.png(AI 机器人头像)
- 右下角 AI-FAB 中的 SVG 图标替换为 <img> 引用 /ai-icon.png
- globals.css 将 AI-FAB 背景设为透明,图片以 54×54 圆形展示
wang.yu [Mon, 17 Aug 2026 07:43:25 +0000 (15:43 +0800)]
refactor: 左侧导航重构为站点列表/站点详情,移除重复图标栏并修复误建未命名站点
- 删除最左侧 icon-rail 图标栏及 const nav,消除与主菜单重复
- go() 详情类页面无 siteId 时不再自动建站,跳回站点列表并提示
- 侧栏分为「站点列表」与「站点详情」,详情含站点切换器 <select>
- 面包屑区分 站点列表 / 站点详情 / 子视图名
- CSS 调整 side-nav 左偏移与 app-shell 内边距,新增 site-switcher 样式
wang.yu [Mon, 17 Aug 2026 07:20:44 +0000 (15:20 +0800)]
chore: 将运行时数据库迁入仓库 data/db/ 并纳入 Git 版本管理
wang.yu [Mon, 17 Aug 2026 06:37:48 +0000 (14:37 +0800)]
fix: 删除顶部 Header 右侧无意义的四个图标
wang.yu [Mon, 17 Aug 2026 06:23:47 +0000 (14:23 +0800)]
feat: 站点级样式生成范本增强(逐面板外观/配色板/标题模板修复,注入Cube名称)
wang.yu [Mon, 17 Aug 2026 04:11:15 +0000 (12:11 +0800)]
feat: 站点级页面样式集成(功能与菜单中单选样式并组合到生成提示词)
wang.yu [Mon, 17 Aug 2026 03:44:45 +0000 (11:44 +0800)]
feat: 页面样式库模块(列表/缩略图/新增/编辑/删除)并修复 StrictMode 取消请求导致的错误遮罩
- 新增页面样式库模块,与 StationBuilder、领域方案库并列:卡片网格展示五种内置样式及缩略图,支持大图预览与新增/编辑/删除(上传 JSON + 预览图 + 命名)
- 后端 db-sidecar 增加 page_styles 表与种子数据、列表/详情/图片/增删改接口
- 加固 sidecar:吞掉客户端断开时的写错误,单条请求异常不再拖垮服务
- dev 代理对 /api/db 上游响应全量缓冲并按客户端断开返回 499
- vite.config 关闭 HMR 错误遮罩,避免 StrictMode 双挂载取消请求引发的 terminated 噪音
wang.yu [Mon, 17 Aug 2026 01:52:53 +0000 (09:52 +0800)]
feat: 支持针对 Cube 页面提出修改意见并重新生成(保留累积提示词)
- 后端新增 POST /api/sites/:id/cubes/:cubeId/refine:基于当前已生成 JSON + 修改意见
重新生成,修改意见以「--- 修改意见(时间)---」形式累积写入 cubes.prompt;
/prompt 端点改为返回已存储(含历史修改意见)的提示词
- 前端 Result 页每个已生成 Cube 增加「✎ 修改意见」按钮,弹窗提交后刷新站点数据,
缩略图(依赖 generated_at)与新标签页预览自动更新
- 强化 refine 对删除类意见的可靠性:提示词列出当前面板清单并明确删/移/增/改规则,
生成后校验删除是否真正生效,未生效则重试最多 3 次并指名待删面板
- 修复 Modal 漏传 feedbackCube/refineCube/refining 导致「提交并重新生成」无效的缺陷
wang.yu [Sun, 16 Aug 2026 23:15:30 +0000 (07:15 +0800)]
feat: AI 页面结果看板预览(缩略图 + 新标签页完整预览)
- 内置 ECharts(public/echarts.min.js),预览与真实 Cube 同源渲染引擎:
图表面板按 custom.chartConfig + data 构造 ECharts option,
Title/KPI/StatusLight/Table 用 HTML 还原,预览效果与真实 Cube 一致。
- 结果页每个 Cube 卡片内联渲染缩略图(DashboardThumb),按 gridPos 布局并等比缩放。
- 新增「预览」按钮:以 Blob 在新标签页打开完整看板(按屏宽铺满、垂直滚动)。
- loadRenderer 改为先加载 /echarts.min.js 再加载渲染脚本;
修正此前用 import() 加载 /public 内 JS 被 Vite 拒绝导致整站 500 的问题。
- 面板行高采用标准 1080/25,画布按内容自然增高(垂直滚动),避免面板被压缩。
wang.yu [Sun, 16 Aug 2026 13:56:51 +0000 (21:56 +0800)]
feat: AI 助手会话隔离与 StationBuilder 概览接入;fix: 点击站点卡片误建空站点
## AI 助手:会话隔离 + 基于注入上下文回答 StationBuilder 自身信息
- ai-sidecar: 每次会话使用独立 sessionId,配合 --no-session-persistence 与 --tools "",
实现会话隔离(不跨会话、不查其他会话、不触碰服务器/文件/命令);
守卫明确仅允许基于前端注入的只读上下文作答 StationBuilder 配置与已生成内容。
- 前端在 /api/chat 请求中注入 overview(站点总数 + 每站点的领域/状态/设备数/Cube 数/
已生成数)与当前站点的已生成文件名;db-sidecar siteList 增加 gen_count 列。
- 会话上下文前端持久化到 sessionStorage,刷新不丢失。
## fix: 点击站点卡片误建空站点(未命名站点)
根因:go() 在卡片点击后读取过期的 siteId 闭包(首次打开仍为 null),误判"未选站点"
而自动 createSite,生成多余空站点,导致首次打开为空、二次才正常。
- go(target, sid?) 显式接收站点 id;卡片/表格点击传 row.id,不再依赖闭包。
- "新建站点" 改用 go("basic","new") 哨兵,始终新建空白站点。
- Projects 组件 go 属性类型同步放宽。
验证:已通过 tsc 类型检查与实机测试(站点总数/已生成内容可答,服务器 IP/编程/无关请求仍拒;
多次点击站点不再产生未命名站点)。
wang.yu [Sun, 16 Aug 2026 02:34:49 +0000 (10:34 +0800)]
fix: 右下角 AI 图标改为可拖动并更换为机器人图标
问题:右下角固定的 AI 悬浮按钮有时会遮挡「下一步」按钮,且原 ✦ 图标不够突出。
改动:
- 悬浮按钮支持拖拽移动:基于 Pointer 事件 + setPointerCapture 实现,
拖动实时更新位置并持久化到 localStorage(刷新后保持),超出视口自动夹紧;
拖动阈值 4px 内仍视为点击(打开对话框),双击复位到默认右下角。
- CSS 增加 cursor:grab/grabbing、touch-action:none、user-select:none,
触屏也可拖动。
- 图标由 ✦ 替换为机器人 SVG(屏幕+天线+双眼+嘴),在紫蓝渐变圆底上
更醒目,明确体现 AI 助手。
验证:tsc 对本项目改动文件无报错(db/vite/worker 的环境类型报错为既有问题,
与本改动无关)。
wang.yu [Sat, 15 Aug 2026 10:36:05 +0000 (18:36 +0800)]
fix: 修复资产配置布局、提示词格式与 Cube 生成卡死/空JSON 问题
本次提交修复三处问题,均已用真实接口验证:
1. 资产配置页输入框被压窄(布局变形)
- .data-table.editable 改为 table-layout:fixed 并明确列宽
- 设备类型/命名规则输入框稳定撑满单元格,删除按钮补样式
2. 生成提示词:格式不符预期 + 未保存 Cube 点不开
- 站点级与页面级提示词改为中文指令格式(学习领域特点、
生成可导入 Cube 的 JSON、含合理模拟数据),与用户预期一致
- 新增 GET /api/sites/:id/cubes/prompt?name=&content= 端点,
未保存(无 id)的 Cube 也能查看提示词,修复点击无反应
3. Cube 生成卡死 / 生成出空 JSON([])—— 两个真正根因
- 根因A:generate-all 只读数据库 cubes 表,未保存的草稿 Cube
不会生成,包里只剩 menu-config.json(即用户看到的 [])。
修复:generate-all 读取请求体 cubes 并先 upsert 入库再生成;
前端 start() 一并提交 site.cubes,无需先点保存。
- 根因B:codebuddy 默认开启高强度思考,单页生成 >5 分钟仍不结束,
Cube 永远 pending。修复:runCodebuddy 增加 --effort minimal
(单页约 1 分钟产出合法 JSON)+ 300s 超时保护(超时即终止并
报错,避免 UI 无限转圈)。
验证:未保存 Cube『设备监控』(无 id) 自动建库并生成成功;
已保存 Cube『运行总览』生成 39KB 合法仪表盘 JSON,状态 generated。
注:生成质量(布局/数据合理性)仍待人工复核,但已能端到端产出
有效 Cube JSON,解决了此前 commit 中记录的『AI 创建功能还没有成功』。
wang.yu [Sat, 15 Aug 2026 09:20:43 +0000 (17:20 +0800)]
feat: 新建站点向导 + 生成提示词可查 + 站点列表多选删除
新建站点全流程(基本属性 / 资产配置 / 功能与菜单 / 生成确认 / 结果 / 预览),
数据持久化到 SQLite(新增 db-sidecar 后端 + /api/db 代理路由):
- 新建站点向导:Basic 基本信息(名称≤20字、领域可扩充下拉)、Assets 设备资产配置
(默认 4 行占位、资产层级预览)、Functions(MU 标准页树选 + Cube 扩展页编辑 +
菜单结构)、Generate 确认(模型准备 + 各 Cube + 打包校验)、Result/Preview。
- 生成前可查看组合提示词:每个 Cube 页面 + 站点级通用上下文(站点背景 + 完整 Cube
规则 spec),便于在点击“开始生成”前核对、定位生成质量问题。
- 站点列表:Asset 列改为“设备数量”(资产 count 求和);删除“创建人”列及对应筛选;
“操作”列改为删除按钮;新增多选勾选 + 批量删除(DELETE /api/sites,级联清理
资产/页面/生成文件并删除生成目录)。
已知状态 / AI 创建功能说明:
Cube JSON 生成已通过 codebuddy 调用 dashboard-json-generator Skill 实现,并带 JSON
结构自校验(最多 3 次自动修复重试)。但目前生成质量尚未达到预期(即“还没有成功”),
本次新增的“提示词可查”能力正是为此而加,用于排查与迭代;生成效果仍需进一步调优与
验证,不建议直接当作最终交付物使用。
wang.yu [Fri, 14 Aug 2026 12:28:50 +0000 (20:28 +0800)]
StationBuilder v0.3 原型:站点生成工具 UI 与真实模型 AI 聊天
- 框架:Vinext(Next.js 16 + React 19 + Vite + Cloudflare Worker 运行时),纯前端 UI 原型
- 站点生成向导:项目列表 / 基本属性 / Asset 资产 / 功能菜单 / AI 配置 / 生成确认 / 结果预览 / 领域方案库等页面
- Wordbuddy 模型选择器(侧边栏弹出式):单选、仅免费模型 Hy3 可选,其余灰显并标注 免费 / 订阅优先 / 费率
- 右下角浮动 AI 入口:点击打开 1/4 屏宽 × 70% 高对话窗口,可关闭
- AI 对话接通真实模型(CodeBuddy 能力):按所选模型流式返回,渲染为对话气泡
- 后端:Worker 路由 /api/chat 同源代理到本地 Node 旁路 ai-sidecar.mjs,由旁路调用 codebuddy CLI(-p + stream-json)产出干净文本并流式回传;模型/密钥不进前端
- 已忽略 node_modules、.wrangler、.sites-runtime、.openai 及构建产物