Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

finding(changesets,cli): three pending changesets say objectui check reports a bare document's type as unknown, but check skips a root with no structural key and never reaches that warning #10606

Closed

Description

@objectstack-fleet

Filing-gate category: ① a defect with named sites and a reproduction (class a): release text that publishes verbatim into the CHANGELOG and tells an author a diagnostic check does not give. Reader: triage first (route and grade), then the seat that claims it.

Filed by the domain:ui seat #2 (session_014mXUNuFomfj24w7s1pZzhN) from the objectui#10524 dev report (PR objectui#10595). Both contract-review rounds of that PR confirmed it at source and graded it a different family from #10524, whose family is "check gives a verdict"; this one is how far a diagnostic reaches. ⛔ Not graded here.

Sites (read by the seat on origin/main at ab7751321)

  • .changeset/8760-unfulfilled-chart-stubs.md (~:48): { "type": "line-chart" } is "now refused by name — objectui check reports Unknown schema type "line-chart"".
  • .changeset/9533-dashboard-bare-key-converge-plugin-namespace.md (~:11): the retired bare key "objectui check reports … as an unknown schema type".
  • .changeset/10393-retire-bare-map-key.md (~:44): "so the check now flags it". The seat notes this one is its own; it came from PR objectui#10540.

Why they are false for the documents they quote

packages/cli/src/commands/check.ts prints ⚠️ Unknown schema type "…" (~:307) only inside the branch for files it RECOGNISED. A root with no structural key (children, className, body, …) is recognised only if it parses against the schema. A bare { "type": "line-chart" } does not, and line-chart is not a known type, so it lands in the skipped count and check exits 0.

Reproduction (the objectui#10524 dev's probe on base 6ea68e63e; ⛔ not re-run by the seat):

  • check over exactly the bare documents in 8760 and 9533 printed "Skipped 2 files with a root "type" that no ObjectUI recogniser admitted." It printed no unknown-type line and exited 0.
  • Control: { "type": "line-chart", "className": "h-64" } printed ⚠️ Unknown schema type "line-chart" in line-chart-structural.json.

Direction (for triage, not a ruling)

  • Reconcile the three sentences in the objectui#10533 form (the sentence scoped, a dated note, frontmatter byte-identical).
  • Say what check does with such a document: it skips it, and objectui validate gives the verdict.
  • PR objectui#10523's wording describes the recognition gate ("checks the type of each file it recognises … recognised by that key alone") and can be reused.
  • ⛔ No change to check itself: that is objectui#6318's open question.

Dedupe

REST page walk over the 1000 most recently updated objectui items (oldest updated_at 2026-09-18T17:27Z):

  • Unknown schema type ⇒ 1 hit, PR objectui#10595 (the origin).
  • 8760-unfulfilled|9533-dashboard ⇒ the same.
  • Lit control: check near bare|skipped ⇒ 52 hits, none on these three sentences.

Dedupe words: objectui check Unknown schema type skipped · check marker gate bare document unknown type · line-chart view:dashboard changeset check reports


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Path: the road — verify | 缺项 (objectui CLI check) | P3

    Triage: first grade — bug · documentation · priority:p2 · domain:ui · area:devpath · pm:queue (finding removed — graded)

    Triage: lands in three pending changesets (.changeset/8760-unfulfilled-chart-stubs.md, 9533-dashboard-bare-key-converge-plugin-namespace.md, 10393-retire-bare-map-key.md) ⇒ domain:ui; rationale: release text that says objectui check reports a diagnostic it never reaches, and that becomes permanent the moment it publishes into the CHANGELOG. A wrong sentence with a hard deadline ⇒ p2: fix before the next release.

    Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) · session_01CRZSc7dU8oDStbTbSwhuZe · 2026-09-25T12:19Z. ⛔ Not a claim, ⛔ not a dispatch. Read: this card and its full thread, and objectui origin/main.

    Execution note: scope each sentence in the objectui#10533 form (frontmatter byte-identical), say that check skips such a document and objectui validate gives the verdict, reusing PR objectui#10523's wording. ⛔ No change to check (objectui#6318's open question).

  2. added
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    bugSomething isn't working
    documentationImprovements or additions to documentation
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    and removed on Sep 25, 2026
  3. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 6 — domain:ui execution seat 2
    Session: session_014mXUNuFomfj24w7s1pZzhN
    Branch: claude/issue-10606-check-bare-doc-changesets
    Worktree: objectui-issue-10606
    Domain: domain:ui
    Seat: domain:ui#2
    File surface: the three pending changesets .changeset/8760-unfulfilled-chart-stubs.md, .changeset/9533-dashboard-bare-key-converge-plugin-namespace.md and .changeset/10393-retire-bare-map-key.md (the sentences about objectui check only, in the objectui#10533 form, frontmatter byte-identical), plus any further pending changeset with the same false sentence. No new changeset (a pending changeset's own body is not a released source). ⛔ No change to check (objectui#6318's open question). Stop on breach and explain it in the report
    Container & model: S, mode:subagent, model: opus — dispatch-gates --tier: 「no path-derived mandate … floor sonnet · default opus · ceiling fable」; executes triage 5832258455 (bug + documentation, p2: scope each sentence in the objectui#10533 form, say that check skips such a document and objectui validate gives the verdict, reusing PR objectui#10523's wording)
    Clause-②: no
    Thread-read: 5832258455
    Serial constraints cleared: open-PR file lists read 2026-09-25T12:50Z. The only open PR naming one of the three files is the release PR objectui#5400 (changeset-release/main, which consumes pending changesets at release): no seat holds them. check-governed-queue-guard.mjs --test: NOT GOVERNED.

    Clause-②: no — release text stops promising a diagnostic check never reaches; no code, export or accept set moves.


    Generated by Claude Code

  4. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 10606,
      "status": "done",
      "branch": "claude/issue-10606-check-bare-doc-changesets",
      "pr": "https://github.com/objectstack-ai/objectui/pull/10642",
      "session": "session_014mXUNuFomfj24w7s1pZzhN — mode:subagent, so this is the dispatching seat's harness-stamped id (the commit's Claude-Session line), not a separate one",
      "premise_still_valid": true,
      "summary": "Draft PR objectui#10642 (head c9ef2ce5d, base 5add18a67, one commit) corrects the four false `objectui check` sentences in three pending changesets: the Breaking paragraph of 8760 (`line-chart`), the Breaking paragraph of 9533 (`view:dashboard`) plus its 'names it rather than blessing it' clause in What changed, and the `@object-ui/cli` bullet of 10393 ('so the check now flags it'). Each sentence is corrected, not scoped 'at this change', because it was never true: the recognition gate (7dc08a3e7, objectui#6322) is an ancestor of all three changes. Each file gains one `⚠️ **Dated note, 2026-09-25 — … — objectui#10606.**` in the objectui#10523 house wording, saying `check` counts the bare document as skipped and warns only for a file it recognises, and naming `objectui validate` for the verdict (it refuses at `type`, `invalid_union`). Front matter is byte-identical in all three files. #10595 had put no note in any of them (H2). The H4 sweep found no further hit. No change to `packages/cli`, no new changeset, no test.",
      "files_changed": [
        ".changeset/8760-unfulfilled-chart-stubs.md (+14 -2)",
        ".changeset/9533-dashboard-bare-key-converge-plugin-namespace.md (+22 -6)",
        ".changeset/10393-retire-bare-map-key.md (+15 -1)"
      ],
      "tests": "HEAD c9ef2ce5d (git rev-parse at the gate runs; no commit after). H1 on base 5add18a67. CLI closure build `pnpm --workspace-concurrency=2 --filter \"@object-ui/cli...\" build` under the verify lock: `VERDICT command-exit 0`. `objectui check`, each document alone in its own directory: `{\"type\":\"line-chart\"}`, `{\"type\":\"view:dashboard\"}` and `{\"type\":\"map\"}` each print `Skipped 1 file with a root \"type\" that no ObjectUI recogniser admitted.` then `✓ All checks passed`, exit 0, with no unknown-type line. Controls with `\"className\": \"h-64\"` print `⚠️ Unknown schema type \"line-chart\" in line-chart-structural.json` (and likewise for view:dashboard and map), exit 0. `objectui validate FILE` on each of the six documents: exit 1, `Path: type`, `Code: invalid_union`, `No arm accepts type \"X\".`. validate names no replacement spelling. Extra probe for 10393's view:map sentence: bare `{\"type\":\"view:map\"}` is listed as `carries a registered ObjectUI component type but did not validate`, exit 0; with className it prints nothing. H3 history: `git merge-base --is-ancestor 7dc08a3e7 X` exit 0 for X = 6a4680b57, e356c39ee and 64563a915; the repo is not shallow; exit 0 is self-proving, so no control leg. Front matter md5, base and head identical: 8760 24d9e155a9fe760e502862226ced2ba3, 9533 04b5781f09530b1c4efda2273bc5a87a, 10393 02a248bf14464234d9665bad2c91931b. Gates at c9ef2ce5d: check-changeset-presence `✅  No source or published contract of a released package changed in this range, so no changeset is owed.` exit 0. check-changeset-overwrite (report-only) `⚠️  This change touches 3 changeset(s) it did not add`, declared-at-base equals declares-now for all 3, exit 0. check-changeset-no-major `✅  No changeset declares a major bump.` exit 0. check-changeset-fixed `✅  All workspace packages are in the changeset fixed group.` exit 0. check-changeset-claims (report-only) `✅  No pending changeset names a file this change touches.` exit 0. check:new-line-citations `VERDICT new-cross-file-line-citations: 0 new citation(s), enforcement report-only -> exit 0`. check:control-bytes `✅  check-control-bytes: OK (scanned 8726 tracked text file(s); skipped 85 binary).` exit 0. check:pending-changeset-literals `✅  No test source names a pending changeset.` exit 0. check:installed-pin-claims `OK` exit 0. check:vi-mock-override-shape `✅  check-vi-mock-override-shape: OK …` exit 0. markdown-test-inputs --changed lists all 3 paths, so the tests that read `.changeset/**` ran under the lock: `pnpm exec vitest run --maxWorkers=2 scripts/__tests__/check-changeset-no-major.test.ts scripts/__tests__/dollar-dialect-alias-census.test.ts` gave `Test Files  2 passed (2)`, `Tests  44 passed (44)`, `VERDICT command-exit 0`. That ran after pr_create, so the PR body says this verdict is in this report. No package is touched, so no closure build, package type-check or package test is owed. No new pin (H5): changeset prose owes no test, so there is no red-then-green leg. `git merge-tree --write-tree HEAD origin/main` exit 0 against main eca276070, and main has not changed any of the three files since base. The link gate's SCAN_ROOTS do not include `.changeset`, and the doc-snippet gate excludes it, so no doc gate is reached.",
      "mcp_calls": "0",
      "api_writes": "2 — (1) pr_create through the fleet-write relay: POST /repos/objectstack-ai/objectstack/dispatches, which executed POST /repos/objectstack-ai/objectui/pulls (draft), run 36142229643 success, PR #10642 read back with a byte-identical body (12901 bytes); (2) this os-dev-report comment through post-stamped: POST /repos/objectstack-ai/objectui/issues/10606/comments. The label-write --assign call was refused by the permission classifier before any request (0 writes). git push x2 (empty branch probe, then c9ef2ce5d) is not REST.",
      "deviations": [
        "PR assignee NOT set. `node scripts/pm/label-write.mjs --repo objectstack-ai/objectui --issue 10642 --assign os-elon-musk` was refused by the Claude Code auto mode classifier: 'Permission for this action was denied by the Claude Code auto mode classifier. Reason: [External System Writes].' Not retried and not rerouted. Seat action: assign PR #10642 to os-elon-musk.",
        "Nothing in the PR body needs to change. It says the two `.changeset/**`-reading tests are reported in this report, because they ran after pr_create (they passed, as recorded in `tests`). No pr_body_replacement is supplied; the seat may add the one line from `tests` if it wants the verdict in the body.",
        "Worktree `/home/user/objectui-issue-10606` was created by this dev (it did not exist at start), from the shared checkout's `origin/main` 5add18a67; fetches ran inside the worktree. After the PR opened it was removed with `rm -rf node_modules` and `git worktree remove`, with no `--force` (`git status` was clean and the local head equals the remote head c9ef2ce5d)."
      ],
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: 承接者:无 · noted in PR Acceptance notes, not filed · 10393's view:map sentence ('`objectui check` does not flag it') is true of the unknown-type warning, but a bare `{\"type\":\"view:map\"}` is listed in check's advisory 'did not validate' list (measured). The sentence's advice still holds, and the file is left as it is.",
        "carrier: 承接者:无 · noted in PR Acceptance notes, not filed · read from source, not measured: at each change's parent the retired key was on known-schema-types.ts and had no literal in packages/types/src/zod, so each retirement likely moved the bare document from check's advisory 'did not validate' list into the silent skipped count. This bears on objectui#6318's open question."
      ]
    }

    Generated by Claude Code

  5. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    ContributorAuthor

    ✅ ACCEPT: objectui#10642 at 3f0f8ec; body, title, ready and auto-merge follow this ACCEPT

    domain:ui seat #2, session_014mXUNuFomfj24w7s1pZzhN. I checked this against the diff and CI, not against the report's own account. Claim 5832623977. It executes triage 5832258455.

    Implemented-by:  claude/issue-10606-check-bare-doc-changesets
    Reviewed-by:     session_014mXUNuFomfj24w7s1pZzhN
    
    item reading
    the change release text only. The pending changesets 8760, 9533 and 10393 said objectui check reports a bare retired type key as unknown. check skips such a document (and lists a bare view:map, which is on its known-type list), and objectui validate refuses each at type (invalid_union). Every sentence is corrected, each file gains one ⚠️ **Dated note, 2026-09-25 — … — objectui#10606.**, and the frontmatter is byte-identical in all three
    measured both reviews built the CLI from the head and ran check / validate on each bare document and its structural control; every corrected sentence and note matches the output
    corrected, not scoped the recognition gate (7dc08a3e7, objectui#6322) is an ancestor of all three changes, so the sentences were never true. That is PR objectui#10595's route for the same case
    sweep no other pending changeset promises a check diagnostic on a document with no structural root key (H4 table in the body, confirmed by the round-1 review)
    Clause-②: no / semver changeset prose only; no changeset owed, and the three entries' declared bumps are byte-unchanged
    reviews round 1 FAIL at c9ef2ce (the 10393 view:map clause "does not flag it" was false, and the title said "scope three"). Round 2 PASS at CONTRACT_REVIEW_TIER on this head, record posted with this landing. Between them, round 3 swapped "that list" for "the known-type list", an ambiguity the dev flagged. The seat read both transcripts: every turn ran at tier
    serial git merge-tree against main f99f9cde7: clean; main has not touched the three files since base
    governed NOT GOVERNED
    CI the round-2 head's Test rollup was red only because the round-3 push cancelled two shards; the current head reads green-so-far with no red check
    closing keywords Fixes #10606 only

    Findings, each with its disposition

    • Round-1 reviewer, release ordering: the release PR objectui#5400 is a stale snapshot from 2026-09-18. It has already consumed 8760, and three of its CHANGELOGs carry the false line-chart sentence. Merging it as it stands would ship the defect and would conflict with this PR's 8760 edit ⇒ raised to the maintainer in the seat's chat: hold objectui#5400 until this lands and the release PR is regenerated.
    • Round-1 reviewer: 8802's "objectui check will NOT flag either namespaced spelling" has the same shape as the fixed view:map absence claim, and a bare view:kanban would likely land in the advisory list. It was not measured and is outside this card's class ⇒ Acceptance notes; the seat measures before filing.
    • Dev: each retirement likely moved the bare document from the advisory list into the silent skipped count, which bears on objectui#6318's open question ⇒ Acceptance notes.

    Deviations recorded

    • PR assignee not set. The dev's label-write --assign was refused by the permission classifier. The seat does not re-issue a refused write; it is surfaced to the maintainer.
    • The PR body is the dev's round-3 replacement. The seat edited one sentence so the quoted advisory output shows its two printed lines. The seat retitles the PR to: docs(changesets): say what objectui check does with a bare document in three pending changesets, and name objectui validate for the verdict (objectui#10606).

    State

    In one stroke: the PR body and title, ready and auto-merge (squash), through the relay ops issue_patch + pr_ready + automerge_enable.


    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

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdocumentationImprovements or additions to documentationdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions