Skip to content

fix(app-shell): Studio item header's saved-to note says where the customization lives (#30436) - #30523

Queued
objectstack-fleet[bot] wants to merge 2 commits into
mainfrom
claude/project-thread-q45hp0
Queued

objectstack-fleet[bot] wants to merge 2 commits into
mainfrom
claude/project-thread-q45hp0

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

domain:ui#5 · os-sales · session_01L6bhgTL7xvsd9AqyDZgX3C

Requested by Sales · project thread

Fixes #30436

What changes

  • SavedToCustomizationNote (ui/packages/app-shell/src/preview/savedToCustomization.tsx) takes a new optional pairId prop. Given one, it goes on after "Saved to X's customizations" with the publish sheet's second sentence, customizationEnvironmentText(t, pairId) (key preview.changes.customizationEnvironment, from fix(app-shell): Studio's publish review sheet says a customization lives in this environment's database and moves only by os package export #30435): the changes are kept in this environment's database as items of the pair and reach another environment only through os package export. It draws as its own span, testid <testId>-environment; the first span and its text are unchanged.
  • StudioDesignSurface.tsx: the four call sites (Interfaces item header, Interfaces navigation editor, Data object header, Automations flow header) pass the pair: customization.pairId, or pairIdOf(customization.base) (the <base>.custom id the first save creates) while the base has no pair yet. Two customizeNotePair consts sit beside the existing customizeBaseLabel lines; the Data object site computes it inline from its own customization.
  • DraftChangesPanel.tsx is not touched. No new i18n key.

Why

The item header said only where a customization is saved, while the publish sheet also says where it lives and how it moves (ADR-0146 D2). The two now say the same words from the same keys.

Verification

  • pnpm exec vitest run (from ui/) on the four pillar test files and DraftChangesPanel.test.tsx: 5 files, 91 tests pass. New assertions check the full English sentence naming com.example.hotcrm.custom on all four headers, including before the first save (Customize just clicked), and its absence in the CONTROL case.
  • Ablation: with the sentence disabled in the component, 6 of the new assertions fail across the 4 pillar files.
  • pnpm --filter @object-ui/app-shell run type-check passes; pnpm --dir ui run check:spec-symbols passes; eslint on the touched files: 0 errors (pre-existing warnings only).
  • dispatch-gates --commands families run and reconciled with --ran (see the card thread's report).

Clause-②: no
Metadata-protocol: none

Human Minimum

  • 1. Schemas start as Zod; packages/spec holds no runtime logic.
  • 2. Every name I added uses the casing for its kind.
  • 3. No formatter ran; pnpm lint passes.
  • 4. One issue, one branch off an up-to-date main, one pull request.
  • 5. A change that publishes carries a changeset, and both declaration lines are filled in here and in the changeset.
  • 6. packages/spec touched: its generated artifacts are regenerated and committed. (not touched)
  • 7. No hand edits to content/docs/references/, packages/*/CHANGELOG.md or content/docs/releases/.
  • 8. Title, body and comments are in English.
  • The Before Submitting list in CONTRIBUTING.md is done.

🤖 Generated with Claude Code

https://claude.ai/code/session_01L6bhgTL7xvsd9AqyDZgX3C

@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation tooling labels Nov 5, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif

维护者速读

席位核对 — ACCEPT · domain:ui#5 · head 580d7862717e35fe38c7cecdeca3f4ec42820cfd

  • 形态: draft,作者 objectstack-fleet[bot](中继 pr_create),目标 main,Fixes #30436。共 7 个文件,+70 −6。check-governed-merges --pr 30523:NOT governed;76 行,未超 3000。mergeable_state 读为 clean。
  • 契约面: 不碰 packages/spec/**,不碰 governed 路径。Clause-②: no:SavedToCustomizationNote 新增可选 pairId 属性,但该模块没有从 @object-ui/app-shell 入口导出(包只有 exports '.',入口不引用 preview/savedToCustomization),所以不是发布面。没有新键。Metadata-protocol: none 与 diff 一致。不欠合同复核。
  • 抽查:
    • 没有 pairId 时组件只画原来那一个 span,文字和 testid 都不变;有 pairId 时另起一个 span,testid 为 <testId>-environment。
    • 四个调用点都传 customization.pairId ?? pairIdOf(customization.base):已有定制包时用服务端给的名称,第一次保存前用将要创建的名称。pairIdOf 在该文件里已经 import。
    • 用的是 customizationEnvironmentText,和 DraftChangesPanel 同一个函数、同一个键 preview.changes.customizationEnvironment;DraftChangesPanel.tsx 没有改动。
  • 门禁 check-runs: 580d7862 上 55 个 run:44 success,11 skipped,0 失败。
  • 测试: 四个 pillar 测试文件里加了断言,检查完整英文句子并点名 com.example.hotcrm.custom,包括刚点「定制」、还没保存的情况,以及对照情况下这句话不出现。卡线程报告:5 个文件 91 个用例通过;把这句话在组件里关掉后,新断言有 6 条变红;派生门禁 35/35 exit 0;type-check 和 check:spec-symbols 通过。
  • 接受的偏差: PR 正文没有 ## 维护者速读,以本评论的速读为准。
  • 范围外去向: 无。
  • 落地条款: Fixes #30436。本席位按普通队列在这个 head 上落地:relay pr_ready + automerge_enable。MERGED 后核对 Studio item header: the "saved to X's customization" note does not say the customization lives in this environment and moves only by os package export #30436 已关闭、pm:dispatched 已摘。

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review November 5, 2026 14:23
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge November 5, 2026 14:24
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Nov 5, 2026
Any commits made after this event will not be merged.

This branch has not been deployed

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

Labels

documentation Improvements or additions to documentation size/s tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Studio item header: the "saved to X's customization" note does not say the customization lives in this environment and moves only by os package export

1 participant