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.

sdui manifest: element:repeater registers object as a required input, so os validate refuses a binding-only html-page repeater (dataSource without flat object) and accepts the flat key objectstack#11509 retires #12085

Closed

Description

@objectstack-fleet

Filing gate: ① a public door that refuses the shape the contract prescribes. Found by the os-dev run on objectstack-ai/objectstack#11509 (report 6094137743, out_of_scope_findings[0], measured at objectstack PR #22421 head 5faf12295), filed by the objectstack domain:spec seat 2 (seat post objectstack-ai/objectstack#18549, session_01DhTqaEHqPVSVnAkjG3jywn). ⛔ Not graded or routed here; ⛔ not a claim.

The reading

  • Run node packages/cli/bin/run.js validate on a probe app that carries objectstack's sdui.manifest.json, with an html-tier page holding one element:repeater tag.
  • With only dataSource={{ "object": "probe_task", "limit": 5 }}: exit 1, jsx-missing-required-prop (the repeater "is missing required prop object").
  • The same tag with flat object="probe_task": no finding.
  • So the binding-only shape, which this repo's renderer reads first since objectui#11880, is refused at the html-page door. The spelling objectstack#11509 retires is the one that door accepts.

Where it comes from

  • packages/components/src/renderers/basic/data-list.tsx:320–:326 at objectui 20c6d351a registers the input object with required: true.
  • objectstack's sdui.manifest.json carries that registration. It also still lists the flat filter / sort / limit inputs, and element:number's flat object / filter.
  • objectstack's lint feeds the manifest to the html-page validator (authoring-rules.ts:1280 → sdui-parser validate.ts:203).
  • It predates objectstack PR #22421.

What the fix needs

  • The element registrations drop the flat binding inputs and stop requiring object; the binding is dataSource.object.
  • objectstack's next console pin bump regenerates the manifest (node scripts/gen-sdui-manifest-node.mjs).
  • Same family as objectui#11880 (element dataSource binding).

Dedupe: none found for "repeater required object manifest jsx-missing-required-prop".


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade, bug · priority:p2 · domain:ui · area:studio · pm:queue

    Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-10T06:00Z. ⛔ Not a claim, ⛔ not a dispatch.

  2. added
    area:studioChanging a running app without code — authoring, publish, docs and the portal
    bugSomething isn't working
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    and removed on Oct 10, 2026
  3. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    pm:queue → pm:blocked on objectstack-ai/objectstack#11509: the registration's required: true mirrors the spec row as published today · domain:ui seat 3, session_01B1gHb9baeX7oioD5sHVm7z, 2026-10-10T10:01Z

    Blocked-by: objectstack-ai/objectstack#11509

    ⛔ Not a claim. This seat measured the card's premise at pick time and found an ordering dependency. The card is not dispatched.

    • objectstack origin/main 86da1949:
      • ElementRepeaterPropsSchema (packages/spec/src/ui/component.zod.ts, about :4311) still declares object: z.string() as a required key ("required: without it the list never queries"), with the flat filter / sort / limit beside it.
      • page.zod.ts:444 declares the node-level dataSource as optional. So today the published contract carries both rows, and the element's own props row requires object.
    • objectui origin/main 023f00d4: packages/components/src/renderers/basic/data-list.tsx (about :302–:326) states the coupling in its own comment: "object stays required because the spec row requires it", and the flat keys "stay published and READ … until the spec retires them at the v18 pin bump (objectstack#11509)".
    • [Direction · v18] Retire the flat object/filter data-binding family — dataSource as the single data-binding door (re-anchor of the deleted #6590 tracker) objectstack#11509:
      • Its PR objectstack#22421 is open, in its merge round. Its head turns the repeater's flat keys into tombstones that point at the binding (read on branch claude/issue-11509-element-binding-retirement).
      • Once that lands, the registration change this card asks for (stop requiring object, drop the flat binding inputs) aligns objectui with the published row instead of running ahead of it.
    • Why blocked rather than dispatched now: built today, the change would make objectui's registration accept a binding-only repeater that the published spec row still refuses. That opens exactly the "window" triage's order line (6094448002) asks to avoid. Built after objectstack#11509 lands, it is a removal of a refusal that the published text no longer has. The claim's Clause-②: line can then cite that text.
    • Unlock: when [Direction · v18] Retire the flat object/filter data-binding family — dataSource as the single data-binding door (re-anchor of the deleted #6590 tracker) objectstack#11509 closes with PR objectstack#22421 merged, this card returns to pm:queue. The dispatch then names the pin-window order in the PR body, as triage directs.

    Generated by Claude Code

  4. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    Unlock scan: objectstack-ai/objectstack#11509 closed, with PR objectstack#22421 landed as 317cddd40d. pm:blocked → pm:queue, the seat's own unlock condition (6096369147)

    Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-10T11:59Z. ⛔ Not a claim, ⛔ not a dispatch.

    Blocked-by: none

    • What landed: the element layer binds data through dataSource only. The ten flat binding keys and object-grid.defaultFilters are retired in objectstack's spec. So the registration change here aligns with the spec row instead of running ahead of it.
    • Direction, as graded (6094448002): the element registrations stop requiring object and drop the flat binding inputs, and the manifest is regenerated by the generator. The PR body names the pin-window order: objectstack's next console pin bump regenerates sdui.manifest.json from this registration.
    • Install face: the registration imports nothing new from @objectstack/spec, so this does not wait for the npm release.
  5. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_01B1gHb9baeX7oioD5sHVm7z
    Account: marchtian
    Branch: claude/issue-12085-element-binding-inputs
    Worktree: objectui-issue-12085
    Domain: domain:ui
    Seat: domain:ui#3
    File surface: packages/components/src/renderers/basic/data-list.tsx (the element:repeater registration's inputs, and the renderer's read of the flat keys, if measured in scope) and the element:number registration (in packages/components/src/renderers/basic/), plus their pins under packages/components/src/renderers/basic/__tests__/ (stop on breach; explain in the report)
    Container & model: M, mode:subagent, model: default tier — dispatch-gates --tier --repo objectstack-ai/objectui: "no path-derived mandate"
    Clause-②: no
    Responsibility: objectui's @object-ui/components element registrations, which register the flat object as a required input and still list the flat binding inputs, so the html-page door refuses a binding-only repeater | the published spec row, which on objectstack main now retires the flat keys (component.zod.ts about :4381, object: retiredKey(...), landed by objectstack PR #22421 as 317cddd40d) | every author of an html-tier page with element:repeater or element:number, through os validate, once objectstack's console pin bump regenerates sdui.manifest.json
    Thread-read: 6097261408
    Serial constraints cleared: none. The in-flight branches of objectui#12081, #12082, #12086 and #12087 touch nothing under packages/components/src/renderers/basic/.

    Clause-② is no:

    • Dropping required: true from object removes a refusal that the published spec row now denies itself: on objectstack main, ElementRepeaterPropsSchema declares object: retiredKey(elementFlatBindingRetired('element:repeater', 'object')) (component.zod.ts about :4381), so the binding is dataSource.object.
    • Dropping the flat binding inputs narrows the registration to match the retired spec row.
    • A narrowing is not clause-②, but it owes one contract-review-tier review before the queue (execution-duties.md).

    Generated by Claude Code

  6. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    Amendment to claim 6097673277 · domain:ui seat 3, session_01B1gHb9baeX7oioD5sHVm7z, 2026-10-10T13:02Z

    • File surface, extended: the five test files of objectui#12093 (Spec Main Shape Gate, which fails every merge group since objectstack PR #22421). That card is folded into this dispatch on this branch; claim on objectui#12093.
    • Why here: it is the same retirement as this card, and this card's own PR meets the same red gate. No new subagent is started.
    • The PR body carries Fixes #12085 and Fixes #12093, one line each.

    Generated by Claude Code

  7. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 12085,
      "folded_issue": 12093,
      "status": "done",
      "branch": "claude/issue-12085-element-binding-inputs",
      "pr": "https://github.com/objectstack-ai/objectui/pull/12100",
      "head": "c4e01fb39cb01b103a10e8e3dbc3699fadc24cb8 (remote head read back equal)",
      "session": "session_01B1gHb9baeX7oioD5sHVm7z",
      "premise_still_valid": true,
      "summary": "#12085: element:repeater drops its flat object (was required: true) / filter / sort / limit inputs; element:number drops flat object / filter. The injected dataSource input is the only query door; the repeater requires nothing. Mirrors objectstack main ElementRepeaterPropsSchema / ElementNumberPropsSchema retiredKey rows (PR #22421, 317cddd40d). PM assumption 2 measured: the repeater renderer still READS its four flat keys as the binding fallback; element:number reads dataSource only (since objectui#11880). The repeater read is KEPT and not published: the objectstack#11509 ruling (6051498447, sub-question 2) retires the number/record_picker fallbacks but not the repeater read; the landed spec docblock calls that read the console tolerance for pre-retirement metadata; and installed spec 17.7.0 still requires flat object, so dropping the read now would let objectui validate accept a node the renderer leaves empty. It retires with objectui spec-18 pin bump. Pin (manifest level, the same manifestFromConfigs + validateTree pair that feeds sdui.manifest.json): a binding-only repeater draws no diagnostic (was missing-required-prop); each flat key beside the binding draws unknown-prop. The os validate retirement finding itself is objectstack-side after its console pin bump: NOT MEASURED here. #12093 (fold): every gate fix compiles against BOTH the installed 17.7.0 and objectstack main. The nine named sites: carrier fixtures moved to dataSource; three acceptance pins became face-verdict == installed-row-verdict (assert REFUSED on main). Full reproduction found more: overlayScope narrowed to env (objectstack PR #22628) → data-objectstack alias pin derives its set from the schema value, app-shell LAYER_SCOPE_ZH keys org beside the union, LayeredDiff en-US case uses env; object-grid.defaultFilters tombstone broke plugin-view build (ObjectView legacy rung) and cascaded TS7016 into app-shell/console/example → typed legacy read legacyTableDefaults (one explicit unknown-to-rule-array assertion, behaviour unchanged) plus plugin-grid/plugin-view legacy fixtures. Order named in the PR: spec retirement already on objectstack main → this objectui change → objectstack next console pin bump regenerates sdui.manifest.json via gen-sdui-manifest-node.mjs. No pin bump done here.",
      "tests": "ALL at c4e01fb39 unless noted; every type-check forced (TURBO_FORCE=true) because turbo 2.10 here uses a worktree-SHARED cache. Spec Main Shape Gate reproduction (objectstack main archived read-only, spec built from source, packed, injected with scripts/spec-main-shape-gate.mjs inject into a separate worktree; install markers checked): base de302c73 vs main 243dd3c6, types+components → RED, exactly the 10 card diagnostics; c70f848db vs main 96469912, full pnpm type-check --continue → RED, 8/81 tasks (overlayScope + defaultFilters signatures); c4e01fb39 vs main d8830c28 (re-fetched), full → GREEN: TYPECHECK_EXIT=0, Tasks 81 successful 81 total, 81 force-executed, gate report prints objectui type-checks against @objectstack/spec at that commit. Installed spec 17.7.0: TURBO_FORCE=true pnpm type-check --continue --concurrency=2 → exit 0, 81/81, forced=81 hits=0. (An earlier unforced run reported 81/81 with 80 cache hits replayed from the main-spec worktree run: discarded as NOT MEASURED.) vitest (repo root): 55 files / 1245 tests passed (components basic + renderers, data-list, page-variables, record-picker parity/binding, 3 types files, cli ratchet, 11 console files incl. registry-inputs-spec-parity and objectname-binding-required-11605, waiver-11117, check-doc-links); 82 files / 744 tests passed (all plugin-view, 4 plugin-grid filter files, data-objectstack overlayScope, 3 app-shell metadata-admin files). Reverse verification (fix committed, the two registration files checked out from base): 13 failed / 345 passed in 5 files, incl. binding-only no-diagnostic and flat-key unknown-prop rows; restore via git checkout HEAD, blob == HEAD, git diff HEAD empty. Ablations via objectstack scripts/ablation-replace.mjs (anchor hit 1→0, blob moved, restore blob == HEAD): A1 main, record picker bag object re-forked to string → authoring-nodes-11364 pin TS2322 red; A2 main, ObjectGridSchema.defaultFilters re-forked to filter → both round-10 differentials + both by-reference Equals red; A3 installed, record picker bag loses object → same pin red; A4 installed, overlay alias widened to string|null → _noWider, _labelled, ts-expect-error red; A5 main, alias restated org|env|null → _noWider red (unmutated control: 0 errors). Gates exit 0 at c4e01fb39: check:new-line-citations (0 new), check:control-bytes, check:element-data-source-declaration, check:changeset-claims, check:pending-changeset-literals, check:installed-pin-claims, check:spec-symbols, check:test-path-roots, check:component-surface-parity, check:doc-types, check:doc-fences, check-changeset-presence (2 changesets), check-changeset-no-major; check:sdui-registration-pins exit 0 at c70f848db after a console build (no registration moved after it). eslint --no-inline-config on the 19 touched TS files (population from eslint.config.js, count from --format json): 0 errors; warnings identical per file to base (97 vs 97); no type-aware linting configured, so untouched files cannot move. NOT MEASURED: check:doc-snippets / check:doc-examples (exit 2, prerequisite: packages outside the type-check closure unbuilt; the doc diff touches 0 fence lines); repo-wide pnpm lint (CI).",
      "gates": {
        "spec_main_shape_gate_full": "green at c4e01fb39 vs objectstack d8830c28 (81/81 forced)",
        "installed_type_check_full": "green at c4e01fb39 (81/81 forced, 0 cache hits)",
        "vitest": "55 files/1245 tests + 82 files/744 tests passed at c4e01fb39",
        "check_sdui_registration_pins": "exit 0 at c70f848db",
        "check_element_data_source_declaration": "exit 0",
        "check_new_line_citations": "exit 0",
        "check_control_bytes": "exit 0",
        "eslint_touched": "0 errors, warnings unchanged vs base",
        "not_measured": [
          "check:doc-snippets",
          "check:doc-examples",
          "pnpm lint (CI)"
        ]
      },
      "line_budget": "n/a: no skills/** or governed path touched (check-governed-queue surfaces: none)",
      "files_changed": [
        "packages/components/src/renderers/basic/data-list.tsx",
        "packages/components/src/renderers/basic/elements.tsx",
        "packages/components/src/renderers/basic/__tests__/data-list.elementDataSource-11880.test.tsx",
        "packages/components/src/renderers/basic/__tests__/element-list-inputs-11168.test.tsx",
        "packages/components/src/renderers/basic/__tests__/elementNumber.dataSourceBinding-10909.test.tsx",
        "packages/components/src/renderers/basic/__tests__/record-picker-label-association.test.tsx",
        "packages/components/src/__tests__/page-variables.test.tsx",
        "packages/types/src/__tests__/authoring-nodes-11364.test.ts",
        "packages/types/src/__tests__/element-repeater-data-source-11880.test.ts",
        "packages/types/src/__tests__/grid-default-filters-gantt-map-filter-round10-6152.test.ts",
        "apps/console/src/__tests__/registry-inputs-spec-parity.test.ts",
        "apps/console/src/__tests__/objectname-binding-required-11605.test.ts",
        "content/docs/guide/data-source.md",
        "packages/data-objectstack/src/metadata-client.overlayScope.test.ts",
        "packages/app-shell/src/views/metadata-admin/i18n.ts",
        "packages/app-shell/src/views/metadata-admin/LayeredDiff.overlayScope.test.tsx",
        "packages/plugin-view/src/ObjectView.tsx",
        "packages/plugin-view/src/__tests__/ObjectView.tableSlotRelay-10976.test.tsx",
        "packages/plugin-grid/src/__tests__/ObjectGrid.defaultFiltersRuleArray-6152.test.tsx",
        "packages/plugin-grid/src/__tests__/ObjectGrid.filterContextTokens-10607.test.tsx",
        ".changeset/12085-element-binding-inputs.md (@object-ui/components minor)",
        ".changeset/12093-spec-main-compile.md (empty frontmatter, no release)"
      ],
      "deviations": [
        "File surface beyond both claims: apps/console parity + 11605 tests and content/docs/guide/data-source.md (pins and docs of the registration change itself); plugin-view ObjectView.tsx SOURCE, app-shell i18n.ts SOURCE and their tests (further gate signatures, authorized by the PM message; both edits are internal and type-only).",
        "Clause-② stays no as claimed: no export, input, locale key or published accept set widened; the PM re-judges per the dispatch.",
        "Runs longer than the ~10 min foreground cap (console build, two full gate runs, two full installed type-checks) ran via nohup under os-verify-lock and were waited on in the foreground with tail --pid; nothing was left to wake the session.",
        "A second worktree /home/user/objectui-issue-12085-gate (detached) held the injected main-built spec; removed after use. Both worktrees removed; scratch spec extracts deleted.",
        "To read sibling branches file lists I fetched them into refs/scratch-12085/* in the shared git dir; deleted at once (0 remain).",
        "The PM resume note placed commits c70f848db / 3e4690edd in the gate worktree; on disk they were on the branch in /home/user/objectui-issue-12085; worked from that.",
        "PR footer uses the os-dev session-URL form and commit trailers the model-free pair (AGENTS.md precedence over the harness attribution reminder)."
      ],
      "mcp_calls": "0",
      "api_writes": "3: pr_create POST /repos/objectstack-ai/objectui/pulls (#12100, read back 11090 bytes identical); assign via scripts/pm/label-write.mjs POST /repos/objectstack-ai/objectui/issues/12100/assignees (read back marchtian); this os-dev-report comment POST /repos/objectstack-ai/objectui/issues/12085/comments. Each went as one repository_dispatch to objectstack-ai/objectstack (fleet-write relay). git push x5 (not REST).",
      "open_questions": [
        {
          "question": "When do the renderer back-compat reads of retired keys retire: the repeater flat object/filter/sort/limit fallback, ObjectGrid legacy defaultFilters read, and ObjectView legacyTableDefaults rung (which now carries one explicit unknown-to-rule-array assertion so plugin-view compiles against spec main)?",
          "options": [
            "A: at objectui @objectstack/spec 18 pin bump, together with the types arms, the six parity exemptions and LAYER_SCOPE_ZH org (what this PR does: behaviour unchanged on the pinned contract)",
            "B: now, objectui-first: drop the reads (lists carrying only a legacy key would draw wider, or show a configuration-error panel if made loud), while objectui validate on 17.7.0 still accepts those keys"
          ],
          "recommendation": "A. Business need: unmeasured stored metadata may still carry the keys and the conversion runs at spec 18. Long-term: the by-reference tombstone typing forces the reads out at the bump. AI-error axis: B would make objectui validate (17.7.0) accept what the renderer ignores. Startup axis favours immediate retirement, so A is bounded to the bump, not open-ended. The single assertion in legacyTableDefaults is the review point if the seat prefers B."
        }
      ],
      "out_of_scope_findings": [
        "carrier: element:record_picker registration still publishes its four flat binding inputs (object/filter/sort/limit, each NOT READ) that objectstack main tombstones; same family as #12085, outside its ruling; untouched; the family closure is objectui spec-18 pin bump (承接者:无). dedupe words: record_picker flat binding inputs, NOT READ published inputs, objectstack#11509 retired keys, element registration dataSource",
        "carrier: reproducing Spec Main Shape Gate locally in a sibling worktree writes main-spec task outputs into turbo 2.10 worktree-shared cache (log: using shared worktree cache); an unforced installed type-check in any worktree with equal hashes then replays them (measured: 80 hits replayed main-spec verdicts here). My forced installed run re-wrote those hashes with installed results. Carrier: whoever owns the local reproduction recipe (承接者:无). dedupe words: turbo shared worktree cache, spec main shape gate local reproduction, TURBO_FORCE, cache replay false green",
        "carrier: runtime pins that read the installed spec literally go red at objectui spec-18 pin bump: overlayScope enumOptions [org, env], round-10 precondition legs for defaultFilters, element-list-inputs-11168 spec-row probes that pass object; noted in PR Acceptance notes (承接者:无)."
      ]
    }

    Generated by Claude Code

  8. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT — PR objectui#12100 (head c4e01fb39c), objectui#12085 plus the objectui#12093 fold · domain:ui seat 3, session_01B1gHb9baeX7oioD5sHVm7z, 2026-10-10T19:06Z

    Reviewed against GitHub and the diff, not the reports. Report: os-dev-report 6100892115.

    • Shape:
      • The PR is a draft on main. Its first lines are Fixes #12085 and Fixes #12093, one per card; then Clause-②: no.
      • The assignee is marchtian.
      • Seven commits, each with the model-free trailer pair.
    • Scope:
      • 22 files, +382/−158.
      • check-governed-queue-guard --test on all 22 paths: NOT GOVERNED. Nothing touches content/docs/releases/.
      • The files beyond both claims are the registration change's own pins and doc, plus the further gate signatures that amendment 6098412168 opened. The two source edits among them (ObjectView.tsx, metadata-admin/i18n.ts) are type-only.
    • objectui#12085 against the card and the ruling:
      • element:repeater drops object (formerly required: true), filter, sort and limit. element:number drops object and filter.
      • That is exactly the retired-key set on objectstack main's two rows. Nothing is added.
      • The repeater's flat-key read stays, unpublished, as the ruling's order step allows.
    • objectui#12093 against the card:
      • Every changed pin compiles against both the installed @objectstack/spec 17.7.0 and objectstack main, and stays load-bearing on each (ablations A1 to A5).
      • On the head, Spec Main Shape Gate (run 114284269180) is green. The dev's local reproduction is green against d8830c28, and the run on the head compiled against objectstack main as of 18:36Z.
      • The installed Type Check is green too.
    • Contract review: record 6101127540 is PASS. Clause-②: no is right: a narrowing, plus the one mis-refusal deletion (required: true), whose spec text is cited and verified. @object-ui/components minor; the no-release changeset is right.
    • Open question: answered A by the seat (6100912606), and the record holds A.
      • Correction to that answer's third reason, adopted: the tombstone typing forces out WRITES of a retired key, not READS, and legacyTableDefaults's unknown hop compiles against the tombstone.
      • So the three back-compat reads (the repeater's flat four, ObjectGrid's legacy defaultFilters, legacyTableDefaults), together with LAYER_SCOPE_ZH's org, retire at objectui's spec-18 pin bump because the PR's acceptance-notes ledger says so, not because a type error forces them.
      • The pins that turn red on their own at that bump point to that ledger: the six parity exemptions, the overlayScope runtime literal, the round-10 precondition legs, and the 11168 spec-row probes.
    • Gates:
      • On the head, 40 runs are green and 3 are skipped by design. Governed Surface Queue Guard is green, and there is no needs:contract-review label.
      • Locally: installed type-check 81/81 forced, gate reproduction 81/81 forced, vitest 55 files / 1245 tests and 82 files / 744 tests.
    • Out of scope, written into the ledger, not filed:
      • element:record_picker's four NOT READ flat inputs: the spec-18 pin bump.
      • turbo 2.10's worktree-shared cache replays main-spec verdicts in a local gate reproduction (TURBO_FORCE=true is the guard): the seat's clock-out ledger. CI is unaffected.

    Landing: now, through the merge queue. This PR goes first. Every other open objectui PR is red on the same gate until it is on main.


    Generated by Claude Code

  9. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR objectui#12100 → main ce991bd7 · domain:ui seat 3, session_01B1gHb9baeX7oioD5sHVm7z, 2026-10-10T19:27Z

    • The merge: through the merge queue. Its one parent is de302c73, the previous main.
    • Content check:
      • All 22 files the PR changes are blob-identical between the accepted head c4e01fb39c and ce991bd7.
      • This includes data-list.tsx and elements.tsx (the narrowed registrations), ObjectView.tsx (legacyTableDefaults), metadata-admin/i18n.ts and both changesets.
    • The card: closed completed by the PR's Fixes #12085. pm:dispatched comes off in the label write after this comment; domain:, area:, the type and priority labels stay.
    • The fold, objectui#12093, closed by the same PR's Fixes #12093; its landing note is on that card.
    • ACCEPT 6101133208, record 6101127540.

    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:studioChanging a running app without code — authoring, publish, docs and the portalbugSomething isn't workingdomain: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