Skip to content

产品品牌配置收敛为单一来源 ​

状态:implemented 类型:simplification Owner:backend/yuxi/modules/system/static/info.template.yaml

问题 ​

站点配置同时定义 organization 与 branding,首页、登录页和侧栏分别读取组织名、产品名与头像,造成重复概念和不一致展示。用户要求只保留产品名称与 Logo,删除无价值的组织头像及全部副标题,并统一品牌文字与首页黑白主按钮。

决策 ​

实现方案 ​

品牌模板仅保留 branding 与 footer。branding 统一拥有 name、logo,以及仍有当前消费者的 title、login_bg。HomeView、LoginView、AppLayout 从同一 Info Store 的 branding 读取产品名称和 Logo;首页移除副标题投影,登录页移除组织名拼接,侧栏以 Logo 替代独立头像。

Info Store 拥有前端品牌投影;模板与现有 /api/system/info 加载器继续拥有服务端配置读取与版本替换。无配置兼容层或数据迁移逻辑;自定义 YAML 需按新的单一品牌结构调整。当前工作区不存在 info.local.yaml,运行时使用仓库模板。首页与登录页品牌文字沿用原登录页“语析”的字号、字重与中性灰色(gray-700)。首页的输入及按钮样式由首页单屏输入入口与知识流线拥有。

替代方案 ​

  • 保留 organization 并更改界面标签:仍存在两份名称和图标事实。
  • 为旧字段增加转换与回退:继续维护用户明确删除的概念,当前工作区无此类定制文件消费者。
  • 去掉全部可配置展示:名称、Logo、首页标题、登录背景和协议均有当前消费者,保留其自定义能力。

验证 ​

验收主张失败面语义 Owner直接证据 / 命令负向案例当前结果
配置只表达一份产品品牌组织/头像/副标题残留或名称分叉品牌模板 / Info Storeunit、真实 HTTP、残留检索原模板在新契约断言下失败Passed:相关 unit 4 项、独立只读真实 GET 新结构断言通过
首页、登录、侧栏一致读取名称和 Logo品牌为空、Logo 用旧头像、登录拼接组织名三个界面 / Info Store浏览器自定义名称与 Logo、字体比较、侧栏展开/收起仅提供新结构、不提供组织或头像Passed:自定义产品名、Logo、登录背景、两主题字体与侧栏展开/收起均通过
黑白主按钮与单屏入口成立hover 恢复蓝绿、主题反转错误、入口回归HomeView浅深色与 hover/active DOM 色值、关键尺寸及导航长品牌、短视口、服务失败重试Passed:十组布局、两主题三态色值、键盘与登录导航、重试均通过
  • playwright-cli -s=product-brand-check --raw run-code --filename=frontend/test/browser/homeEntry.js:通过;浏览器使用公开品牌与登录协议 fixture,验证实际 DOM、按钮色值和 Canvas 像素,不代替后端授权与持久化证据。
  • docker compose exec -T frontend pnpm run test:unit:645 项通过;前端 lint 与 build 通过。
  • docker compose exec -T api uv run --group test pytest test/unit -m "not slow":2714 项通过、62 项跳过;品牌路由最小集合 4 项通过。
  • 工程契约检查、其 66 项 unit、文档 pnpm run build 与 git diff --check:通过;独立 Reviewer 审查收敛。
  • 独立只读 GET /api/system/info:真实 HTTP 200、success 及 branding/footer 结构断言通过。
  • docker compose exec -T api uv run --group test pytest test/integration/api/test_system_router_api.py -k info_endpoint_is_public -q:Not run;session fixture 的已有 Workdir 重叠清理保护阻止进入测试体,未绕过保护或清理共享工作区。

旧能力不存在:organization、独立品牌 avatar、subtitle/subtitles 及副标题展示从当前品牌模板、Store 与界面中移除。

重新引入条件:有明确 consumer 需要组织与产品作为独立实体展示时,重新裁决信息模型。

后果 ​

自定义品牌文件须更新结构。后台用户头像、部门和身份信息不属于本次品牌清理。协议配置与登录授权保持现有行为;页面验证不代替真实登录或智能体执行链路。

本项目基于 MIT License 开源,欢迎使用和贡献。