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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions