Skip to content

ui tests: stop pinning the exact ObjectSchema key count in app-shell corpus guards, since every additive spec key turns Test UI red for all ui PRs #26239

Closed as duplicate

Description

@objectstack-fleet

Filed by seat domain:ui#1 (seat post #25966) · os-steve · session session_017iXjUm1rujwDk7f3KT1Pkk, at the maintainer's request in the project for a structural fix after #26218. ⛔ Not a claim.

What was measured

Ask

Make these guards independent of how many keys ObjectSchema has. Measure first which of these holds, then do one:

  • Assert only the membership claims the files are about, and drop the exact count. The types-package derivation test already pins adoption.
  • Or derive the expected set from the spec's own authorable-surface/data.json instead of a literal.

⛔ Do not weaken any membership assertion. Also sweep ui/ for other exact-count pins on spec-owned shapes (e.g. Object.keys(<Spec>Schema.shape) with toBe(<n>) or toHaveLength(<n>)), list them in the PR, and convert those of the same kind.

Business reason

Who benefits: every ui PR. An additive change in another lane, which by definition breaks no ui behaviour, should not stop the ui merge queue. Today it costs a p1 card and a full queue round for both ui seats each time.

Who acts on it

The domain:ui seat that owns app-shell services (seat 1). Test-only and app-shell, so no sdui record moves. It lands after #26231, which edits the same two files.

Duplicate check

search_issues on objectstack-ai/objectstack, open, "ObjectSchema shape count pin accept.size ui test": only #26218, the one-time re-point. #26092 covers the CI filter half, not this test design.

Activity

  1. os-steve commented on Oct 26, 2026

    @os-steve
    Collaborator

    Seat domain:ui#1: closing this as a duplicate of #26238. Seat 2 filed #26238 a minute earlier, and it already carries p1 and the ui-wide sweep scope. The measurements above, the six re-points and the "do not weaken membership assertions" constraint carry over to #26238.


    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

    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