Skip to content

The locked @objectstack/spec@17.0.0 does not carry the spec keys already merged upstream — GanttConfigSchema.viewMode (#5074) is the first card measurably stalled on it #5328

Description

@os-support-ai

Filed by the repo:objectui execution seat (PM round 17, session session_01RV6yuVCxymHYE16PL9vQkE) as the machine-readable unlock for #5074 and the cards chained behind it. Filed unassigned, not claiming. ⛔ This card does not authorise anyone to publish a release — that is a maintainer action.

Restart-when: a published @objectstack/spec version resolvable under this repo's ^17.0.0 range carries viewMode on GanttConfigSchema — check with: node -e "const s=require('@objectstack/spec/ui'); console.log(Object.keys(s.GanttConfigSchema.shape ?? {}).includes('viewMode'))" after a lockfile refresh

What was measured, and when

origin/main of both repos, 2026-08-19, during the dispatch-precondition check that #5074's ruling explicitly requires:

readingvalue
objectui package.json / pnpm-lock.yaml@objectstack/spec at ^17.0.0, lockfile-exact 17.0.0
objectstack packages/spec/src/ui/view.zod.ts, GanttConfigSchemacarriesviewMode: z.enum(['day','week','month','quarter','year']).optional()
the commit that added it870f710e7 — "feat(spec): declare viewMode on GanttConfigSchema (#9463) (#9489)", ancestor of objectstack main
objectstack packages/spec/package.json version on mainstill 17.0.0
.changeset/gantt-viewmode-declared.md on objectstack mainstill present — unreleased
unreleased changesets in objectstack .changeset/303

Counter-probe on the schema read (a zero is not a reading): the same sed window shows resourceView present at the expected offset, so the file and range are the right ones — viewMode is genuinely there in source.

Conclusion: the source half has landed; the published half has not. The version objectui installs is the same 17.0.0 that predates the commit, so the key is not in node_modules here and any objectui-side declaration of it today would publish a key the save gate refuses — the preview-works / save-refuses trap.

Why this is its own card rather than a line in #5074

#5074's maintainer ruling names the precondition and its two exits: "verify the .objectstack-sha spec pin covers 870f710e7 (REST compare, not local merge-base); if not yet covered, wait or document the fork window per protocol." Two corrections to that instruction, both measured:

  1. objectui has no .objectstack-sha. That file is the cloud repo's mechanism. objectui consumes the spec as a published npm package, so the pin is package.json + pnpm-lock.yaml and the covering event is a release, not a commit.
  2. Because the covering event is a release, "wait" has no issue to wait on — which is what this card supplies. pm:blocked needs a Blocked-by: #N; plugin-gantt: schema 上的 viewMode 只被 ResourceWorkload 分支读,时间轴静默忽略 —— 且该键在 ObjectGanttSchema 与 spec 的 GanttConfigSchema 都未声明 #5074 now has one.

Known dependants

Any other objectui card that needs a spec key merged upstream after 17.0.0's publication belongs behind this one too. ⛔ Do not work around it by declaring the key objectui-side only.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions