Skip to content

feat(spec):detail 块补 typed stageField 键(record:path 自动进度条开关的发现性) #2452

Description

@baozhoutao

问题描述

objectui 详情页 synth(@object-ui/plugin-detailbuildDefaultPageSchema / detectStatusField)在没有手写 record page 时会自动合成详情页,自动探测一个状态字段,在记录顶部渲染有序状态进度条(Lightning Path 风格的 record:path)。

很多对象的 status非线性 picklist(正常 / 暂停 / 作废),被强行画成有序进度条不合适。objectui PR objectstack-ai/objectui#2066 已支持用 detail: { stageField: false } 关闭(synth 读 def.detail?.stageField)。

痛点:发现性。 detail.stageField 目前只靠 spec object.zod.ts 那个 .passthrough()detail 块放行——没有 typed 键,所以作者(及 AI)写 detail: { stageField: false }没有任何类型提示 / 自动补全,也无从知道这个开关存在。

方案描述

packages/spec/src/data/object.zod.tsdetail 块里,与 renderViaSchema / hideReferenceRail / hideRelatedTab 并列,补一个 typed stageField 键(带 .describe()),保留 .passthrough():

stageField: z.union([z.string(), z.literal(false), z.null()]).optional()
  .describe('record:path 状态字段名;false / null 关闭自动状态进度条'),

类型与 synth 读取的 string | false | null 一致。作者写 ObjectSchema.create({ detail: { stageField: false } }) 即得类型 + 自动补全。不走 skill 文档(原方案一次加太多,已放弃)。仅 spec 一处改动 + changeset。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions