Skip to content

chore: raise the @objectstack/spec pin from ^17.0.0-rc.6 to 17.0.0 GA (lockfile resolution + green-keeping adaptations) #4636

Description

@yinlianghui

Filed by the repo:objectui seat (session session_01RnQd8iMMUwXQEV1crFmQiQ, round 1, 2026-08-14), acting on the handoff record #4635's first-check item.

Blocked-by: #4910
Blocked-by: #4911

(Blocker history — #4648 exhausted 2026-08-17: PR #4901 merged 03:05Z. The 2026-08-17 re-point round (PR #4639 @ 47c7cc3, takeover claim by session session_01DbRmJD3iPhXjKr6vhd4Qkv) then met the lockfile criterion in full and cut the farm red from 9 files / 17 tests to 3 / 3 — every remaining red owned by the two cards above (#4910 owns two, #4911 owns one); see the os-dev report and PM disposition comments of 2026-08-17. Earlier: Blocked-by lines for #4649 and #4650 removed 2026-08-14 ~16:35Z — both adaptation PRs MERGED (#4657, #4660). Sequencing ruled 2026-08-14, option A of the dev report on this card: the bump PR #4639 stays a parked draft until its expected-red list is empty, then flips; gate-weakening option C is rejected.)

Context

@objectstack/spec@17.0.0 (GA) is published on npm (dist-tags.latest = 17.0.0; the former rc tag stops at 17.0.0-rc.6). objectui's package.json ranges say ^17.0.0-rc.6, and the criterion that matters is the lockfile-resolved version (established on the old tracking card #3374: the ^ range is not the pin).

Re-check commands:

  • git grep -h '"@objectstack/spec"' origin/main -- '**/package.json' | sort -u
  • grep -A1 '@objectstack/spec' pnpm-lock.yaml | head (resolved version)
  • npm view @objectstack/spec dist-tags --json

The work

  1. Raise the pin so the lockfile resolves @objectstack/spec@17.0.0 everywhere in the workspace (all package.json occurrences + pnpm-lock.yaml). Done in PR chore(deps): raise the @objectstack/* pin from ^17.0.0-rc.6 to 17.0.0 GA #4639 (with client/formula/lint raised too — their exact pins otherwise nest a second rc.6 spec copy; measured in that PR). Re-pointed onto post-adaptation main 2026-08-17 (47c7cc3): all 30 importers resolve 17.0.0, single physical copy, zero rc.6 strings in the lockfile.
  2. Run the full regression; adaptations beyond green-keeping were split out: Unwind the objectstack#7176 striped/bordered/virtualScroll forwarding chain (types → react spec-bridge → plugin-list → plugin-view → app-shell) + drop ObjectGrid.component.yml's retired declarations #4649 (retirement unwind, MERGED as PR refactor: unwind the retired striped/bordered/virtualScroll list-view surface (objectstack#7176) #4657), Resolve the spec-named symbol collisions with 17.0.0 GA exports (check:spec-symbols): SECRET_MASK + ObjectCalendarProps/ObjectFormProps/ObjectGridProps/ObjectKanbanProps + one more #4650 (symbol collisions, MERGED as PR fix(plugins,app-shell): resolve the six spec-named symbol collisions with 17.0.0 GA #4660), [Decision] spec 17.0.0 GA declares four new authorable object-* blocks and new keys on three existing ones — what does objectui publish as authoring surface? #4648 (authoring-surface ruling, CLOSED via PR feat(plugins): publish the four GA object-* blocks' authoring surfaces (#4648) #4901), spec 17.0.0 GA made the element props schemas strict — two spec-parity tests still encode rc.6 strip-mode as their control #4910 (GA strict-mode parity probes, open), FilterConditionField cannot author spec 17.0.0 GA's new $like / $ilike — the same shape as the closed $icontains gap (#4023) #4911 ($like/$ilike builder reachability, open — decision box).

Known unlocks gated on this bump (do NOT do them in this PR)

Acceptance

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions