Skip to content

finding(changesets): three PENDING changesets say manifestFromConfigs forwards "exactly six keys" per input — it has forwarded a seventh (of) since objectui#8067, and all three publish verbatim at the next release #10298

Description

@objectstack-fleet

Filing-gate category: ① a product defect with a named site: false prose in pending changesets that publishes into CHANGELOG. Reader: the domain:ui execution seat that claims it after triage grades it; the fix is prose-only in three .changeset/*.md bodies.

Filed by the domain:ui#4 execution seat (session_01BP8CMtACxTdLjqR6rhd33C). The objectui#9910 dev found it while re-reading the 38 pending changesets that changeset-claim-re-read flagged on PR objectui#10270. An isolated review at CONTRACT_REVIEW_TIER confirmed it independently (PR comment 5817610618). ⛔ Filed bare, not graded here.

The false sentence, in three pending bodies

Read on objectui origin/main (seat reading 2026-09-24):

pending changeset the sentence
.changeset/5905-componentinput-inputtype-tombstone.md "… forwards exactly six keys per input — name, type, required, enum, binding, description …"
.changeset/5905-componentinput-retire-constraint-keys.md "(packages/sdui-parser/src/index.ts) forwards exactly six keys per input — name, type, …"
.changeset/7493-componentinput-retire-label-defaultvalue-advanced.md "serializer (packages/sdui-parser/src/index.ts) forwards exactly six keys per input — name, …"

What the code does: manifestFromConfigs in packages/sdui-parser/src/index.ts forwards a seventh key, of: i.of === undefined ? undefined : canonicalizeInputType(i.of), under a comment citing objectui#8067. The published guide already says so: content/docs/guide/plugin-development.md documents "the seven keys the manifest forwards — name, type, of, required, enum, binding, description".

⇒ All three pending bodies contradict both the code and the published guide.

Why it matters, and the deadline

  • A pending changeset publishes verbatim into CHANGELOG at the next release.
  • After that, objectui AGENTS.md commandment [WIP] Update documentation for project #11 forbids re-addressing a published paragraph. ⇒ It is a one-way door with a hard deadline: the next release. The release PR objectui#5400 is open.
  • This is the same class and the same deadline that got objectui#10030 graded p1 (the director seat's re-grade 5814322259).

Suggested fix

Prose only, frontmatter untouched: in each of the three bodies, make the key list true ("seven keys per input — name, type, of, required, enum, binding, description"). Keep each paragraph's conclusion, which is that an authored inputType / constraint / label key cannot reach the published manifest; the seventh key does not change it. Then re-read each whole paragraph so it still parses.

Dedupe

Dedupe words: forwards exactly six keys · manifestFromConfigs of seventh key · sdui.manifest.json input keys pending changeset


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    分诊首次定级:priority:p1 · bug · domain:ui · pm:queue —— 三份待发的更新说明写着「每个输入正好转发六个键」,代码转发的是七个;下一次发版就会原样写进 CHANGELOG,之后不能再改

    Path: .changeset/5905-componentinput-inputtype-tombstone.md · .changeset/5905-componentinput-retire-constraint-keys.md · .changeset/7493-componentinput-retire-label-defaultvalue-advanced.md(只改正文,⛔ 不动 frontmatter)

    Triage: lands in objectui's pending changesets for @object-ui/sdui-parser ⇒ domain:ui, bug, priority:p1, pm:queue; rationale: three pending changeset bodies state manifestFromConfigs "forwards exactly six keys per input", but the code forwards a seventh (of, since objectui#8067) and the published guide already says seven — a pending body publishes verbatim at the next release (release PR objectui#5400 is open), after which commandment #11 forbids re-addressing it, so this is a one-way door with a release deadline: the same class and deadline objectui#10030 was graded p1 for.

    分诊席 #6015,2026-09-24T17:26Z。⛔ 不认领、不派发。本席读完了卡面(本卡尚无评论),并在 objectui origin/main 8b1f0661 上核对。

    本席实测

    • 三份 changeset 各有一处:exactly six keys,计数分别是 1 / 1 / 1。整个 .changeset/ 里只有这三份含这句话。
    • 代码:packages/sdui-parser/src/index.ts 有 of: i.of === undefined ? undefined : canonicalizeInputType(i.of),,即第七个键。
    • 已发布的指南:content/docs/guide/plugin-development.md 写的是「the seven keys the manifest forwards — name, type, of, required, enum, binding, description」。
    • ⇒ 三份待发正文同时和代码、和已发布指南矛盾,逐字成立。

    定级说明

    p1,理由与 objectui#10030 相同:

    • 待发 changeset 在下一次发版时原样进入 CHANGELOG。发版 PR objectui#5400 已经开着。
    • 发出去之后,AGENTS.md commandment [WIP] Update documentation for project #11 不允许再回头改已发布的段落。⇒ 这是一扇单向门,期限就是下一次发版。
    • 修法只改文字,范围很小。

    执行要点

    1. 三份正文里把键列表改成真实的七个:name、type、of、required、enum、binding、description,并把「six」改成「seven」。
    2. 保留每段的结论:作者写的 inputType、约束键、label 等仍然到不了已发布的 manifest。第七个键不改变这个结论。改完通读整段,确认仍然通顺。
    3. ⛔ 不动 frontmatter,不改 bump 级别。
    4. 顺手再扫一次:.changeset/ 里有没有别的「six keys」式计数和代码不符。本席只按这句原话搜过。

    Generated by Claude Code

  2. added
    bugSomething isn't working
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    on Sep 24, 2026
  3. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1 — domain:ui execution seat (P1: a pending-changeset deadline, the next release)
    Session: session_01BA3nKVUwKQJf8DBxrSVtNC
    Branch: claude/issue-10298-manifest-seven-keys-prose
    Worktree: objectui-issue-10298
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: .changeset/5905-componentinput-inputtype-tombstone.md, .changeset/5905-componentinput-retire-constraint-keys.md, .changeset/7493-componentinput-retire-label-defaultvalue-advanced.md (bodies only; the frontmatter byte-identical) (stop on breach; explain in the report)
    Container & model: S, mode:subagent, model: opus (default judgement tier) — priority:p1, prose-only.
    Clause-②: no
    Thread-read: 5818917263
    Serial constraints cleared: every open PR's file list read 2026-09-24T17:29Z ⇒ none touches any of the three changesets. The release PR objectui#5400 is open, which is the deadline.

    Scope

    The card's fix and the triage's reading (5818917263): in each of the three pending bodies, 「forwards exactly six keys per input」 becomes true. manifestFromConfigs forwards seven: name, type, of, required, enum, binding, description (of since objectui#8067), and the published guide already says seven. Each paragraph's conclusion is kept: an authored inputType / constraint / label key cannot reach the published manifest. Then each whole paragraph is re-read so it still parses. ⇒ Fixes #10298.

    domain:ui seat #1 · session_01BA3nKVUwKQJf8DBxrSVtNC · claim · 2026-09-24T17:29Z

  4. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 10298,
    "status": "done",
    "branch": "claude/issue-10298-manifest-seven-keys-prose",
    "pr": "#10318",
    "session": "session_01BA3nKVUwKQJf8DBxrSVtNC — this run's harness-stamped id (subagent = parent's)",
    "premise_still_valid": true,
    "summary": "Draft PR objectui#10318 (head b2df78a) makes the three pending changeset bodies agree with the code. Each now says manifestFromConfigs forwards exactly seven keys per input and lists name, type, of, required, enum, binding, description; the old text said six and omitted of. The prose change is 5 lines; frontmatter sha256 is identical before and after. The premise held: packages/sdui-parser/src/index.ts on origin/main 8b1f066 maps each input to those seven keys, and the sentences WENT false after they were written. The three bodies landed in 453dbaa (2026-08-31), 1ec291c (2026-09-04) and c6198c2 (2026-09-06T05:07Z), before of arrived in cf1d29e (2026-09-06T17:01Z). That change's own changeset, .changeset/8067-component-input-member-kind.md, is also pending and says 'seven keys per input instead of six', so the next release notes would otherwise say both. I re-read each whole paragraph after the edit: each list has seven entries, matches the count, and still parses. The conclusions still hold, because none of the retired keys is of (inputType; min/max/step/placeholder; label/defaultValue/advanced). The newest Claim (5818957162) names this branch, and the assignee (os-bill) was left untouched. Commit trailers are the model-free pair the dispatch requires, so the harness reminder's model-named Co-Authored-By was not used.",
    "tests": "All gates ran locally at HEAD b2df78a. Each exit code was captured before any pipe. (1) node scripts/check-changeset-presence.mjs: exit 0, 'No source or published contract of a released package changed in this range, so no changeset is owed.' (3 files changed, 0 published source, 0 changesets added). So no new changeset is needed. (2) pnpm check:changeset-claims: exit 0, 'No pending changeset names a file this change touches.' The self-contradiction reading saw 3 modified changesets, all 3 declaring a package, and passed ('Every package declared ... is either not negated'). The born-false reading found 0 line addresses. No paragraph was flagged, so there was nothing further to re-read. (3) node scripts/check-changeset-overwrite.mjs (report-only): exit 0, '0 changeset(s) added, 3 modified, 0 deleted'. For each file 'declared at base' equals 'declares now', so no declaration was lost. (4) pnpm check:pending-changeset-literals: exit 0, 'No test source names a pending changeset.' (5) pnpm changeset:check: exit 0, fixed group OK and 'No changeset declares a major bump.' (6) pnpm check:control-bytes: exit 0, 'check-control-bytes: OK (scanned 8301 tracked text file(s); skipped 85 binary)'. A self-scan of the 3 files for control characters with grep -P found no match. (7) pnpm check:new-line-citations: exit 0, 'VERDICT new-cross-file-line-citations: 0 new citation(s)'. (8) node scripts/check-governed-queue-guard.mjs --test on the 3 paths: exit 0, 'NOT GOVERNED'. (9) node scripts/markdown-test-inputs.mjs --changed - printed all 3 paths. .changeset/** is a test input through scripts/tests/check-changeset-no-major.test.ts (per --list), so the CI test shards will run. I ran that file under os-verify-lock with pnpm exec vitest run --maxWorkers=2: 'Test Files 1 passed (1) / Tests 7 passed (7)', 'VERDICT command-exit 0'. (10) Frontmatter sha256 of all 3 files was identical before and after the edit (diff exit 0). Not owed and not run: type-check, package tests and builds, because the diff touches no package (dispatch: prose-only). Not applicable: reverse-verification and ablation, since there is no code or test. dispatch-gates.mjs refused for this repo (exit 2, 'REFUSING - asked for objectstack-ai/objectui, but this checkout is objectstack-ai/objectstack'), so I hand-derived the gate list from objectui's package.json and .github/workflows/. CI at the time of reporting, from one read of the check-runs on b2df78a: 21 success, 3 skipped, 16 in_progress, including 'Changeset Declaration' and 'Spec Main Shape Gate'. Not waited on; PM owns convergence. If Spec Main Shape Gate goes red, it is the known drift from objectstack main's doc nav item type (objectui#10287), with a repair in flight as objectui#10315.",
    "mcp_calls": "0 — no MCP tool calls; all reads used REST GET through the session proxy",
    "api_writes": "2 — (1) POST /repos/objectstack-ai/objectui/pulls (draft; relay op pr_create; fleet-write run 36036151055, conclusion success; created #10318 as objectstack-fleet[bot]); (2) POST /repos//issues/10298/comments (this os-dev-report, via post-stamped.mjs --repo=objectstack-ai/objectui through the relay). Each was carried by one repository_dispatch to objectstack-ai/objectstack. Also 2 git pushes to the branch: the empty-branch probe, then b2df78a. Zero label writes and zero PR body edits.",
    "open_questions": [
    {
    "question": "objectui AGENTS.md #9 says a verified claim should point at the instrument that re-derives it, not write down its answer. The corrected sentences still say 'exactly seven keys', because the card and dispatch limited the edit to the count and the list. The instrument exists: the test 'reads the serializer source and finds the seven, and none of the three' in packages/types/src/tests/component-input-retired-keys-7493.test.ts. Keep the number?",
    "options": [
    "A — keep the count and list as landed: a changeset is dated by its release heading, and the sibling pending changeset 8067 also states 'seven keys per input'.",
    "B — before release, swap the count for the uncounted wording packages/types/src/base.ts already uses ('a fixed key list per input, of included since objectui#8067'), in all three bodies. This needs a seat-written follow-up, since the PR body is write-once."
    ],
    "recommendation": "A, because the edit stays at the scope the card and dispatch fixed. The published guide and the pending 8067 changeset use the same count, and the release deadline (objectui#5400) favours landing the true sentence now over reopening its wording."
    }
    ],
    "out_of_scope_findings": [
    "carrier: 承接者:无 · noted in PR Acceptance notes, not filed — skills/objectui/guides/plugin-development.md, os:check example under 'ComponentInput types': 'the manifest serializer forwards only name, type, required, enum, binding and description' (omits of). This is a PUBLISHED doc face and a governed surface (skills-catalog, Tier H), so per the dispatch I listed it and did not edit it. Not a filing class under my rules: an omitted member is the rule's explicit non-(a) example. The seat may grade it differently; if so, dedupe words: serializer forwards only name type required enum binding description · skills plugin-development six keys · manifest forwards of skills guide",
    "carrier: 承接者:无 · noted, not filed — packages/types/src/widget.ts, WidgetInput divergence docblock clause 2: 'sdui-parser's serializer forwards six keys (name, type, required, enum, binding, description)'. This is source in a released package, so editing it would owe a changeset. The comment drifted and lists one member too few.",
    "carrier: 承接者:无 · noted, not filed — packages/plugin-markdown/src/index.test.ts, test 'no longer authors inputType': 'The manifest serializer forwards six keys'. Test comment only.",
    "carrier: 承接者:无 · noted, not filed — packages/types/src/tests/component-input-retired-constraint-keys.test.ts header 'What was measured': 'forwards exactly six keys per input'. Test comment only. Repair precedent: base.ts and component-input-retired-keys-7493.test.ts already use the 'fixed key list, of included since objectui#8067' wording.",
    "Sweep result (dispatch Zone 2 item 2): I enumerated all pending .changeset/*.md with git ls-tree at 8b1f066 and read them from the same commit. Only the three edited bodies and 8067-component-input-member-kind.md (already 'seven') state what the serializer forwards per input. content/docs/** already says seven. Released CHANGELOGs have zero hits for the six-key sentence; a control search for ComponentInput over the same files matched several of them."
    ]
    }


    Generated by Claude Code

  5. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    ✅ ACCEPT — PR objectui#10318 at b2df78a3 · landing waits on objectui#10315

    domain:ui seat #1, session_01BA3nKVUwKQJf8DBxrSVtNC. I read the report in full, and the seat read the diff itself: 5 lines of prose, with frontmatter unchanged in all three files. I checked every changed sentence against the code at origin/main 8b1f0661, where manifestFromConfigs in packages/sdui-parser/src/index.ts maps each input to name, type, of, required, enum, binding, description: seven keys, in that order. Clause-②: no holds, because nothing is accepted or exported differently.

    Implemented-by:  claude/issue-10298-manifest-seven-keys-prose
    Reviewed-by:     session_01BA3nKVUwKQJf8DBxrSVtNC
    
    item reading
    shape draft · base main · Fixes #10298 · Clause-②: no at line start
    the fix All three bodies now say 「forwards exactly seven keys per input」 and list the seven, with of added. Each paragraph's conclusion still holds, because none of the retired keys (inputType; min/max/step/placeholder; label/defaultValue/advanced) is of
    history The bodies were true when written. They went false when of arrived in cf1d29e2fc (objectui#8067), and that PR's own pending changeset already says 「seven keys per input」
    gates check-changeset-presence (none owed: no published source), check:changeset-claims, check-changeset-overwrite (declared at base = declares now, ×3), check:pending-changeset-literals, changeset:check, check:control-bytes, check:new-line-citations: all exit 0
    CI 28 success / 3 skipped at read time, and the test shards are running. Landing waits on objectui#10315 (the objectui#10287 gate fix)

    The dev's question: keep the count, or switch to uncounted wording?

    A: keep the count. A changeset is dated by its release heading. The sibling 8067 entry and the published guide use the same count, and the release deadline favours landing the true sentence now. This is a wording choice with no contract effect, so the seat answers it without escalating.

    Out of scope

    • To be filed, one card: the same six-key residue survives in four places:

      • the governed skills/objectui/guides/plugin-development.md (Tier H);
      • packages/types/src/widget.ts (WidgetInput divergence docblock);
      • packages/plugin-markdown/src/index.test.ts;
      • packages/types/src/__tests__/component-input-retired-constraint-keys.test.ts.

      The repair precedent is the uncounted wording in base.ts. The seat files this as its own card.

    • Sweep: the dev read every pending changeset at 8b1f0661. Only these three and 8067 state what the serializer forwards, content/docs/** already says seven, and released CHANGELOGs have zero hits.

    domain:ui seat #1 · review · 2026-09-24T17:47Z

  6. added a commit that references this issue on Sep 28, 2026
    c7ab348
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

    bugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p1

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions