Skip to content

[Architecture] 建立 NanaUI pin 升级合同,收敛日更碎片提交 #75

Description

@sena-nana

背景

2026-09-01 至 2026-09-04,LiliaCode 主干上出现 10+次独立提交仅为「升级 NanaUI pin 到 」,同期 NanaLive / LiliaBilibili / NanaShader 也各自 pin 同一批 Chip/Avatar rev。

现有 docs/design/mutsuki-dependency-pin.md 只约束 Mutsuki 的 PATH/GIT 切换,NanaUI 没有对等文档。结果:

  • 消费方 git 历史被 pin 噪声浸没,难以追踪产品行为。
  • 多仓库同一天重复升级,容易出现短暂 API 不对齐(例如 atom 公开 API 收窄后立刻再 pin)。
  • nanaui-api-gaps.md 的 pin 记录无法跟上。

问题

框架与产品仓库分离是正确的,但缺 pin 合同会把框架迭代成本转嫁到每个消费方。

修改方案

  1. 新增 docs/design/nanaui-dependency-pin.md,镜像 Mutsuki 文档:
    • 默认 GIT rev;本地 sibling PATH 仅作开发区,不进主干。
    • 一次升级必须同时改 Cargo.toml / Cargo.lock 与 gaps 文档中的 rev。
    • 允许单独 pin 的条件:公开 API 破坏、修复阻塞产品的布局/命中 bug。
    • 禁止仅为「跟 origin/main」提交而不带产品改动或验收说明。
  2. xtask 增加轻量检查:读 Cargo.lock 中 nana-ui rev,与 gaps 文档首段对齐;失配时 cargo xtask verify 告警。
  3. 规范提交信息:「升级 NanaUI pin」必须写清带入的 API、应用侧是否改调用、验证命令。

验收

  • pin 文档落地,与 Mutsuki pin 文档并列。
  • gaps 文档中的 rev 与 lockfile 一致,或 verify 报明确偏差。
  • 不要求一次 PR 同步全部产品仓库;只约束本仓库的提交质量。

非范围

  • 不把 NanaUI 改为 workspace path 依赖。
  • 不在本 Issue 实现跨仓库自动批量 pin bot。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions