]>
acesimba.cloud Git - StationBuilder.git/log
root [Mon, 14 Sep 2026 03:24:07 +0000 (11:24 +0800)]
站点资产设置-设备类型改为领域内设备模板下拉,新增查看模板眼睛图标,优化列宽
root [Mon, 14 Sep 2026 02:53:58 +0000 (10:53 +0800)]
站点资产设置Tab移除副标题说明并将手动配置改为进阶配置
root [Mon, 14 Sep 2026 02:38:41 +0000 (10:38 +0800)]
领域方案列表新增从模板创建列,点击后按模板配置创建新站点
root [Mon, 14 Sep 2026 02:22:53 +0000 (10:22 +0800)]
站点基本属性-左侧菜单站点信息/站点结构前改为蓝色圆点Icon
root [Fri, 11 Sep 2026 10:40:11 +0000 (18:40 +0800)]
页面配置-仪表板/数字孪生场景Tab替换为配置截图
root [Fri, 11 Sep 2026 10:30:36 +0000 (18:30 +0800)]
页面配置-设备运维移入MU标准页面表格(按Excel更新)并移除报表Tab
root [Fri, 11 Sep 2026 09:49:17 +0000 (17:49 +0800)]
站点结构树(侧栏) + 基本情况描述非必填 + 页面配置新增四个Tab
root [Fri, 11 Sep 2026 07:11:25 +0000 (15:11 +0800)]
修复树状结构错误
root [Fri, 11 Sep 2026 05:02:11 +0000 (13:02 +0800)]
站点列表表格各列支持手动拖动调整宽度
root [Fri, 11 Sep 2026 03:56:08 +0000 (11:56 +0800)]
站点列表支持新建子站点(递归)与折叠收起,后端 sites 增加 parent_id
root [Fri, 11 Sep 2026 02:12:29 +0000 (10:12 +0800)]
站点编辑页保存草稿与下一步按钮间距调整为12px
root [Thu, 10 Sep 2026 08:44:28 +0000 (16:44 +0800)]
监控仪表板仅含筛选器三级菜单;仪表板报表、文档报表保持二级菜单
root [Thu, 10 Sep 2026 08:34:40 +0000 (16:34 +0800)]
移除扩展页面一级菜单;筛选器移入监控仪表板三级菜单
root [Thu, 10 Sep 2026 08:03:58 +0000 (16:03 +0800)]
菜单与页面名称“站点项目”改为“站点列表”
root [Thu, 10 Sep 2026 07:52:05 +0000 (15:52 +0800)]
仪表板报表、文档报表与建站资源其他菜单项对齐
root [Thu, 10 Sep 2026 07:48:25 +0000 (15:48 +0800)]
移除报表二级菜单,仪表板报表/文档报表作为建站资源下二级菜单
root [Thu, 10 Sep 2026 07:45:24 +0000 (15:45 +0800)]
还原菜单:监控仪表板为建站资源下普通菜单项,仪表板报表/文档报表作为报表二级菜单
root [Thu, 10 Sep 2026 07:36:01 +0000 (15:36 +0800)]
监控仪表板改为父级菜单,仪表板报表/文档报表作为其二级菜单(移除报表二级菜单)
root [Thu, 10 Sep 2026 07:29:58 +0000 (15:29 +0800)]
调整菜单:扩展页面删基础/功能组件库与数据源;仪表板改为监控仪表板并移入建站资源;仪表板报表、文档报表作为二级菜单移入建站资源
root [Thu, 10 Sep 2026 06:43:14 +0000 (14:43 +0800)]
删除 StationBuilder 全局页脚备案信息(已在上级 list 页统一显示)
root [Thu, 10 Sep 2026 06:24:22 +0000 (14:24 +0800)]
设备模板新增「属性列表」区块:关键字/属性名称/属性值/单位,支持行内编辑、勾选删除与保存(复用采集点表格编辑样式)
root [Thu, 10 Sep 2026 06:03:39 +0000 (14:03 +0800)]
设备模板说明 textarea 占位提示改为「设备说明,可描述其用途,特性,常见使用方式等。」
root [Thu, 10 Sep 2026 05:51:26 +0000 (13:51 +0800)]
style(field-assist): AI按钮与说明文字增加间距并底部对齐
root [Thu, 10 Sep 2026 05:47:39 +0000 (13:47 +0800)]
feat(device-template-ai): AI采集点补全改为抽屉入口、移除·采集点后缀、支持停止
root [Thu, 10 Sep 2026 04:07:23 +0000 (12:07 +0800)]
style(device-templates): 领域标签改为圆角胶囊、删除说明列、加宽所属领域列
root [Thu, 10 Sep 2026 04:03:31 +0000 (12:03 +0800)]
feat(device-templates): 列表新增所属领域列,以彩色标签展示关联领域
root [Thu, 10 Sep 2026 03:35:46 +0000 (11:35 +0800)]
text: 菜单“方案中心”改为“建站资源”
root [Thu, 10 Sep 2026 02:51:31 +0000 (10:51 +0800)]
style(drawer): 补充要求/文件上传标签字体大小与参考资料保持一致
root [Thu, 10 Sep 2026 02:43:44 +0000 (10:43 +0800)]
refactor(basic): 将补充要求/填写建议/参考资料/文件上传移入 AI 智能补全右侧抽屉
root [Wed, 9 Sep 2026 06:53:22 +0000 (14:53 +0800)]
feat: 扩展页面补充 6 张示意图(仪表板报表/文档报表/基础组件库/功能组件库/筛选器/数据源),压缩后懒加载
root [Wed, 9 Sep 2026 06:46:08 +0000 (14:46 +0800)]
feat: 重构扩展页面菜单(仪表板/报表子页/基础组件库/功能组件库/筛选器/数据源),各页空白占位
root [Wed, 9 Sep 2026 06:36:15 +0000 (14:36 +0800)]
feat: 新增仪表盘示意页(左侧菜单扩展页面·仪表盘,仅展示压缩示意图)
root [Wed, 9 Sep 2026 05:57:32 +0000 (13:57 +0800)]
docs: 同步设计方案文档(刷新各页截图,新增菜单入口/AI对话框/新增领域弹窗截图)
root [Wed, 9 Sep 2026 05:45:09 +0000 (13:45 +0800)]
feat: 设计方案按钮移至左侧菜单栏底部(鲜明紫渐变)
root [Wed, 9 Sep 2026 05:27:32 +0000 (13:27 +0800)]
feat: 左下角添加「设计方案」按钮(渐变淡紫,10px)
打开 design-doc.html(新窗口)。原顶栏入口在按 zip 重构时移除,
现在按用户要求以浮动按钮形式放在左下角,靠近最低端。
root [Wed, 9 Sep 2026 05:24:50 +0000 (13:24 +0800)]
db: schema 变更——新增 asset_groups 表(手动配置资产落库)
root [Wed, 9 Sep 2026 05:22:52 +0000 (13:22 +0800)]
test: verify 脚本支持 BASE 环境变量,可对公网生产路径跑 E2E
root [Wed, 9 Sep 2026 05:13:54 +0000 (13:13 +0800)]
fix: 去除 dev 模块响应中的内联 base64 sourcemap
vinext RSC 管线会给 use client 依赖(antd.js)内联 7MB sourcemap,使响应从 3MB
膨胀到 9.66MB;经 nginx gzip 后仍占 2.28MB,为首屏传输主体。新增 vite 中间件
插件将 data URI sourcemap 替换为外部 .map 引用。实测:首屏总传输 3.62MB→
1.66MB,antd.js 2.28MB→674KB,页面加载 10.8s→5.0s,无强制 reload。
CodeBuddy [Wed, 9 Sep 2026 04:52:27 +0000 (12:52 +0800)]
revert: drop optimizeDeps pre-bundle (causes Vite 504 re-optimize loop here)
CodeBuddy [Wed, 9 Sep 2026 04:42:04 +0000 (12:42 +0800)]
perf: pre-bundle heavy deps via optimizeDeps to speed up dev-server loads
root [Wed, 9 Sep 2026 04:35:51 +0000 (12:35 +0800)]
test: add network-path first-load diagnostics for public nginx route
Request-level tracing + wire-size measurement via nginx access log; used to
diagnose the ~1min incognito stuck-loading (13.5MB uncompressed transfer,
antd.js 10.1MB with inline sourcemap). Post gzip+http2 fix verified ~1.1MB.
root [Wed, 9 Sep 2026 04:13:40 +0000 (12:13 +0800)]
test: add first-load timing script to reproduce incognito stuck-loading
Confirms loading state now resolves <1s on dev server (cold/warm) and public
nginx path after swappiness=1 + keepalive mitigation of swap-driven cold faults.
root [Wed, 9 Sep 2026 04:01:26 +0000 (12:01 +0800)]
修复手动配置保存按钮文字颜色:将 .asset-editor-title span 范围限定到副标题,避免覆盖主按钮白色文字
root [Wed, 9 Sep 2026 03:50:44 +0000 (11:50 +0800)]
实现手动配置资产后端:db-sidecar 新增 asset_groups 表与 CRUD,使前端手动配置功能(资产树/节点抽屉/属性与数据绑定)可用并落库
root [Wed, 9 Sep 2026 03:31:43 +0000 (11:31 +0800)]
合并 Codex 设计稿前端(忠实一致,不含后端):扩展菜单 / AI 欢迎面板 / 站点编辑 5 步(含页面配置)/ 手动配置资产前端
root [Tue, 8 Sep 2026 08:35:48 +0000 (16:35 +0800)]
refactor: 按 zip 设计就地重构站点(单文档 SPA + 领域方案库/设备模板/页面样式库)+ 防闲置换页
- app/page.tsx 重写为单文档 SPA(go(pageKey) 客户端导航):领域方案库、设备模板、页面样式库、内部工具配置、领域配置
- 新增 app/company-theme.tsx(AntD ConfigProvider 主题);layout.tsx 引入主题与 reset.css;globals.css 视觉对齐
- 配置 vite.local.config.ts:dev:local 用纯 vinext(),规避 Cloudflare workerd 下 antd CJS interop 报错(_interopRequireDefault is not a function)
- .npmrc 设 node-linker=hoisted;package.json 与 pnpm 锁定文件更新
- 新增 scripts/warmup.mjs(开机预热全部页面)+ scripts/keepalive.mjs(每 60s 探活,防止闲置被换页导致打开缓慢近一分钟)
- 新增 public/wise-header/ 资源、CHANGELOG-
20260902 .md
注:data/db/StationBuilder.sqlite 为运行数据,按规则本次不提交;表结构由 db-sidecar 以 CREATE TABLE IF NOT EXISTS 自举,克隆后首次启动自动补齐。
root [Wed, 26 Aug 2026 01:08:17 +0000 (09:08 +0800)]
chore: 配置 basePath=/t/stationbuilder,供反向代理在子路径挂载
root [Sat, 22 Aug 2026 15:16:52 +0000 (23:16 +0800)]
新增全局页脚备案信息:陕ICP备2026022239号-2
root [Fri, 21 Aug 2026 09:13:29 +0000 (17:13 +0800)]
v0.32 领域方案「方案打包」步骤重构:方案概览多标签总览 + 扩展页面预览整页修复 + 打包下载示意弹窗
root [Fri, 21 Aug 2026 05:54:03 +0000 (13:54 +0800)]
v0.31: UI 风格对齐 KB Insight(AntD 字体栈 + 56px 渐变顶线 Header + 菜单选中/hover 浅蓝)
root [Fri, 21 Aug 2026 05:04:41 +0000 (13:04 +0800)]
v0.30: 修复领域方案页面预览空白(dashboard-renderer 按容器隔离 echarts 实例)+ 预览卡片点击放大 + 设计文档同步
root [Fri, 21 Aug 2026 04:05:27 +0000 (12:05 +0800)]
v0.29: 领域扩展页面改名置首 + AI生成醒目按钮 + 统一生成 + 图片缩略图提速
- 站点/领域两处 Cube 扩展页面页签更名为「领域扩展页面」并置于 MU 标准页面之前(默认进入)
- 生成按钮文案升级为 AI生成/AI生成中,新增醒目渐变样式 .btn-ai
- 领域扩展页面新增「AI 统一生成全部(N)」按钮,一键排队生成全部未生成页面,各页按钮同步显示 AI生成中
- 后端图片接口支持 ?w= 参数,sharp 生成落盘缓存 WebP 缩略图(约 150x 提速)
- design-doc.html 同步至 v0.29
root [Fri, 21 Aug 2026 03:24:23 +0000 (11:24 +0800)]
feat: 设备模板采集点 AI 智能补全(领域生成自动补全 + 单独打开补全)
- 后端新增 buildCompleteCollectionPointsPrompt / extractCollectionPoints / generateDeviceTemplatePoints:以设备名称/领域/说明推导 6~12 个合适采集点并批量写库(按 name 去重追加,不覆盖用户已录入采集点;数值范围优先取预设集合)
- 领域方案「AI 资产补全」自动创建设备模板后,立即为该新模板补全采集点(created:true 触发;单个失败不影响整体;推导过程回流到资产补全控制台)
- 设备模板详情新增「AI 智能补全 · 采集点」面板:开始补全(POST /api/db/device-templates/:id/complete-collection-points,流式)+ 查看提示词(GET ...-prompt),补全后重新拉取详情刷新表格
- 前端透传 onViewCpPrompt 复用 App 级提示词弹窗;资产补全超时守卫 6→10 分钟
- 同步更新 design-doc.html(v0.28,新增 §4.12.2)
root [Fri, 21 Aug 2026 02:15:23 +0000 (10:15 +0800)]
feat: 领域编辑迁移至左侧导航栏并修复单行显示
- 移除「领域方案库」首页「管理领域」面板,方案列表上移
- 领域增删入口迁至左侧「领域分类」分组:行尾 × 删除(非「其他」领域,二次确认)、行末 + 新增领域(行内输入,≤6 字)
- 修复 addDomain 仅更新 domains 未刷新 domainOptions 的问题(改由 reloadDomains 统一刷新)
- 修复领域名按钮与 ×/+ 共用 flex:1 导致 × 等宽拉伸、过滤按钮被压窄、4 字以内领域名换行的布局问题(flex:1 仅作用于过滤按钮,×/✓ 固定 30px,领域名 white-space:nowrap + 省略号)
- 同步更新 design-doc.html(v0.27)
root [Fri, 21 Aug 2026 01:00:52 +0000 (09:00 +0800)]
fix: 设计方案导出修复(PDF 真实文字/页脚页码/目录;Word 页脚页码/静态目录/截图300px)
- PDF 改 window.print 原生打印,真实文字无乱码;打印时注入静态目录(h2/h3/h4),@page 页脚页码
- Word footer 补 id + 规范 PAGE/NUMPAGES 域标记,每页底部页码;目录改可见静态目录
- 截图限宽 300px 等比例(修复 .figure 类选择器未命中 <figure> 元素导致 PDF 图片溢出)
- 图后插 <br> 使图注换行;设计文档 v0.26 + 顶部说明同步
root [Thu, 20 Aug 2026 23:16:19 +0000 (07:16 +0800)]
设计文档章节重编号:删除第3章后,原第4章起整体前移一位(4→3…11→10),含 h2/h3/h4 标题、正文交叉引用与变更日志引用
root [Thu, 20 Aug 2026 22:59:26 +0000 (06:59 +0800)]
领域方案已完成态步进导航:绿色对号 + 自由跳转
root [Thu, 20 Aug 2026 12:17:34 +0000 (20:17 +0800)]
AI 各项功能并发调用数统一限制为 2
- db-sidecar.mjs:新增全局信号量 AI_CONCURRENCY=2 包裹 runCodebuddy,
使站点生成(含批内并行)、各项补全、领域方案补全全部 AI 功能任意时刻最多
2 个 codebuddy 子进程并发;release 在 close/error/超时 三处统一释放并加 released
守卫与同步 spawn 失败保护,避免死锁。
- 站点「生成全部」批内并行数 GEN_CONCURRENCY 由硬编码 3 改为复用 AI_CONCURRENCY,
对应日志文案同步为「最多 2 个并行调用」。
- ai-sidecar.mjs(/api/chat) 本身以 running 布尔量串行(≤1),已满足 ≤2。
- design-doc.html 升 v0.24 并登记变更。
- 注:未提交 data/db/StationBuilder.sqlite(无 schema 变更,且工作库含累积业务数据)。
root [Thu, 20 Aug 2026 11:23:37 +0000 (19:23 +0800)]
领域知识上传支持 Word/Excel/PDF/图片:提取正文注入提示词
- 后端 db-sidecar.mjs:新增 async extractDocText 替换 isTextMime/readKnowledgeFile,
PDF(pdf-parse)/Word(.docx,mammoth)/Excel(.xls/.xlsx,SheetJS) 提取正文并 16k 截断注入,
图片及老 .doc 返回空串仅登记为参考来源;buildKnowledgePrompt 改为 await extractDocText。
- 前端 KnowledgeStep:上传 accept 放开至 .pdf/.doc/.docx/.xls/.xlsx/image/* 等,
提示文案补充「Word/Excel/PDF 提取正文,图片仅登记」,文件类徽标「文档」→「文件」。
- 新增依赖 pdf-parse/mammoth/xlsx(纯 JS,无原生编译)。
- design-doc.html 升 v0.23 并登记变更。
root [Thu, 20 Aug 2026 10:26:48 +0000 (18:26 +0800)]
feat(领域方案库): 领域知识提升为 Step2 并作为 AI 补全优先参考
- 方案向导步骤重排:领域知识移至「方案基本属性」之后(Step2),资产/功能菜单/运维流程/生成保存/专家确认整体后移
- 新增 KnowledgeStep:上传知识文档(多文件 base64 落库)、配置参考 URL 站点,列表可下载/删除,随方案持久化
- 新增 buildKnowledgePrompt:读取 knowledge_docs,文本文档直接注入正文、URL 站点服务端抓取正文注入(8s 超时,失败降级为参考链接),注入 buildCompletePrompt/buildCompleteAssetsPrompt/buildCompleteCubesPrompt(三构建器改 async,领域级补全 ctx 加 id;站点级无 id 不注入)
- 生成保存(DomainGenerateReview)展示真实领域知识信息并提供「返回领域知识」入口
- 设计文档更新至 v0.22
运维流程 AI 补全本期仍占位(见设计文档)
root [Thu, 20 Aug 2026 09:29:34 +0000 (17:29 +0800)]
数据:样式选择器测试产生的库变动(临时方案增删、style_id 写入/清除)
root [Thu, 20 Aug 2026 09:27:44 +0000 (17:27 +0800)]
领域方案库 Cube 页面支持选择页面样式库样式后生成(方案级,镜像站点机制)
- 后端 domain_templates 新增 style_id 列(ensureColumn 增量加列);handleDomainTemplateUpdate 支持写入/显式置空;hydrateDomainTemplateCtx 返回真实 style_id
- 前端领域方案详情「功能与菜单 → Cube 扩展页面」顶部新增「领域方案页面样式」选择器(复用 .style-picker 与样式库缩略图),选中即持久化,生成/AI 修改经共享 buildStylePrompt 自动注入所选样式主题
- 设计文档升 v0.21,补充 changelog 与交互说明
root [Thu, 20 Aug 2026 08:57:19 +0000 (16:57 +0800)]
数据:领域分类调整(删除工业制造/工业园区/智慧楼宇,新增其他)
root [Thu, 20 Aug 2026 08:54:55 +0000 (16:54 +0800)]
领域分类管理:删除工业制造/工业园区/智慧楼宇,新增其他,支持删除领域并迁移方案
- DEFAULT_DOMAINS 移除 工业制造/工业园区/智慧楼宇,新增 其他(重启不再复活)
- 后端新增 DELETE /api/domains/:id:禁止删除其他,删除前将 domain_templates 与 device_template_domains 迁移至其他,再删除领域
- 前端领域方案库新增「管理领域」面板,其他标注默认保留不可删,其余提供删除并自动刷新列表/清除筛选
- 更新设计文档 v0.20
wang.yu [Thu, 20 Aug 2026 04:13:20 +0000 (12:13 +0800)]
fix(domain): Cube 生成按钮流式化 + AI补全写入列表防静默丢失
- generatePage 改为流式消费 NDJSON 响应体(保持连接),生成期间按钮显示「生成中…」并禁用、底部新增「AI 生成页面」控制台实时输出进度,并据服务端 {status:failed} 弹失败提示;修复此前普通 fetch 不读响应体导致连接提前关闭、服务端 AI 生成中断(status=failed)、Json 未写入的问题。
- runCubesComplete 由逐条静默 .catch 插入改为收集结果后逐个 await 插入、失败显式 notify,并捕获服务端 {status:failed} 事件弹失败提示,避免补全内容静默丢失。
- design-doc 同步 v0.19 变更记录。
wang.yu [Thu, 20 Aug 2026 03:06:02 +0000 (11:06 +0800)]
领域方案 Cube 扩展页面:来源徽标 + Json文件 下载
- 表格新增「来源」列,以徽标区分 上传 / AI生成 / 手动
- 原「生成文件」列更名为「Json文件」:上传页下载原始 .json 文件,
AI 生成页下载生成的 Cube .json,未生成显示'未生成'
- domain_pages 新增 source 字段;上传/生成时分别写入 source=upload/ai
与 gen_filename;生成确认页状态徽标区分 AI已生成/已上传/未生成·来源
- 同步更新 design-doc.html(5.10 章节 + v0.18 变更记录)
wang.yu [Thu, 20 Aug 2026 02:33:54 +0000 (10:33 +0800)]
修复:领域方案 AI 资产补全未写入表格
- handleDomainCompleteAssets 在 emit 结果前,将解析后的资产按
device_template_id 去重、sort_order 顺延追加写入 domain_template_assets
- 此前仅 emit result 未落库,前端 load() 重载后覆盖本地新增行,
导致 AI 补全的设备建议不显示在资产表格中
wang.yu [Wed, 19 Aug 2026 22:45:58 +0000 (06:45 +0800)]
领域方案库:7 步向导步骤条改为单行显示
- DomainSteps 容器增加 .domain-steps 专属类
- 新增 .domain-steps{grid-template-columns:repeat(7,1fr)} 覆盖原 5 列网格,
解决 7 个步骤换行到第二行的问题
wang.yu [Wed, 19 Aug 2026 09:53:30 +0000 (17:53 +0800)]
领域方案库重构为 7 步向导(仿 Station Builder)
- 方案基本属性:补充描述输入 + 右侧填写建议 + AI 智能补全
- 资产设置:设备模板库下拉(禁止自由输入/+新增)、4 行可编辑资产表、
资产层级预览、AI 补全(自动建缺失设备模板)、新增设备模板弹窗
- 功能与菜单:MU(默认8项勾选)/Cube(上传Json+AI生成+实时预览+修改意见
精修)/菜单 三 Tab
- 运维流程/领域知识/专家确认:待开发占位(待开发徽标)
- 生成保存:资产+菜单+页面总览预览 + 专家确认方案
- 后端 db-sidecar:domain-templates 补全/资产/Cube/页面生成与精修接口,
handleDomainTemplateDetail/Update 持久化补充描述+资产+MU
wang.yu [Wed, 19 Aug 2026 08:43:41 +0000 (16:43 +0800)]
设计方案导出改造:Word(微软雅黑/黑边/页脚页码/目录域/240px) + PDF(html2pdf带页码)
wang.yu [Wed, 19 Aug 2026 08:07:12 +0000 (16:07 +0800)]
修复 Cube 编辑器表格操作按钮溢出导致右侧面板浮起的问题
wang.yu [Wed, 19 Aug 2026 07:14:32 +0000 (15:14 +0800)]
提示框改为页面居中:用自定义弹窗替换原生 confirm/prompt
- 新增 useConfirm/usePrompt hook,返回 promise 化 confirm/prompt 及居中弹窗节点
- 替换全部原生 confirm(9处) 与 prompt(2处) 调用,组件根部渲染对应弹窗
- globals.css 新增 .dlg-backdrop 全屏遮罩 + .dlg-box 居中对话框(含输入框/Enter确认/Esc取消)
- 文件上传仍用原生文件控件(非提示框,无法CSS居中)
wang.yu [Wed, 19 Aug 2026 06:21:34 +0000 (14:21 +0800)]
领域方案库:修复创建失败与设备模版选择抖动
- CreateTemplate: domain_id 在 domains 异步加载后自动默认到首个领域,
并加兜底校验,避免提交 domain_id=0 被后端拒(创建失败/列表不显示)
- DomainDetail.load 增加 silent 模式;DeviceTemplatePicker 勾选后静默刷新,
不再触发全屏「加载中」导致的页面抖动
wang.yu [Wed, 19 Aug 2026 03:44:39 +0000 (11:44 +0800)]
设备模版:图片框改正方形 + 修复创建无响应
- app/globals.css: .device-img-field 固定 160x160 正方形,img 充满方框
- db-sidecar.mjs: 路由级 catch 在响应未结束时回 500,避免 async 处理器
首个 await 后抛错导致客户端永久挂起(表现为点创建没反应)
wang.yu [Wed, 19 Aug 2026 02:25:24 +0000 (10:25 +0800)]
docs: 修复设计文档左侧目录点击章节后消失(flex min-width:0 消除水平滚动)
- 根因:顶部版本说明段落含全角空格不换行,flex item 默认 min-width:auto 不收缩,
将 main#doc 撑到约 2238px 宽;点击锚点时浏览器水平滚动把 sticky 目录推出左边界。
- 修复:main#doc 增加 min-width:0,内容正常折行、消除水平滚动。
- 设计文档升 v0.17 并登记 changelog。
wang.yu [Wed, 19 Aug 2026 01:41:42 +0000 (09:41 +0800)]
docs: 设计方案 v0.16 修订(目录常驻/删登录章/AI补全子章/PDF-Word导出修复)
- 左侧目录任意宽度常驻可见(移除窄屏 display:none,窄屏转顶部可滚动常驻栏)
- 移除「内部登录」章节(5.1)及 5.13 登录截图,可达性说明去登录
- 新增 AI 智能补全子章 5.3.2/5.4.2/5.5.2,附流式输出终端截图(ai-complete-*.png)
- 修复 PDF 导出图片被分页截断(@media print 增加 page-break-inside:avoid 与图片适配)
- 修复 Word 导出无图片(downloadWord 将图片转 base64 data URI 内嵌)
- 删除孤立资源 login.png
wang.yu [Wed, 19 Aug 2026 00:53:42 +0000 (08:53 +0800)]
feat: 领域方案库列表增强排序与筛选(列重排+筛选栏)
- 列顺序改为 所属领域→方案名称→版本→状态→创建人→设备/页面/文档→操作
- 版本/状态列收窄, 所属领域/方案名称列加宽
- 新增筛选栏: 查找(方案名称/创建人) + 所属领域下拉 + 状态下拉 + 条数
- 四列(所属领域/方案名称/状态/创建人)可点击排序, 升/降切换带 ▲▼
- 同步设计文档至 v0.15
wang.yu [Wed, 19 Aug 2026 00:43:05 +0000 (08:43 +0800)]
docs: 设计文档细化交互细节+每页配图+目录贴左(v0.10~v0.14)
- 5.1~5.12 每页新增「交互细节」小节(字段/按钮/导航流),并嵌入对应截图
- 截图宽度统一 360px 等比例缩放
- 左侧目录取消自动居中,贴齐视口最左缘
- 新增站点生成结果截图 result.png
wang.yu [Tue, 18 Aug 2026 23:09:21 +0000 (07:09 +0800)]
feat: 设备模版列表→详情 + 全站界面截图嵌入设计文档
- 设备模版改为默认展开列表、点击进入详情,支持按名称/说明搜索(v0.8)
- 新增列表视图 CSS(.device-tpl-list / .tpl-thumb / .list-toolbar 等)
- 使用 Chromium + Playwright 自动抓取 11 张页面截图,嵌入设计文档
5.13「界面截图(UI 总览)」,并替换 5.9/5.10 占位图、补充 5.11/5.12 实图
- 设计文档升至 v0.9,新增 changelog 条目
wang.yu [Tue, 18 Aug 2026 13:26:59 +0000 (21:26 +0800)]
设备模版页交互优化与修复
- 设备图片改为长方形预览区(点击上传,object-fit:cover 不再溢出),后端新增 GET /api/db/device-templates/:id/image 图片服务
- 移除设备侧「所属领域」多选(改为由领域/方案侧选用设备)
- 采集点改为整宽表格编辑:新增一行、勾选批量删除、保存;数值范围改为下拉选择器(预设 + 自定义)
- 修复打开卡片时 collection_points 未加载导致的 runtime error,列表接口补充返回 collection_points
- 设计文档升级至 v0.7,新增 5.12 设备模版章节
wang.yu [Tue, 18 Aug 2026 13:05:57 +0000 (21:05 +0800)]
领域方案库重构为多菜单:列表/卡片切换、设备模版独立页、选用设备模版关联
- 导航拆分:领域方案库模块下新增「领域方案」「设备模版」;领域分类改为 GET /api/domains 动态二级菜单,点击按 domainFilter 筛选方案
- 领域方案列表支持列表/卡片视图切换
- 新增独立「设备模版」页(DeviceTemplates),独立维护设备模版与采集点、所属领域多选
- 方案详情设备面板改为「选用设备模版」勾选器,保存即重写 device_template_domain_templates 关联
- 后端 domain-templates 更新支持 device_template_ids 重关联
- 设计文档升级至 v0.6,更新 4.2/5.9/5.10 与 changelog
wang.yu [Tue, 18 Aug 2026 11:46:11 +0000 (19:46 +0800)]
fix: 领域方案新增表单修复(标签/版本/创建人/输入框样式/创建崩溃)
- 新增方案表单「模板名称」改为「方案名称」
- 模板版本默认值由 V1.0 改为 1.0
- 创建人默认带入 header 登录邮箱 wang.yu@advantech.com
- 全局 .form-grid>label 输入框/下拉/文本域补齐边框与 focus 样式
- 修复创建成功后跳转详情时因 m 状态为 null 导致的读取 domain_id 崩溃
- 不提交 DB(本轮仅 UI/样式修复,无 schema 变更)
wang.yu [Tue, 18 Aug 2026 09:52:08 +0000 (17:52 +0800)]
feat: 领域方案库升级为真实数据库驱动的 CRUD
- Phase 0:移除领域方案库页 Search 行(含「同步方案库」占位按钮)
- db-sidecar 新增 schema:domain_templates / device_templates + device_collection_points /
device_template_domains / device_template_domain_templates(两处多对多)/ domain_pages /
template_menu_items / knowledge_docs(doc_type 区分超链与文件,文件落盘 data/db/uploads/)/
ops_flows(仅占位)
- 全套 CRUD 接口 /api/domain-templates(详情聚合设备·采集点·页面·菜单·文档·流程)、
/api/device-templates(图片 base64 上传)、/api/collection-points、/api/domain-pages、
/api/template-menu-items、/api/knowledge-docs(含 /file 下载)、/api/ops-flows
- 前端 DomainLibrary + DomainDetail 内嵌编辑器(模板信息 / 设备与采集点 / 领域页面 Cube JSON /
模板菜单 / 知识文档 / 运维流程占位),openDomainTemplateId 控制 列表·新增·详情 切换
- 修复:sidecar 路由前缀由 /api/db 改为 /api(匹配代理层改写);设备 domain_ids 由 JSON 字符串
解析为数组;DomainDetail 修正 hooks 顺序
- 更新设计文档 5.9/5.10、尚未实现汇总、更新记录
- 提交变更 schema 的 DB 文件
wang.yu [Tue, 18 Aug 2026 06:12:06 +0000 (14:12 +0800)]
fix: 修复整站生成大量超时失败(北方污水厂)
- DASHBOARD_SPEC 撤销「逐项读取模板文件」指令,改为内联各面板紧凑 custom 骨架,消除文件工具开销,单页耗时回到 300s 内
- extractJson 增强容错:原生解析失败再去除注释/尾逗号重试
- runCodebuddy 超时阈值 300s -> 480s
- generateCubeJson 将「调用超时/JSON 解析失败/结构校验失败」统一纳入最多 2 次重试,把确切错误(含问题位置原文)回传模型自我修正
- 提示词加约束:不得添加 query/linkage/triggerByTimer/minW 等规范外字段
- 移除临时调试写盘
- 同步更新 public/design-doc.html 更新记录
验证:北方污水厂 7 个 Cube 全部重新生成成功,custom 结构正确(LineChart/Bar 扁平、其余 dataConfig+chartConfig),导入无空白。
wang.yu [Tue, 18 Aug 2026 04:19:40 +0000 (12:19 +0800)]
修复生成看板导入Cube后空白:DASHBOARD_SPEC强制照模板custom结构 + fixDashboard归一化兜底
wang.yu [Tue, 18 Aug 2026 03:38:33 +0000 (11:38 +0800)]
整站生成限制最多3个并发,避免资源争抢导致超时;失败仅提示手动重试
wang.yu [Tue, 18 Aug 2026 03:29:55 +0000 (11:29 +0800)]
功能与菜单页改造:MU树状全选、Cube AI补全、菜单只读预览,并精简MU标准页为9项
wang.yu [Tue, 18 Aug 2026 02:41:30 +0000 (10:41 +0800)]
feat: Asset 资产设置页新增「AI 智能补全」
- 后端 db-sidecar 新增 POST /api/sites/:id/complete-assets(流式 NDJSON:思考过程 +
以【资产配置】标记提取 JSON 设备清单 [{type,count,rule}])与 GET .../complete-assets-prompt
- 前端 Assets 页改为两栏:右栏与基本属性同款「填写建议 + AI 智能补全」(开始补全 +
查看提示词 + 流式控制台);结果追加到用户已填项下方(不改动已有项),资产层级预览随之重算
- 设计文档 §5.4 与 11.1 同步更新
wang.yu [Tue, 18 Aug 2026 01:58:53 +0000 (09:58 +0800)]
feat: 新增「AI 智能补全」功能(站点基本属性)
- 后端 db-sidecar 新增 POST /api/sites/:id/complete(流式 NDJSON 输出思考过程 +
以【补充描述】标记提取最终补充描述)与 GET .../complete-prompt(查看提示词)
- 前端 Basic 页「填写建议」下方新增「AI 智能补全」面板:开始补全按钮 + 查看提示词
(复用提示词弹窗,新增 completePrompt 类型)+ 与「AI 生成工作流」同款流式控制台;
结果写入「补充要求」并走现有 autosave 持久化
- 设计文档 §5.3 与 11.1 同步更新
wang.yu [Tue, 18 Aug 2026 01:28:51 +0000 (09:28 +0800)]
fix: Markdown 导出时转义表格单元格 HTML 尖括号,兼容 Azure DevOps Wiki
表格单元格中的 <select> 在导出时被解码为原始 <select>,Azure Wiki 会把它
当成未闭合的 HTML 标签并吞掉后续 Markdown。现在在 table2md 中将 < 和 >
转义为 < / >,避免解析器进入 HTML 状态。
wang.yu [Tue, 18 Aug 2026 01:23:30 +0000 (09:23 +0800)]
fix: Markdown 导出改为缩进式代码块,兼容 Azure DevOps Wiki
代码块不再用 ``` 围栏(围栏闭合异常会吞掉后续章节),
改为 4 空格缩进式代码块,解决导入 Azure Wiki 后仅显示到 §4.2 的问题。
wang.yu [Tue, 18 Aug 2026 01:14:34 +0000 (09:14 +0800)]
docs: 删除设计方案中「3. 技术架构与运行环境」章节
wang.yu [Tue, 18 Aug 2026 01:08:18 +0000 (09:08 +0800)]
fix: 修复 AI 悬浮按钮拖动时常失效的问题
图标改为不可原生拖拽(draggable=false)并让事件直接落在按钮上(pointer-events:none),
避免浏览器图片拖拽劫持 Pointer 拖拽手势;按下拖动时移除 1px 移位。
wang.yu [Mon, 17 Aug 2026 23:47:50 +0000 (07:47 +0800)]
fix: 反馈重新生成结束后按钮卡在「重新生成中…」
- refineCube 流结束后立即复位 refining 并关闭弹窗,站点刷新改为后台异步(不再阻塞按钮复位)
- 新增 >10 分钟看门狗:流异常挂起时强制复位并关闭窗口,避免界面卡死
- 同步更新 design-doc 第 8 节反馈说明
wang.yu [Mon, 17 Aug 2026 23:00:21 +0000 (07:00 +0800)]
UI: 反馈弹窗「AI 生成工作流」标题去掉「(实时 · 只读)」后缀
wang.yu [Mon, 17 Aug 2026 14:46:29 +0000 (22:46 +0800)]
UI: 资产层级预览按规则补全设备实例编号
- formatInstances 在命名规则为纯前缀时自动补 -01/-02… 序号(beng- -> beng-01、guolu -> guolu-01…10 等)
- 修正 # 占位 bug:CH-## 现在正确生成 CH-01/02/03(原先 CH-0101)
- 同步更新 design-doc 第 5.4 节说明
wang.yu [Mon, 17 Aug 2026 14:20:42 +0000 (22:20 +0800)]
UI: 页面样式库缩略图加高,整页可见(3 列 + 16:9 自适应)
- 样式卡片网格由 4 列改为 3 列,单卡更宽
- 缩略图去掉固定 150px 高度,改为 aspect-ratio:16/9 + min-height:200px,配合 object-fit:contain 展示完整页面,不再截断底部
- 灯箱大图 max-height 72vh -> 88vh
- 同步更新 design-doc 第 5.11 节说明
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 同步说明该按钮在有生成文件(含失败页面)时即显示