Commit Graph
180 Commits
Author SHA1 Message Date
bot_dev1 9994fb75e7 fix(#188): bot_qa 审核修正——nginx 改无 URI proxy_pass 真透传 + 健康探针 /health 无前缀
打回问题 1:proxy_pass 带末尾 / 是去前缀语义(与声称相反),/v1/models
会被转发成 /models 导致 404。改为不带 URI 的 proxy_pass(无末尾 /),
请求 URI 原样透传;另新增 location = /health 精确透传健康探针。
打回问题 2:serve.py 健康路由是 GET /health(无 /v1 前缀),fetchHealth
由 /v1/health 改回 /health;同步修正 chat/NlQuery/cockpit 三处文案注释。
构建验证:pnpm --filter @vben/web-antdv-next build 通过(10.3s)。
2026-08-06 16:48:14 +08:00
bot_dev1 5667fad3e1 fix(#188): 推理 API 路径规范化,消除双 /v1 前缀对 nginx rewrite 的隐式依赖
问题:infer.ts BASE_URL=/v1,fetchModels/chatCompletion 再拼 /v1/* 导致
/v1/v1 双前缀,当前仅靠 nginx 对 /v1/ rewrite 去前缀巧合耦合才通。

修复(前后端+部署一起改):
1. nginx-fba.conf:新增 location /v1/,proxy_pass http://127.0.0.1:30800/
   (带末尾 /,不去前缀直接透传),消除对 rewrite 的隐式依赖。
2. infer.ts:BASE_URL 改为空串,调用方统一写 /v1/models、
   /v1/chat/completions、/v1/health(fetchHealth 原误用 /health 已修正)。
3. cockpit/index.vue:健康检查改走 infer.ts 的 fetchHealth 封装,
   不再裸 fetch('/v1/health'),路径口径统一。
4. ask() latencyMs 由硬编码 0 改为 performance.now() 实测耗时。
5. README 补充推理通道路径约定说明。

验收:浏览器 Network 确认 /v1/models、/v1/chat/completions、
/v1/health 均 200 且无 /v1/v1 请求。(本环境无 pnpm,构建验证转 bot_qa)
2026-08-06 16:11:37 +08:00
bot_dev2 1043dd473e feat: 完成 issue #183 [E2] 前端接入注册表 API——registry.ts 四接口封装 + models.vue API 优先/localStorage 降级/迁移提示 + version.vue 发布=注册 2026-08-06 15:41:59 +08:00
bot_dev2andyunmei 14e419be36 feat: 完成 issue #182 [E1] 模型注册表后端化——registry_api.py HTTP 服务(四接口+双轨鉴权+种子+持久化)+ 11 单测全过 + README 反代约定 2026-08-06 15:38:51 +08:00
bot_dev1 ef2a921765 chore: 数据修复版产物重打包 2026-08-06 14:58:43 +08:00
bot_dev1 193d5618be fix: 空值合并与逻辑或混用加括号(models/alerts/kb 构建语法错误) 2026-08-06 14:57:09 +08:00
bot_dev1 cd7d4fd118 fix: 模型/告警数据持久化恢复(localStorage 与旧版同 key 自动迁移)+ 全部分页 proxy 兜底防空表 2026-08-06 14:57:09 +08:00
bot_dev2 ccdaa67787 feat: 完成 issue #181 菜单播种 v5——概览/推广菜单逻辑删除(合并 QA 1aaa159 的 Project 系列;display=0 对超管无效须删除,先子后父) 2026-08-06 14:35:04 +08:00
bot_dev1 1aaa159363 fix: 播种脚本同步隐藏 FBA 推广菜单「项目」(文档/Github/Apifox 外链) 2026-08-06 14:32:24 +08:00
bot_dev1 62426ef7bb fix: 模型超参/驾驶舱编排内容卡片化(a-card 包裹,对齐 FBA 原生页观感) 2026-08-06 14:28:27 +08:00
bot_dev1 4fb216cde0 fix: 播种脚本隐藏 FBA 测试数据自带的概览菜单(视图不存在导致 404) 2026-08-06 14:24:16 +08:00
bot_dev1 bb56461c79 chore(QA): 样式对齐版产物重打包(D1/D2 验收实测构建) 2026-08-06 14:11:37 +08:00
bot_dev2 1fe0fae37f feat: 完成 issue #179 [D2] 样式对齐(下)——studio/admin 10 页接入 vben 体系(Page+vxe-grid+vben-form+iconify),硬编码色/emoji 清零 2026-08-06 14:03:30 +08:00
bot_dev2 9b44723b35 feat: 完成 issue #178 [D1] 样式对齐(上)——驾驶舱+对话助手硬编码色改 vben 主题 token(54 处 hsl(var(--*))),Page 容器 2026-08-06 14:02:00 +08:00
bot_dev1 36d8f7db2f chore(QA): 恢复 pnpm-lock.yaml,移除 lefthook 误装的仓库根配置 2026-08-06 13:15:52 +08:00
bot_dev1 1b7c2b0177 fix(QA): 修复构建阻断与静态资源路径——useMessage 误导入 + plans/citations 根绝对路径改 BASE_URL 前缀(代 bot_qa 验收 #164-#176) 2026-08-06 13:14:52 +08:00
bot_dev2 787234146b feat: 完成 issue #176 [C1] 旧入口收口——/index.html /auth/login.html FBA 在线自动跳转 + README 新架构说明 2026-08-06 13:00:43 +08:00
bot_dev2 cda279fa66 feat: 完成 issue #174 [B8] 用户与角色模块退役——users/mobile 菜单隐藏(display=0)+users.html deprecated+admin 角色 FBA 系统管理 2026-08-06 12:59:59 +08:00
bot_dev2 f7759b7cee feat: 完成 issue #170/#171/#172/#173 [B4-B7]——studio 点位导入/模型超参/编排/版本 + admin 模型/知识库/告警/审计(原生 Vue 页) 2026-08-06 12:59:16 +08:00
bot_dev2 81222ad990 feat: 完成 issue #169 [B3] 对话助手重构——消息流+模型选择+引用溯源+离线降级 2026-08-06 12:57:21 +08:00
bot_dev2 df6776caba feat: 完成 issue #168 [B2] 驾驶舱重构(下)——实时趋势(SVG 折线 2s 滚动)+ NL 查询(infer.ts) 2026-08-06 12:56:46 +08:00
bot_dev2 febdd5b917 feat: 完成 issue #167 [B1] 驾驶舱重构(上)——布局+四状态工艺+KPI 卡片+告警面板(模板 JSON 驱动) 2026-08-06 12:56:01 +08:00
bot_dev2 7279c9f71f feat: 完成 issue #166 [A3] iAOP API 客户端封装(infer.ts LLM 网关 + templates.ts 模板 JSON + plans 迁入 public) 2026-08-06 12:54:18 +08:00
bot_dev2 ddd59345ed feat: 完成 issue #165 [A2] 菜单播种 v2——原生菜单(type=1/component/iconify)+PUT 幂等更新+admin 角色 2026-08-06 12:53:15 +08:00
bot_dev2 91b16ec6c3 feat: 完成 issue #164 [A1] FBA UI 骨架定制——iAOP 品牌+默认主页+清理 demo+构建流水线 2026-08-06 12:51:38 +08:00
bot_dev2 88d84757ac chore: vendor FBA UI 工程源码(fastapi-best-architecture-ui master,Epic #163 受控源码基础) 2026-08-06 12:50:35 +08:00
bot_dev1 9728fa40fe fix: 「用户与角色」模块切换到 FBA UI 承载(Epic #159 遗漏收尾) 2026-08-06 11:37:40 +08:00
bot_dev2 4a7b5e4f21 fix: seed_iaop_menus.py swagger 登录返回裸 GetSwaggerToken(无 code 包装),专用登录方法适配 2026-08-06 10:32:21 +08:00
bot_dev2 209427f685 fix: seed_iaop_menus.py 适配 FastAPI>=0.13x(HTTPBasicCredentials 绑定 query 参数,登录带 username/password) 2026-08-06 10:31:25 +08:00
bot_dev1 4ea81cea91 feat: Phase 3 FBA UI 预构建产物 + Phase 4 按钮级权限(fba_jwt + perms)(Epic #159) 2026-08-06 10:18:15 +08:00
bot_dev1 067ba0abe1 feat: Phase 2 Sider 菜单由 FBA 服务端授权驱动 + 菜单/角色播种脚本(Epic #159) 2026-08-06 10:04:36 +08:00
bot_dev1 5b673fcdc7 feat: Phase 1 前端认证接入 FBA JWT——三轨会话 + 图形验证码(Epic #159) 2026-08-06 09:46:21 +08:00
bot_dev1 70c680a612 feat: Phase 0 FBA 部署包——docker-compose + nginx 反代 + env 模板(issue #159) 2026-08-06 08:41:59 +08:00
bot_dev1 8b68d015c2 fix: 组件配色全面对齐 Ant Design 5 token + 修复 iframe 内页签初始激活(issue #131)
组件审查结论:全站组件为自绘 HTML+CSS 仿 AntD(纯静态无组件库),
pro.css 已统一设计 token,但各页 CSS/JS 残留一批旧配色硬编码,
pro.css 覆盖不到,本次全部清理:

- 旧 iOS 红 #ff3b30 → --ant-error #ff4d4f(告警 P0/严重度/DLP 条/
  工艺 alarm 态/diff 删除行)
- 旧橙 #f5a623 → --ant-warning #faad14(P1 告警/warning 态/暂存徽章)
- 旧 iOS 绿 #2ecc71 → --ant-success #52c41a(running 态/prod 徽章/
  索引完成/路由本地标签/权限矩阵)
- 杂色蓝统一 → --ant-primary #1677ff:发送键 #0ea5e9、P2 告警
  #3aa0ff、编排画布残留青 rgba(24,211,200)、旧气泡 #1d4ed8
- 主色按钮上的深色文字 #04202a → #fff(对比度修正)
- 灰 #64748b → --ant-text-tertiary rgba(0,0,0,0.45)
- 各页 CSS :root 深色默认变量值(#0b1220/#13203a/#18d3c8 等死值)
  对齐为 AntD 亮色默认值,修正"深色主题"过时注释
- 删除已无任何引用的旧深色登录页样式 auth/auth.css

顺带修复实测发现的 bug:SPA 外壳内直达 admin/studio 子页时页签
不切换——studio.js/admin.js 的 Tab 事件在异步 boot(user) 中绑定,
bindPageTabs 的 window load 初始激活可能早于绑定完成,改为带重试
的激活(直到 Tab 点亮,最多 10s)。实测 #/admin/#alerts 直达后
page-alerts 正确激活。
2026-08-06 08:20:17 +08:00
bot_dev1 cfa976cac3 feat: SPA 外壳——菜单切换零刷新,对齐 Ant Design Pro 体验(issue #131)
- web/index.html 重写为 SPA 外壳:Sider/顶栏常驻,模块页在
  #module-frame iframe 内容区加载,点菜单只换 iframe 地址,
  彻底消灭整页刷新与白闪(此前只是铺底色缓解)
- 新增 shared/shell.js:IAOP_SHELL.navigate() 导航、外壳 hash
  (#/admin/#models) 与 iframe 地址双向同步、登录守卫、移动端
  模块新标签打开;iframe 地址用 location.replace 避免污染
  joint history;250ms 轮询回同步(replace 不触发 load 事件);
  导航时乐观高亮(后台标签轮询被节流不能作为唯一途径);
  前进/后退若恢复了 iframe 旧地址则以外壳 hash 为准强制对齐
- pro-header.js 三模式:外壳(菜单点击走 IAOP_SHELL、导出
  IAOP_PRO.setActive)/被嵌(iframe 内,隐藏页内跨页链接与重复
  用户标识、保留 Tab-hash 联动)/独立(原行为);菜单渲染后派发
  pro:menu-rendered 事件消除导航先于渲染的高亮竞态
- session.js:logout/守卫重定向作用于顶层窗口(iframe 内不再
  只跳 iframe 自己)
- 修复 iframe 替换元素宽高 bug:fixed 时左右定位不拉伸(回退
  固有 300x150),改显式 calc 宽高
- 登录页 next 默认回外壳 ../index.html

实测(本地 http.server + WebBridge 真实浏览器):菜单切换/
子菜单切换/前进/后退/直达链接(#/admin/#models) URL、iframe、
菜单高亮、子菜单高亮全链路一致,Sider 节点全程不重建;
登录守卫 logout→顶层跳登录、登录后回外壳默认驾驶舱。
2026-08-05 22:43:47 +08:00
bot_dev1 65d3b0952f fix: 消除跨模块跳转的整页白闪(issue #131)
五个带 Sider 的模块页 head 内联首屏底色(左 208px #001529 深 +
内容区 #f0f2f5),外部 CSS 加载前的解析期画布即为最终布局底色,
深色 Sider 区域不再白闪(FOUC);窄屏媒体查询下保持纯灰底
2026-08-05 17:43:36 +08:00
bot_dev1 870dbb9ce5 fix: 子菜单高亮改由 hashchange 统一驱动(issue #131)
浏览器实测(WebBridge)发现同页子菜单点击后页签切换正常但
子项高亮不跟随:原实现依赖子项点击处理器更新高亮,存在竞态。
改为统一数据流:子项一律默认导航改 hash → hashchange 同时驱动
页内 Tab 切换与 .pro-subitem 高亮同步,跨页直达/分享 URL 路径不变。

实测验证:admin/#audit|#kb|#models 连续切换,hash/页签/高亮三者同步
2026-08-05 17:33:39 +08:00
bot_dev1 e9787ecb22 fix: 修复 http 纯静态部署下本地账号登录不可用(issue #131)
- user_store.js:crypto.subtle 仅安全上下文可用,http://:8090 下为 undefined
  导致播种/校验静默失败;新增纯 JS SHA-256 降级实现(已对照 Node crypto
  验证一致,含非 ASCII),WebCrypto 可用时仍优先
- session.js:/auth/login 返回 5xx/非 JSON 时判定为后端不可用并降级本地
  账号,仅 4xx 视为真实鉴权失败(原逻辑把 nginx 500 HTML 误判为密码错误)
2026-08-05 16:52:45 +08:00
bot_dev1 c0af291502 fix: 导航交互对齐 Ant Design Pro 体验(issue #131)
- 父级菜单整行点击 = 就地展开/收起 inline 子菜单(不再跳转),
  只有子项才导航,与 Pro 的 Menu inline 模式一致
- 子菜单展开加 max-height 过渡动画
- 菜单加 AntD Menu.ItemGroup 风格分组标题,hover 态补半透明白底
- 页内旧 topbar 去背景去边线,融入内容区当页标题行,消除双顶栏感
2026-08-05 16:20:52 +08:00
bot_dev1 0b3dc0b9ae feat: 移除门户页,登录后默认直达驾驶舱(issue #131)
- web/index.html 改为纯重定向页(/ → cockpit/,驾驶舱自带登录守卫)
- 登录页默认 next 改为 ../cockpit/,页脚入口链接同步调整
- Sider 菜单移除「门户」项,logo/默认首页指向驾驶舱
2026-08-05 15:54:14 +08:00
bot_dev1 2f6b329745 feat: Sider 子菜单上收页内 Tab(管理控制台/模板配置台,issue #131)
- MODULES 注册表支持 children:管理控制台(模型管理/知识库管理/告警确认/
  审计查询)、模板配置台(点位导入/模型超参/驾驶舱编排/版本发布)
- Sider 渲染 AntD Menu.SubMenu 风格可展开子菜单,当前页自动展开、
  子项按 URL hash 高亮(如 admin/#models)
- 页内 #tabs 自动隐藏,改由子菜单经 hash 驱动切换;页内 Tab 点击回写
  hash,URL 可分享直达子页;各页面业务逻辑零改动
2026-08-05 14:40:15 +08:00
bot_dev1 3a1cccc0c6 feat: 全站导航改为 Ant Design Pro 左侧边栏布局(issue #131)
- pro-header.js 重构:深色 Sider(#001529,AntD Pro 经典)+ 顶部 48px 细栏
- Sider 菜单 = 门户 + 模块按登录角色过滤,当前页高亮 #1677ff,
  底部折叠按钮可收成 48px 图标栏;窄屏(≤720px)自动隐藏退回纯顶栏
- 菜单/高亮按 URL 自动计算站点根前缀,六个模块页零改动接入
2026-08-05 14:31:42 +08:00
bot_dev1 7a2e45e7c4 feat: 全站 Ant Design Pro 风格重构 + 登录守卫与角色门户(issue #131/#134)
- 新增 web/shared:pro.css(AntD 5 设计系统,旧 CSS 变量统一映射 AntD 色板)、
  session.js(后端优先+本地账号降级双轨会话,IAOP_AUTH 兼容层)、
  pro-header.js(全站统一 Pro 导航条:logo/页题/用户角色 Tag/退出)
- 门户 web/index.html:未登录跳登录页(next 回跳),登录后按角色过滤
  可见模块(readonly→驾驶舱/助手/移动端;engineer→+配置台;admin→全部)
- 登录页 auth/login.html 重写为 Ant Design Pro 风格,本地降级模式自动
  播种演示账号(admin/engineer/viewer),保留 OIDC SSO 双轨入口
- user_store.js 新增 verify() + seedDefaults() 默认账号播种
- 六模块页统一接入 pro.css + 统一导航条 + 登录守卫(PRD 8.2)
- 驾驶舱主题 dark→light(Ant Design 5 色板):renderer.py THEME_TOKENS、
  ti-cl4/resin 模板 theme、告警三级配色对齐 AntD(P0 #ff4d4f/P1 #faad14/
  P2 #1677ff),渲染计划已重编(build_plans.py)
- 验证:core/cockpit 86 单测通过;JS 语法检查通过;静态冒烟全 200
2026-08-05 14:17:37 +08:00
bot_dev2andyunmei b53e71c85d feat: 前端根路径导航首页(web/index.html,6 模块入口 + 推理服务状态) 2026-08-05 13:15:03 +08:00
bot_dev1 ca6637b69e feat: 完成 issue #158 交接班摘要页补充历史摘要查看(最近 10 次本地保存) 2026-08-05 10:52:51 +08:00
bot_dev1 253ebe7b0b feat: 完成 issue #157 移动端只读驾驶舱补充手动刷新(KPI 时间桶滚动) 2026-08-05 10:50:05 +08:00
bot_dev1 3a6ef57592 feat: 完成 issue #156 审计查询页补充时间范围筛选 2026-08-05 10:47:31 +08:00
bot_dev1 04b5b33bb7 feat: 完成 issue #155 告警确认页补充确认超时自动升级(ackTimeoutS 同源配置) 2026-08-05 10:44:58 +08:00
bot_dev1 21d3654616 feat: 完成 issue #154 知识库管理页补充本地上传文档移除(模板资产只读保护) 2026-08-05 10:41:48 +08:00
bot_dev1 d181b4bfc8 feat: 完成 issue #153 模型管理页补充按模型审计历史视图 2026-08-05 10:39:56 +08:00