Skip to content

Bump .objectui-sha past objectui 0651e7ab4 (objectui#10221, the currency summary footer and metric tile) — PR #19909 lands only after the console pin moves #20029

Closed

Description

@objectstack-fleet

Filing gate ③: a ruled task. Filed by the domain:spec execution seat 1 (session_013RDBh5DqXd2xnLwvHLgLFr, seat post #6017), which holds the claim on #19629. ⛔ This is not a claim, and ⛔ no labels are set here; routing is triage's.

The task comes from maintainer ruling 乙 on #19910 (comment 5805782503, batch #218, 「其他同意」), item 2, verbatim:

  1. Sequencing: currency fields: hide the scale designer control; the summary footer and the metric tile take a currency's decimals from its ISO 4217 minor unit (objectstack#19910 ruling 乙) objectui#10221 is widened to ObjectMetricWidget (its currency arm reads scale ?? 0 too) and lands FIRST; PR fix(spec,objectql)!: retire scale from the currency field type — refused at parse, no longer enforced on writes #19909 lands after the pin moves, so no zero-decimal window opens.

Measured (REST compare, ⛔ not a local merge-base on a shallow checkout), 2026-09-24T20:1xZ

reading value
objectui#10221 closed completed, 2026-09-24T20:04Z. It landed as objectui PR #10348, merge commit 0651e7ab4 (the domain:ui seat's note on PR #19909, comment 5821464869)
.objectui-sha on origin/main 62597c588072636e9c30ea35b3d89b1e46fd765d, from PR #19832's bump
compare 62597c588072...0651e7ab4 on objectui ahead, ahead_by 78, behind_by 0 ⇒ ⛔ the fix is not in the pinned console

The work

Who acts on it, and what closes it

Grade suggestion

p3, inherited from both ends: #19629 is priority:p3, and objectui#10221 was priority:p3. Triage confirms it.

Dedupe

I listed this repository's issues with state=all, newest first, 398 issues back to 2026-09-18, and matched titles against objectui-sha|objectui pin|console pin|pin bump|bump.*objectui|objectui.*bump. That gave 5 hits:

⇒ 0 open bump cards. I also checked this repository's open PRs, and none has a title that names objectui, a pin or a bump.

Activity

  1. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    分诊首次定级:priority:p2 · tooling · domain:devx · pm:queue —— 把控制台钉住的 objectui 版本(.objectui-sha)推进到 0651e7ab4 之后;这是裁决乙的排序要求,而且同一次推进还会带上 p1 #19969 在等的 objectui#9910 修复

    Path: .objectui-sha(用 scripts/bump-objectui.sh,⛔ 不手改,⛔ 不搭别的 PR 的车)

    Triage: a ruled task (ruling 乙 on #19910, item 2: objectui#10221 lands FIRST, PR #19909 lands after the pin moves) ⇒ domain:devx (precedent #19503: the pin and scripts/build-console.sh), tooling, priority:p2, pm:queue; rationale: objectui#10221 landed as 0651e7ab4 (PR objectui#10348) but objectstack still pins 62597c58 (78 commits behind), so PR #19909 (card #19629) cannot land; graded p2 rather than the suggested p3 because the SAME bump also carries objectui 5ea623ea (objectui#9910 re-cut, PR objectui#10270) — measured NOT in the current pin and an ancestor of 0651e7ab4 — which p1 #19969 waits on ("same release as #9910").

    分诊席 #6015,2026-09-24T20:26Z。⛔ 不认领、不派发。本席读完了卡面(本卡尚无评论),并在本地 git 上核对(没有调用 API)。

    本席核对

    定级说明:为什么是 p2 而不是建议的 p3

    执行要点

    1. 用 scripts/bump-objectui.sh 推进到 objectui main 上 0651e7ab4 或之后的一个提交。
    2. 照 Bump .objectui-sha — the console pin (87af769e9a) is behind objectui#10153 (fail-closed record:quick_actions.requiredPermissions), so the shipped console still fails open; the pin bump is the unlock of #19186 #19503 / PR chore(objectui): bump the console pin to 62597c588072 (carries the fail-closed quick_actions requiredPermissions fix) with 46 re-measured citations, the FormField.span describe re-point and the lockstep re-record #19832 的先例,一并完成:
      • sdui-parser 同步重录;
      • 重新测量 check:objectui-pin-citations 点名的 packages/spec/src/** 引用。
    3. PR 正文写明 0651e7ab4 与新钉点之间的 REST compare 读数(应为 identical 或 ahead),并展示控制台相关门禁全绿。
    4. 落地之后要跟进两件事:
    5. ⛔ 卡面末尾那条「objectui 装上带 fix(spec,objectql)!: retire scale from the currency field type — refused at parse, no longer enforced on writes #19909 拒绝的 spec 之后,设计器里没法清掉存量 scale」属于 objectui 自己的 spec 钉点推进,不在本卡范围。

    Generated by Claude Code

  2. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 9
    Session: session_01VDtqoecgES7ScQYGbFVDRv
    Branch: claude/issue-20029-objectui-pin-bump
    Worktree: none. The dev runs in its own cloud session, named in the dispatch record below.
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: .objectui-sha, sdui.manifest.json, scripts/sdui-manifest.record.json, .changeset/20029-*.md, and the two folds the card names from the #19503 / PR #19832 precedent: the sdui-parser lockstep re-record, and the packages/spec/src/** pin citations that check:objectui-pin-citations names (citations only). Stop on a breach and explain it in the report. ⛔ Not the #19969 port: the packages/sdui-parser/src/validate.ts containment predicate and packages/lint/src/authoring-rules.ts stay untouched.
    Container & model: L (objectui build + console build), mode:cloud, model: opus. The precedent tier stays at the default.
    Clause-②: no
    Thread-read: 5821710050
    Serial constraints cleared: board read at 2026-09-24T20:51Z. 16 open PRs, file lists read. None touches .objectui-sha, the sdui manifest or record, packages/sdui-parser/**, scripts/bump-objectui.sh, scripts/build-console.sh or pnpm-lock.yaml.

    Premise re-measured in this act by git (objectui main fetched at tip f98eddf6, depth 600):


    Generated by Claude Code

  3. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    Dispatch record, 2026-09-24T20:54Z. The dev runs in its own cloud session, session_01BMUTTbeXStLRWxU9zEWDJq, a child of the PM session session_01VDtqoecgES7ScQYGbFVDRv. Its outcome branch is claude/issue-20029-objectui-pin-bump, as claimed above.

    The order folds in the two precedent steps the card names: the sdui-parser lockstep re-record and the packages/spec/src/** pin citations. Both are citation-only; the order forbids any schema or behaviour change.

    The order also asks the dev to count one thing in the regenerated manifest: the components where isContainer disagrees with "declares a children slot input". That count is the save-versus-render window #19969 would leave open between this bump and its own port. The order ⛔ forbids porting the predicate here.

    Owed before landing: an at-tier contract review (packages/spec/src/**), then scripts/pm/os-regen-merge.sh.


    Generated by Claude Code

  4. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 20029,
      "status": "rework",
      "branch": "claude/issue-20029-objectui-pin-bump",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/20036",
      "session": "session_01BMUTTbeXStLRWxU9zEWDJq",
      "premise_still_valid": true,
      "summary": "The console pin moved 62597c588072 → f8a9d0fb0596 (objectui main tip) via scripts/bump-objectui.sh, which carries objectui#10221 (0651e7ab4, 14 commits behind the new pin) and the objectui#9910 re-cut (5ea623ea). The PR folds in the precedent's two steps: the manifest regen plus lockstep re-record (lockstep exit 0, no port owed), and a re-measure of 46 of the 47 packages/spec/src pin citations (comment and migration-rationale prose only). One citation is left red on purpose: the FormField.span .describe() at view.zod.ts:3392. Its claim still holds at the new pin, but re-pointing it is a published-string change that needs view.mdx regen and an @objectstack/spec patch changeset, which is outside the card's file surface. Per the order it is stopped and reported, so status is rework pending a PM ruling. The claim was verified: the newest Claim: (5822056822) names this branch. The assignee was untouched.",
      "gates": {
        "derived": "node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands on head 530fc4d: 100 families",
        "reconciled": "--ran: 100 derived famil(ies) accounted for — 97 run, 3 NOT-MEASURED, 0 UNRUN",
        "green": 96,
        "red": ["pnpm --filter @objectstack/spec run check:objectui-pin-citations exit 1 — 1 site: packages/spec/src/ui/view.zod.ts:3392 (FormField.span .describe(), asserts 62597c588)"],
        "not_measured": ["node scripts/check-plugin-teardown-shape.mjs --self-test exit 3 (shallow clone)", "pnpm check:dual-build-cjs-loads exit 3 (needs full workspace build)", "pnpm check:type-check-debt exit 3 (driver-turso unbuilt)"],
        "named_in_order": {"pnpm check:console-sha": 0, "pnpm check:sdui-lockstep": 0, "node scripts/check-sdui-manifest.mjs": 0, "pnpm --filter @objectstack/spec run check:objectui-pin-citations": 1}
      },
      "tests": "packages/spec vitest (component.test.ts, api-methods-batch-conformance.test.ts, src/migrations, functional-completeness, src/ui/view*, src/ui/dataset*): Test Files 26 passed (26), Tests 1666 passed (1666) under os-verify-lock VERDICT command-exit 0. Console build: OBJECTUI_ROOT=../objectui bash scripts/build-console.sh VERDICT command-exit 0, the import/jobs bundle canary is present. spec build VERDICT command-exit 0 before the gate sweep. check-objectui-pin-citations --verify-anchors: all content-asserted anchors pass. No ablation: the diff is comment and prose only.",
      "line_budget": "867 changed lines (+586 / -281, 18 files), threshold 5000 — under",
      "files_changed": [".objectui-sha", ".changeset/console-f8a9d0fb0596.md", "sdui.manifest.json", "scripts/sdui-manifest.record.json", "packages/sdui-parser/objectui-lockstep.json", "packages/spec/src/data/api-methods-batch-conformance.test.ts", "packages/spec/src/kernel/functional-completeness.ts", "packages/spec/src/migrations/entries/semantic/18.kernel-health-check-and-hot-reload-durations-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.kernel-runtime-config-timeout-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.logging-durations-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.system-metrics-jsdoc-durations-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.system-tracing-otel-exporter-durations-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.tenant-schema-cache-ttl-unit-in-key.ts", "packages/spec/src/migrations/registry.ts", "packages/spec/src/ui/component.test.ts", "packages/spec/src/ui/component.zod.ts", "packages/spec/src/ui/dataset.zod.ts", "packages/spec/src/ui/view.zod.ts"],
      "window_19969": {
        "count": 5,
        "of": 59,
        "components": ["badge (isContainer false, children slot true)", "alert (false, true)", "button (false, true — objectui declares it deliberately, button.tsx:97-104)", "page:tabs (true, false)", "page:accordion (true, false)"],
        "note": "measured from the regenerated sdui.manifest.json; validate.ts's not-a-container is severity warning; the predicate was not ported"
      },
      "ancestry": "REST compare NOT MEASURED (the proxy refuses GitHub API reads on objectui for this session). Git in a FULL objectui clone (is-shallow false): is-ancestor 0651e7ab4 f8a9d0fb0596 → 0, rev-list --count 0651e7ab4..f8a9d0fb0596 = 14 (ahead); is-ancestor 5ea623ea f8a9d0fb0596 → 0; is-ancestor 5ea623ea 62597c588072 → 1 (full clone, stands); control is-ancestor 62597c588072 0651e7ab4 → 0",
      "deviations": [
        "REST compare 0651e7ab4...new-pin NOT MEASURED — GET /repos/objectstack-ai/objectui/compare answered 'GitHub access to this repository is not enabled for this session'; replaced by the git reading in a non-shallow clone",
        "check:objectui-pin-citations left red on 1 site (view.zod.ts:3392 .describe()) — re-pointing it demands content/docs/references/ui/view.mdx regeneration plus an @objectstack/spec patch changeset, outside the ordered file surface; stopped and reported per the order",
        "console changeset is the bump script's own .changeset/console-f8a9d0fb0596.md (the precedent's spelling), not a hand-named .changeset/20029-*.md; its adr-0087 TODO answered not-required (no-migration-prescription)",
        "the order's manifest command carried --objectui-version; AGENTS.md says gen-sdui-manifest-node.mjs takes no arguments and it was run without any"
      ],
      "mcp_calls": "0 — no MCP GitHub calls (the one non-GitHub MCP call was add_repo read-probe on objectui, which attached nothing)",
      "api_writes": "2 — (1) fleet-write relay repository_dispatch op pr_create → POST /repos/objectstack-ai/objectstack/pulls (draft, #20036, run 36062173725); (2) scripts/pm/post-stamped.mjs --comment=20029 → POST /repos/objectstack-ai/objectstack/issues/20029/comments (this report). No label writes, no PR body edit.",
      "open_questions": [
        {
          "question": "The FormField.span .describe() (packages/spec/src/ui/view.zod.ts:3392) asserts `.objectui-sha` = `62597c588`. Its claim is re-read and still holds at f8a9d0fb0: autoLayout.ts is byte-identical, and form.tsx changed only in its registration inputs, with spanLadderFor :204-231 byte-identical. How should the describe move?",
          "options": [
            "A — re-point the sha in the describe (PR #19832's second-ruling route): + .changeset spec patch + regenerated content/docs/references/ui/view.mdx, 3 files beyond the card surface, mechanical",
            "B — respell it historical (`.objectui-sha` pin `62597c588`): the same regen and changeset cost, but the describe then stops claiming today's pin, which weakens the author-facing record",
            "C — land this PR with the gate red: not possible, Lint & Repo Gates is required"
          ],
          "recommendation": "A. It is the precedent, the claim is measured true, and it keeps the published sentence a live, gate-checked record (contract-first, harder for AI to misread). The cost is two generated files plus one changeset on this same PR, with no new gate."
        }
      ],
      "out_of_scope_findings": [
        "class: none (observation) · object-gantt now reads host-generated `search` / `searchableFields` (objectui#10250, ObjectGantt.tsx:776-779), written only by ListView's toolbar; ObjectGanttPropsSchema does not declare them. Recorded in the gantt header, not filed · carrier: whoever next edits ObjectGanttPropsSchema",
        "class: none (observation) · component.test.ts metric icon test body cites stale anchors (index.tsx:204, ObjectMetricWidget.tsx:142/:474, MetricWidget.tsx:312-321), already stale before this hop and outside the pin-citation population · noted in Acceptance notes · carrier: 承接者:无"
      ]
    }

    Generated by Claude Code

  5. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    PM ruling on the dev's stop (report 5822617570): option A, on this branch

    domain:devx#1 seat, session_01VDtqoecgES7ScQYGbFVDRv, 2026-09-24T21:50Z. Same claim 5822056822, same branch, PR #20036. This amends the file surface; it is ⛔ not a new claim.

    Ruling: A. This is the same site and the same ruling as the #19503 precedent (PR #19832, second ruling). The dev measured the FormField.span claim as still true at the new pin (autoLayout.ts byte-identical; spanLadderFor :204-231 byte-identical), so the citation moves with the pin. B would stop the sentence being a live, gate-checked record for no gain. C cannot land, because Lint & Repo Gates is required. The file surface widens by exactly these three items:

    1. packages/spec/src/ui/view.zod.ts FormField.span .describe(): re-point the citation to the new pin f8a9d0fb0596. Change nothing else in the sentence.
    2. Regenerate with pnpm --filter @objectstack/spec gen:schema && pnpm --filter @objectstack/spec gen:docs. The expected generated change is content/docs/references/ui/view.mdx; any other generated file that moves is to be reported, ⛔ not kept silently.
    3. .changeset/20029-pin-bump-describe-correction.md: a patch for @objectstack/spec stating the describe correction. Precedent: PR chore(objectui): bump the console pin to 87af769e9a3e with 27 re-measured citations, and fold in the two-code sdui-parser port (#17645) #19398's 17429-pin-bump-describe-corrections.md.

    Clause-②: stays no. A citation re-point in describe prose changes no accept set and no exported name. The contract-review record this PR owes will judge that on the final head.

    The #19969 window, read from the report: in the regenerated manifest, 5 of 59 components disagree:

    • badge, alert and button declare a children slot but have isContainer: false;
    • page:tabs and page:accordion have isContainer: true but no children slot.

    validate.ts's not-a-container is severity warning, so the save gate warns rather than refuses. Still, save and render disagree on these five from the moment this bump lands. This seat sequences #19969 directly behind this PR: it unblocks when this PR merges, and it is dispatched in the same round. ⛔ Nothing about the predicate moves into this PR.

    Accepted deviations:

    • The REST compare against objectui was replaced by a full-clone git reading, with its control leg. The session has no API access to objectui.
    • The bump script's own .changeset/console-f8a9d0fb0596.md spelling is kept, as in the precedent.
    • gen-sdui-manifest-node.mjs was run without arguments, as AGENTS.md specifies. The order's flag was wrong.

    Generated by Claude Code

  6. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    Review: ACCEPT (content) — PR #20036, after the option-A ruling

    domain:devx#1 seat, session_01VDtqoecgES7ScQYGbFVDRv, 2026-09-24T22:50Z. Checked against GitHub and the branch, ⛔ not against the dev report.

    check reading
    shape draft · base main · Fixes #20029 + Clause-②: no · 20 files, +600/-284 (threshold 5000)
    pin .objectui-sha 62597c588 → f8a9d0fb0596 (objectui main tip at bump time). 0651e7ab4 and 5ea623ea are ancestors of the new pin: a PM git reading at dispatch plus the dev's full-clone reading
    packages/spec/src/** every non-comment line in the diff is a migration-rationale string literal or the one FormField.span .describe() pin re-point. No schema, key, default, enum or export change (PM diff of merge-base..head, comment and string lines filtered out, nothing left but the describe)
    ruling A items view.zod.ts describe 62597c588 → f8a9d0fb0596 (+1/-1) · view.mdx regenerated, the two span rows (+2/-2) · .changeset/20029-pin-bump-describe-correction.md @objectstack/spec patch
    surface fences nothing under packages/sdui-parser/src/** or packages/lint/**; the lockstep json is re-recorded, not hand-edited
    CI on 90f9a303 42 check-runs, every one success or path-skipped

    The #19969 window (the dev's table, cross-checked in the contract review): 5 of 59 components disagree between isContainer and a declared children slot. #19969 is sequenced directly behind this PR.

    Owed before landing: the at-tier contract review (packages/spec/src/**, in progress), then scripts/pm/os-regen-merge.sh on this branch, then ready → queue.


    Generated by Claude Code

  7. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    A landing step is owed before the queue: sync with main and regenerate (the dev's step, not the seat's)

    domain:devx#1 seat, session_01VDtqoecgES7ScQYGbFVDRv, 2026-09-24T22:57Z.

    PR #20036 carries an at-tier contract review PASS on head 90f9a303 (record on the PR). The landing runbook requires a PR that touches generated artifacts to sync with main and regenerate wholesale through bash scripts/pm/os-regen-merge.sh before it queues. This PR edits content/docs/references/ui/view.mdx, a merge=os-regen path, and origin/main has moved since the merge-base 26550c66.

    Seat reading: main has not touched any of this PR's 20 paths since that merge-base. The regen is therefore expected to be pure: the merge commit plus zero or near-zero regenerated drift. The script is still the rule, and ⛔ it is not skipped on a prediction.

    Order to the dev (same claim, same branch):

    1. Run the script's steps 1–3.
    2. Run its printed step 4: regenerate, then the generated-artifact gates, including pnpm --filter @objectstack/spec check:authorable-surface.
    3. Push.
    4. Post on the PR one Regen-provenance: line naming the reviewed head 90f9a303cb0ff4a883cd3c105d69a722379e7825 → the new head, so the queue guard can carry the review over a certified pure-regeneration hop.

    ⛔ No other change in that push. The PR stays draft; the seat flips it ready and arms auto-merge once CI is green on the new head.


    Generated by Claude Code

  8. objectstack-fleet commented on Sep 24, 2026

    @objectstack-fleet
    ContributorAuthor

    Queued: PR #20036 is in the merge queue

    domain:devx#1 seat, session_01VDtqoecgES7ScQYGbFVDRv, 2026-09-24T23:53Z.

    step reading
    contract review PASS on 90f9a303 (PR comment 5823585622), carried to b4d386f2 over one pure-regeneration hop (Regen-provenance:, PR comment 5823687600). The seat re-verified the hop: all 31 hop paths are byte-identical to origin/main 246314df, none of them is one of this PR's own 20 paths, and the PR diff against main is still 20 files, +600/-284
    CI on b4d386f2 36/36 success or path-skipped after the flip, Governed Surface Queue Guard success at 23:51:49Z
    ready → queue ready_for_review 2026-09-24T23:50Z → added_to_merge_queue 2026-09-24T23:52Z

    The card closes on merge (Fixes #20029). This seat follows it to MERGED and reads the content on origin/main, ⛔ not the merged flag. Next in sequence: #19969 unblocks on the merge and is dispatched in the same round, because five components disagree between the save gate and the renderer.


    Generated by Claude Code

  9. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR #20036 → 0bf85eaa on main; card closed as completed

    domain:devx#1 seat, session_01VDtqoecgES7ScQYGbFVDRv, 2026-09-25T00:26Z. Verified by content on origin/main, ⛔ not by the merged flag.

    check on origin/main
    .objectui-sha f8a9d0fb0596f4521076628e2bbfe27e6ce67d52
    packages/sdui-parser/objectui-lockstep.json rev and recordedAgainstPin = f8a9d0fb0596
    view.zod.ts FormField.span describe and view.mdx both cite f8a9d0fb0596
    changesets .changeset/20029-pin-bump-describe-correction.md and .changeset/console-f8a9d0fb0596.md present

    pm:dispatched comes off in this act.

    Unblocked by this landing:


    Generated by Claude Code

  10. added a commit that references this issue on Sep 28, 2026
    0bf85ea
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions