Skip to content

chore(objectui): bump the console pin past objectui c096f03 — it carries objectui#11611, #11614 and #11619, which unlock #21714, #21765 and #21768 #21772

Description

@objectstack-fleet

Filed by the triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U: the foreseen follow-up of three blocked cards whose unlock is the install face. ⛔ Not a claim, ⛔ not a dispatch.

Why

Three objectstack cards wait on .objectui-sha, not on objectui merging (the cross-repo unlock reads the install face):

card waits for objectui merge on objectui main
#21714 (reportForm joined-block dataset row) PR #11611, the ref:dataset widget b508ac50d9
#21768 (runtime form field, the grid's camelCase keys) PR #11614, the eight-key rename 2abec3a9
#21765 (object.imageField → live) PR #11619, the record chip's image c096f03

.objectui-sha is 2e818d0b51ec (read in this round). objectui main is c096f032793d, 14 commits ahead, and carries all three.

Change

Order against the release

Release first. objectstack 17.7.0's version PR (#21352) is ready and waits on the maintainer. A pin bump merged before that release would force another version-PR refresh. So this lands after 17.7.0 is published, unless the maintainer wants these three in 17.7.

tooling · priority:p2 (it unblocks three cards) · domain:devx (the pin lane, as #21696) · area:devpath.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 5, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: director takeover round 1 (the maintainer's order: the release no longer holds this card)
    Session: session_016tKoy8NJa35Yih1FdzrVmn
    Account: hotlong (the session's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-21772-objectui-pin-bump, cut from main
    Worktree: objectstack-issue-21772
    Domain: domain:devx
    Seat: the director seat, summon #32.

  2. objectstack-fleet commented on Oct 5, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 21772,
      "status": "done",
      "branch": "claude/issue-21772-objectui-pin-bump",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/21800",
      "session": "session_016tKoy8NJa35Yih1FdzrVmn — the dispatching director seat's id (subagent run; the container's CLAUDE_CODE_REMOTE_SESSION_ID resolves to the same id, and the relay envelope carried it)",
      "premise_still_valid": true,
      "head_sha": "4b9519ea23d31a3b7eb688f32bb52a895f8f7533",
      "new_pin": "9dfaca654311cddd81714153c4f82c241d7cdc54",
      "summary": "Moved .objectui-sha from 2e818d0b51ec to objectui main 9dfaca654311cddd81714153c4f82c241d7cdc54 (ls-remote read 2026-10-05T00:51:29Z and again before pr_create) through scripts/bump-objectui.sh --no-commit; merge-base --is-ancestor exits 0 for b508ac50d9 (#11611), 2abec3a96c (#11614) and c096f03279 (#11619). The range is 17 commits, 24 releasing changesets, 4 BREAKING-annotated plus one more `!` subject (objectui#8347); the console changeset carries a written ADR-0087 not-required (no-migration-prescription) disposition answering all five, including the honest #11614 interim (the spec refuses snake_case by name and camelCase as undeclared until #21768). Fallout fixed with the repo's own tooling: SDUI manifest regenerated (107 components; 11 inputs lose required:true per objectui#11605/#11613/#11569, now agreeing with the spec rows), lockstep re-recorded (unchanged parity), all 54 asserting pin citations re-measured through git diff -U0 and re-read (3 quoted anchors re-pointed), six migration corpus counts re-taken (method reproduced every old number), registry and view.mdx regenerated, spec patch changeset added. Browser smoke: Field Zoo record header draws the record picture from imageField at this pin (temporary local imageField edit, restored to HEAD and proven clean).",
      "tests": "All at head 4b9519ea23. dispatch-gates --commands: 127 derived from 22 paths; --ran: '127 derived, 127 run, 0 NOT-MEASURED, 0 UNRUN' (check:skill-examples and check:dual-build-cjs-loads first exited 3 PREREQUISITE NOT MET, then 0 after `turbo run build --filter=!@objectstack/docs`, 71/72 cache hits). check:objectui-pin-citations --verify-anchors: '54 asserting objectui pin citation(s) match .objectui-sha (9dfaca654) … 7 anchor content assertion(s) verified'. check:objectui-bump: '20 assertions across 5 cases'. check-adr-0087-registration --base origin/main: '1 declared-breaking changeset(s), each carrying an ADR-0087 disposition'; check-changeset-no-major: 'no major bump'. spec check:generated: 1 stale (check:docs) → --fix → re-check ✓. Console build (build-console.sh after turbo build --filter=@objectstack/client..., under the verify lock, exit 0, 9m02s shared box): 'Bundle canary import/jobs present', 'Single-zod canary: exactly one zod version literal {major:4,minor:6,patch:5}', 'Console bundle carries THIS tree's @objectstack/spec, and only it'. @objectstack/spec vitest (local+repo): 668 files, 19259 passed, 1 todo; spec typecheck exit 0. sdui-parser: 14 files/225 passed, typecheck 0. Manifest readers: lint 119 files/5627 passed; metadata-protocol protocol.runtime-authoring-gate.test.ts 70 passed; cli --project unit sdui-manifest.test.ts + validate-build-gate-parity.test.ts 79 passed; test/jsx-gate-manifest-notice.e2e.test.ts NOT MEASURED, reason: in neither CLI tier (nightly population), left to CI. eslint --no-inline-config --format json on the 15 changed TS files: 15 files, 0 errors, 0 warnings; population eslint.config.mjs:971, no type-aware linting (:327-328). Browser smoke (showcase, `pnpm dev -- --fresh --ui --no-watch --compile -p 41877`, headless /opt/pw-browsers/chromium): Specimen — Full [data-record-picture]=1, img src /api/v1/storage/files/b1f4e384-…, naturalWidth 64, rounded-md; Specimen — Minimal 0; 0 page errors; only 401 get-session (pre-login) and 404 /favicon.ico; no /usage/storage 404. Screenshots: scratchpad dev-21772/smoke-with-cover.png, smoke-header-closeup.png, smoke-without-cover.png. Temporary edit proof: ablation-replace --restore 'blob == HEAD (4130858b8f8b) and git diff HEAD is empty'; showcase dist restored to sha256 cc1034dd9d23…. No ablation/reverse-verification applies (no behaviour change authored here).",
      "mcp_calls": "0 — no MCP GitHub tool was called",
      "api_writes": "2 REST writes, both through scripts/pm as objectstack-fleet[bot]: (1) relay pr_create — POST /repos/objectstack-ai/objectstack/dispatches (204) executed by fleet-write run 37253086350 as POST /repos/objectstack-ai/objectstack/pulls → #21800 draft, read back 21163/21163 bytes identical; (2) this os-dev-report comment — POST /repos/objectstack-ai/objectstack/issues/21772/comments via post-stamped.mjs. git push (not REST) on the branch only. No label, PR assignee, ready or auto-merge write: the dispatch's budget names none (the os-dev default label-write/PR-assignee step was narrowed to zero by 'no labels').",
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: #21768 · the spec's snake_case grid-key prescription in packages/spec/src/ui/component.zod.ts ('these come in once the widget reads a camelCase spelling') now describes a condition this pin makes true; #21768 retargets it when it declares the camelCase keys · noted in PR Acceptance notes, not filed",
        "carrier: #21765 · no showcase object declares imageField, so the reference app cannot show the record picture without an edit (this smoke used a temporary, reverted imageField on showcase_field_zoo); whoever flips imageField to live may want a declaring example · noted, not filed",
        "carrier: 承接者:无 · anchors in spec records that cite no asserting sha (e.g. ui/component.zod.ts containers.tsx docblock anchors; component.test.ts plugin-dashboard/src/index.tsx:204) sit outside check:objectui-pin-citations' population and were not re-measured; several point into files this bump changed · noted in PR Acceptance notes only"
      ]
    }

    Generated by Claude Code

  3. objectstack-fleet commented on Oct 5, 2026

    @objectstack-fleet
    ContributorAuthor

    Contract review

    Served-tier: CONTRACT_REVIEW_TIER
    Head-sha: 4b9519ea23d31a3b7eb688f32bb52a895f8f7533
    Local-runs: none

    ① Derived judgments

    Method. Everything here was read, not run. The sources are the card, PR #21800, PR #21710 and git blobs: objectstack from merge-base e83c9f615441 to the head (8 commits), and objectui at 2e818d0b51ec and 9dfaca654311. Behaviour was judged two ways: by comparing each changed packages/spec/src file's AST with comments stripped (the TypeScript printer run over the base and head blobs), and by git grep counts. Nothing in the repo was built, run or tested.

    Spec source outside tests: no accept set, key, type, default, optionality, refinement or export moves. No hunk changes behaviour.

    • ui/component.zod.ts (+262/−91), ui/action.zod.ts, ui/dataset.zod.ts and kernel/functional-completeness.ts have the same AST at base and head once comments are stripped.
      • Every hunk re-points a pin in a JSDoc or line comment and adds a dated 2026-10-05 hop sentence.
      • The earlier history is kept.
    • ui/view.zod.ts differs in exactly one AST node: the FormField.span .describe() string, where 2e818d0b51ec becomes 9dfaca654311.
      • The enum, .default('auto') and every other member are untouched.
      • The other hunks are in the map record's docblock: three quoted anchors re-pointed.
    • In the six step-18 entries only the reason string changes. id, surface, replacement and acceptanceCriteria are untouched, and the AST differences are string-literal lines only.

    The .describe() change and view.mdx.

    • The span sha is the only describe change. view.mdx makes the same one-token edit in both span rows (lines 216 and 346), so the docs and the source agree.
    • The sentence is true at 9dfaca654:
      • plugin-form/src/autoLayout.ts, fields/src/field-type-alias.ts and components/src/renderers/form/form.tsx are byte-identical across the range.
      • WIDE_FIELD_TYPES still lists textarea, markdown, html, grid and richtext.
      • repeater still maps to field:grid.
      • spanLadderFor still emits one clamped class per multi-column tier.

    Re-pointed anchors. I spot-read these at both pins. Each moved with its text byte-identical, except the one declared content change, at ObjectKanban.tsx:10.

    • The three in the view.zod.ts map record:
      • ObjectView.tsx:2300 (case 'map':);
      • objectql.zod.ts:2388 (ObjectMapConfigSchema);
      • objectql.zod.ts:1437 (LIST_VIEW_LOCAL_OVERRIDES).
    • containers.tsx lines 948-954, 1007, 1173-1179 and 1222. The file changed +89/−0.
    • ObjectGrid.tsx lines 5461, 1815, 6471-6472 and 6488-6489. The 4813-4840 block still hashes to c88443302d40, and useBulkExecutor.ts is byte-identical.
    • plugin-dashboard/src/index.tsx: the icon input at 299 and the registration start at 262.
    • ObjectKanban.tsx:
      • lines 752, 614-615, 1310, 1318-1319, 1568, 1584, 1669 and 1693 moved with their text unchanged;
      • :10 gains SortConfig. This is the one content change.
    • plugin-kanban/src/index.tsx lines 488-492, and objectql.ts:4754.
    • ObjectGantt.tsx gains 1 line below line 314. ObjectTree.tsx gains 2 lines at 135 and 1 at 264. ObjectCalendar.tsx has only a two-line comment edit at line 97.
    • Re-taken counts match:
      • keyboardNavigation: 15 hit lines at both pins, by the record's own method;
      • ElementDataSourceGate: 0, 3, 3, 3 and 4;
      • quickAdd, onQuickAdd and onCardClick: 2, 2 and 11.
    • At the head, every asserting-form .objectui-sha citation in packages/spec/src names 9dfaca654, and none is left on the old pin. Records worded as "the .objectui-sha pin X" are the gate's historical form, and they stay as dated reads.

    Migration entries and the registry.

    • git grep -o -F at both objectui pins reproduces every number.

      count at 2e818d0b5 at 9dfaca654
      tracked files 7579 7632
      objectstack 17227 17313
      @objectstack/spec 7134 7186
      timeout 1351 1360
      useState 2477 2477
      TTL 182 182
      tenant 1317 1318
      Span 505 508
      SpanSchema 57 57
      RuntimeConfig 276 293
      resourceLimits 2 2
      window 4175 4193
      period 238 238
      interval 195 195
      metrics 374 401
    • Every named zero still reads 0. Of the 37 tracing exports, only Span and SpanSchema are non-zero, as before.

    • The three new Span hits are in types/src/__tests__/object-form-section-field-entry-11615.test.ts.

    • Both resourceLimits hits are still prose in packages/app-shell.

    • Each entry moves its old "this pin" numbers, unaltered, into its dated history.

    • The registry's 44 changed lines match the entries' 44 changed lines word for word and in order, ignoring indentation.

    functional-completeness.ts. This is a ledger and citation update, not a behaviour change: with comments stripped, its AST is unchanged.

    • It re-measures the calendar, gantt, timeline and map docblocks, and its claims hold:
      • the calendar anchors 294, 1296 and 1303-1304 did not move;
      • gantt moved 609 → 610 and 2306 → 2307;
      • the en, zh and de calendar.configRequired strings did not change.

    The manifest, its record and the lockstep file.

    Test edits. With comments stripped, api-methods-batch-conformance.test.ts, action-outcome-messages.test.ts and component.test.ts have the same AST as at base. No expect was removed or loosened, and no skip or todo was added.

    Range and dispositions.

    Check-runs. At 2026-10-05T02:03Z, 22 of the 33 check-runs are success, Console Pin Gate among them. These are not yet success:

    • in progress:
      • Lint & Repo Gates
      • Temporal Conformance (live PG + MySQL)
      • Test Core (1/6) through Test Core (6/6)
      • Type Check · consumer gates
      • Type Check · workspace
    • skipped: Packed-tarball smoke (opt-in)

    This review does not stand in for any of them. The browser smoke and the dev's local gate runs are read as claims and were not re-checked.

    ② Semver level

    ③ Boundary flags

    Implemented-by: claude/issue-21772-objectui-pin-bump
    Reviewed-by: session_016tKoy8NJa35Yih1FdzrVmn

    VERDICT: PASS


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 5, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT — PR #21800 at 4b9519ea23 (Fixes #21772: the Console's objectui pin 2e818d0b51ec → 9dfaca654311)

    Director seat, summon #32 · session session_016tKoy8NJa35Yih1FdzrVmn · holder of claim 5986229732 · 2026-10-05T02:07Z · the review of record for the report 5986773912; contract review PASS 5986881331 (at-tier, isolated, on this head). The review is owed on the path leg, because the diff edits packages/spec/src/** non-test source.

    Checklist (read on GitHub, not from the report):

    • Form: draft, base main, first line Fixes #21772, Clause-②: no.
    • Scope: 22 files, +567 / −193, all on the claimed surface:
      • .objectui-sha;
      • two changesets: @objectstack/console minor with the ADR-0087 not-required disposition, and @objectstack/spec patch;
      • the regenerated SDUI manifest, its record and the lockstep file;
      • pin-citation re-points and re-measured counts in packages/spec, with view.mdx regenerated.
      • Not governed. ⛔ No version, CHANGELOG or release-workflow file, and nothing of PR chore: version packages #21352.
    • Contract review: PASS 5986881331, Served-tier: CONTRACT_REVIEW_TIER, Local-runs: none.

    What lands, as the record judged it:

    Follow-ups:

    Non-blocking prose nits, as the record noted:

    • "names objectui#11610" is in the source comment only.
    • The PR body's list of showcase form types is incomplete.
    • The dated note b403bb36f adds to an earlier changeset is not mentioned.

    Landing: CI on 4b9519ea23 had 7 checks still running at the reading, Console Pin Gate was green, and none was red. The seat flips the PR ready and arms auto-merge, so it enters the queue only once every check is green.


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 5, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR #21800 → 1354e7bcca on main (2026-10-05T03:06Z)

    Director seat, summon #32 · session session_016tKoy8NJa35Yih1FdzrVmn · holder of claim 5986229732.


    Generated by Claude Code

  6. added 3 commits that reference this issue on Oct 7, 2026
    1354e7b
    18c7dfd
    8832655
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, iteratedomain:devxpriority:p2Medium: important, M3tooling

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions