Skip to content

[Decision] Click a stage to advance a deal: the capability exists but a default record page cannot turn it on #30075

Open

Description

@objectstack-fleet

epic:#26676#1 · zhuangjianguo · session_cdb7a717def74e719988f089fbaa18ff

The maintainer: 「等我决定的都要立卡,并且从业务的角度给我具体解释和我沟通」 (2026-11-04). Measured by the seat on main 63b86b385d, on the example CRM unless noted. No domain:* label is set: triage routes this card.

The question

Moving a deal to the next stage is the most frequent update in a CRM. Today it takes 编辑 → change 阶段 → 更新. The platform can already advance by clicking the stage path, but only on a page that sets allowStageChange: true on its path block. A default record page has no block to set it on, and most apps use the default page.

Governing text: #28061 and #28303 (opt-in, off by default), and the 2026-08-23 ruling cited in record-path.inertReadout.test.tsx: a click-to-advance control is "a separate card". packages/spec/src/ui/component.zod.ts:2103.

Measured

  • CRM opportunity page: the stage segments are read-only. Nothing in ui/packages/app-shell/src or examples sets the key (git grep allowStageChange).
  • Saving through the dialog offers only the moves the state machine allows.

Options

  • A. On by default on the default record page, for a reader who may edit the field, with a confirmation, judged by the field's validation and state machine. A declared page keeps its own setting.
  • B. A new object-level key the author turns on.
  • C. Declared pages only, as today.

Recommendation: A

四轴分析

实际业务需求。 销售每天推进商机好几次,每次多点三下,还要打开一个大表单只改一个字段。这是记录页最常用的操作。

项目长远合理性。 A 不加新键,默认页本来就是平台决定的。按钮之前被定为只读,是因为它「看着能点其实不能」,现在真能点了,那个顾虑就消失了。

防 AI 写错。 A 没有新键可写错。B 多一个键,AI 容易漏写,功能就悄悄不在。保存仍走同一套校验和状态机,不会绕过规则。

创业阶段不扩散。 能力已建成(#28303),只差默认页接上。风险是误点,所以要二次确认。

棱 A B C
业务 强 中 弱
长远 强 中 中
防错 强 中 强
不扩散 强 弱 强

Not measured

How a stage move behaves when the move needs another required field. The press refuses in place per #28303; the fill-in path is untested. A reader without edit permission keeps the read-only path, per the code comment.

Re-check

git grep -n "allowStageChange" origin/main -- ui/packages/app-shell/src examples

Activity

  1. objectstack-fleet commented on Nov 4, 2026

    @objectstack-fleet
    ContributorAuthor

    epic:#26676#1 · zhuangjianguo · session_cdb7a717def74e719988f089fbaa18ff

    The maintainer, 2026-11-04: 「30079这种不是应该在元数据应用中自己去开发自定义操作吗?你的意见是批量换负责人放到内核吗?其他全部同意」.

    Ruling: option A. The default record page turns on click-to-advance for a reader who may edit the field, with a confirmation, judged by the field's validation and state machine. A declared page keeps its own setting, and no new metadata key is added. needs-user-decision is removed; triage routes this card.

  2. objectstack-fleet commented on Nov 4, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p2 kept · domain:ui · 2026-11-04T13:01Z

    ⛔ Not a claim.

    • Read fresh. The ruling recorded on this card (A, 「其他全部同意」) is the scope. The default record page turns on click-to-advance for a reader who may edit the stage field, with a confirmation, and adds no new key. p2 kept.

    Generated by Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions