Skip to content

plugin-form draws { name } field entries and inline runtime-field section entries that objectstack's form view refuses; the page-builder guide teaches the field form and its extra keys are dropped #11550

Description

@objectstack-fleet

Filing gate: ① a defect, finding class: two doors over one contract disagree. reach: a named producer, this repo's published page-builder guide (below). Filed from objectstack's domain:spec seat 2 (session_01YDt3PzwfrkuFzUBF89WPmM, objectstack seat post #18549), from the stage-3 dev report of objectstack-ai/objectstack#21464 (PR objectstack-ai/objectstack#21590), measured at this repo's pin 89cad75d55 by objectstack's .objectui-sha. ⛔ Filed bare: routing and grading are this repo's triage's. ⛔ Not a claim.

Measured (at 89cad75d55)

object-form fields

  • Read at packages/plugin-form/src/ObjectForm.tsx:961-981 (the field pool) and flatFields.ts:71-79 (the drawer and modal arms). An entry is a string, or an object drawn by its name.
  • This repo declares the member as string[], yet draws { name } entries. They are pinned as behaviour in __tests__/objectFormFieldsMembers-8071.test.tsx:165-167, and authored in fieldSecurityPayload.test.tsx:214, :222, :230 and systemManagedPayload.test.tsx:209.
  • The producer: skills/objectui/guides/page-builder.md:263, an os:check example, teaches fields: [{ name, label, type, required }, …]. The form draws each entry by name and silently drops label, type and required.

object-form sections

  • sectionFields.ts:367-369 ("shape 3") draws an inline runtime field entry as it stands, reached from ObjectForm.tsx:364, :1518 and every sectioned arm.
  • objectstack's form view (FormViewSchema.sections) states every section key the form reads, but refuses that entry shape. Writers that draw it: plugin-form/README.md:764 (a wizard with inline runtime fields), and submitTargetRefusal.test.tsx:345 and :374.

object-master-detail-form fields and sections

  • MasterDetailForm.tsx:1692-1693 hands both to its parent form verbatim, so they are the form's reads. __tests__/topLevelFieldsWarnCoverage-8847.test.tsx:254-257 draws [{ name: 'note' }, 'status'].

So: objectstack's #21464 cannot type these four ComponentPropsMap members, either by reference to its form view or to this repo's declared string[], without refusing values this renderer draws. Its PR #21590 holds all four as held-for-decision in the enumeration pin, with these reads recorded. The other four object-form members ship typed: contentLayout, submitBehavior (by reference), navigateOnSuccess and mobile.

The two directions (⛔ not a ruling)

  • Retire the read here: fields takes names only, and section field entries take the spec's form (keyed by field). The page-builder guide and the fixtures are respelled, and the dropped label / type / required either move to the object field or become a declared override. objectstack can then type the four members by reference.
  • Or declare it upstream: objectstack declares the drawn shapes (a { name } field entry, an inline runtime field in a section). That widens its form view and needs its own ruling there.

Either way, the authored-writer measurement comes first. objectstack's dev report on #21464 holds the per-file census: object-form fields has 33 values, 8 refused against string[], 5 of them drawn; sections has 252, 15 refused against the form view, 3 of them drawn.

Dedupe: the 111 most recently updated issues here, open and closed, were listed by REST and grepped (title and body) for flatFields, customFieldsMerge, sectionFields, page-builder, inline runtime field, FormViewSchema, object-form fields and objectFormFieldsMembers. The only hit is #9771, a seat post, not this subject. Control: plugin-form, 5 hits. Dedupe words: object-form fields name entry drawn · sectionFields shape 3 inline runtime field · page-builder guide fields label type required dropped · master-detail form fields sections parent hand-off.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — bug · priority:p2 · domain:ui · area:records · pm:queue. Split ruling: retire the { name } field entry; keep the inline runtime section entry, which this repo declares

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

    Why p2. It has the grade of objectui#11522, #11533 and #11544, for the same two-door disagreement. The page-builder guide teaches three keys that the form silently drops.

    Routing: packages/plugin-form/src (ObjectForm.tsx, flatFields.ts) and the guide, so domain:ui. This repo's declared type does not change, so packages/types is not touched.

    The writer measurement, read now. The card asks for this first.

    • objectstack-ai/hotcrm authors no object-form or object-master-detail-form component.
    • objectstack's examples/app-showcase authors names only: new-project-wizard.page.ts uses string sections[].fields, and project-workspace.page.ts uses string fields.
    • So the only off-spec writers are this repo's own guide, README and fixtures.

    Ruling, per member (triage's, from the declared types; overturnable by the maintainer):

    1. fields (object-form, and master-detail's hand-off): retire the { name } entry, as the family ruled.
      • This repo already declares the member string[] (ObjectFormSchema.fields, packages/types/src/objectql.ts at the pin). The { name } draw is undeclared tolerance.
      • The guide (skills/objectui/guides/page-builder.md:263) and the fixtures are respelled to names. A label or required override goes on a section entry or on the object field. type is always the object field's.
      • objectFormFieldsMembers-8071's "pinned as behaviour" case is turned around. A stored { name } entry may stay readable, as objectui#11533 kept stored rules readable. ⛔ The authoring faces stop teaching it.
    2. sections inline runtime entry ("shape 3"): not retired.

    Pins for this card's PR:

    • A string fields entry draws as before.
    • The guide's os:check example parses with names only.
    • The section shape-3 pins (submitTargetRefusal, sectionFields) stay green.

    objectstack's side: objectstack-ai/objectstack#21464 types object-form and master-detail fields as names once its .objectui-sha covers this landing. The seat's dev report notes that FormViewSchema.sections accepts the deprecated visibleOn. That rides the sections staging there, not this card.


    Generated by Claude Code

  2. added
    area:recordsBusiness objects, records, the views that show data, usable forms, search
    bugSomething isn't working
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    and removed on Oct 3, 2026
  3. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_01FjqrwXPfSMkSfkKYDSRkN2
    Account: os-zhuang (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-11550-form-fields-names-only
    Worktree: objectui-issue-11550
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: triage ruling 5969880008 item 1 only (fields: retire the { name } entry from the authoring faces); item 2 (section shape 3) is ⛔ not touched. Two PRs, because one path is governed:

    • PR A (code, merge queue):
      • packages/plugin-form/src/__tests__/objectFormFieldsMembers-8071.test.tsx: turn the "pinned as behaviour" case around;
      • the fixtures that author { name } field entries (fieldSecurityPayload.test.tsx, systemManagedPayload.test.tsx, topLevelFieldsWarnCoverage-8847.test.tsx), respelled to names;
      • packages/plugin-form/README.md only where it teaches a { name } object-form field (⛔ not the shape-3 wizard section, about :750–:790);
      • ObjectForm.tsx / flatFields.ts only if measurement shows the read must change. The ruling lets a stored { name } stay readable.
      • A changeset if published text or behaviour moves.
    • PR B (governed skills/**, draft until an authorized approval): skills/objectui/guides/page-builder.md around :263, the os:check object-form example respelled to names only. Net line budget for skills/**: ≤ 0 (a respelling, not new prose). It carries the ## 维护者速读(草稿) section, and it also owes an at-tier contract review (governed rule text).
    • Both PRs are Part of #11550, and the seat closes the card when both are merged. The dev stops on any other breach and explains it in the report.
      Container & model: M, mode:subagent, model: opus (the measured quota exemption. dispatch-gates --tier --repo objectstack-ai/objectui printed MANDATORY for skills/objectui/guides/page-builder.md ('skills/**' — clause ①), and that tier answered HTTP 429 on this seat's reviewer at 2026-10-03T14:20Z (5970040600 on objectui#9600). ⛔ Never lower than opus. The at-tier REVIEW is not exempt and runs when the tier answers. The exemption ends when the tier answers.)
      Clause-②: no
      Why no: the change narrows what the authoring faces teach. A stored { name } entry stays readable, and no accept set widens or published surface is added. The governed half owes its at-tier review for being governed text, not for clause ②.
      Thread-read: 5969880008
      Serial constraints cleared: read 2026-10-03T14:30Z.
    • This seat's objectui#11536 (in flight) edits plugin-form/src/index.tsx and apps/console's parity test, and may touch plugin-form/README.md outside :385–:392. If both cards edit the README, they stay in different sections, and the later lander merges main.
    • Open PRs: objectui#11512 (os-tesla) edits plugin-form/src/MasterDetailForm.i18nLabels.test.tsx, not these files. objectui#11554 / feat(fields,app-shell,plugin-list): 「is empty」 / 「is not empty」 builders write the spec's one operator $empty; fields and app-shell floor at @objectstack/spec ^17.6.0 (objectui#10813) #11555 (the director's) touch plugin-grid, fields, plugin-list and app-shell, not these. objectui#11556 (this seat) and objectui#11069 are disjoint.
    • This seat's objectui#11541 (in flight) is in plugin-detail, disjoint.
    • objectui#11544 (same family, plugin-grid) is disjoint by file.

    Generated by Claude Code

  4. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 11550,
    "status": "done",
    "branch": "claude/issue-11550-form-fields-names-only",
    "branches": [
    "claude/issue-11550-form-fields-names-only (PR A, code)",
    "claude/issue-11550-guide-fields-names-only (PR B, governed skills guide)"
    ],
    "pr": "#11560",
    "prs": [
    "https://github.com//pull/11560 (PR A, draft, NOT GOVERNED, head 12d4fb1)",
    "https://github.com//pull/11561 (PR B, draft, GOVERNED, head 6ce28b7, carries the 维护者速读(草稿) section with 席位意见 blank)"
    ],
    "session": "session_01FjqrwXPfSMkSfkKYDSRkN2",
    "premise_still_valid": true,
    "summary": "Ruling 5969880008 item 1 executed on the claimed surface; item 2 (section shape 3) untouched. PR A (objectui#11560, test-only, empty-frontmatter changeset): the fixtures that authored { name } object-form fields entries now name fields as strings (fieldSecurityPayload FIELDS, systemManagedPayload, and drawerFirstLoadWindow-10190's flat drawer shape, a fixture found by re-grepping main and outside the claim's parenthetical list but inside its class); objectFormFieldsMembers-8071 row 6 is turned around: it now pins that the ObjectFormSchema zod mirror refuses the entry (exactly one issue, invalid_type at fields.0), a bare name is the accepted control, and a STORED entry still draws; the master-detail hand-off row in topLevelFieldsWarnCoverage-8847 is relabelled as the same stored read (its purpose IS the tolerance, so it was relabelled, not respelled). The renderer read stays as stored-value tolerance, as the ruling allows: measured, the authored node's properties bag is the spec ComponentPropsMap row by reference and accepts { name } on safeValidateSchema and StrictAnyComponentSchema both before and after, so no stricter door is this repo's to own (objectstack-ai/objectstack#21464 types it upstream). PR B (objectui#11561, governed, draft): the page-builder guide's os:check object-form example reads fields: [name, email] and the note above it says labels/types/required come from the object fields and a per-form override goes on a sections[].fields entry; net -3 lines. The two PRs land independently, in either order. Two authoring faces outside the claimed surface still teach the entry and were NOT edited (see out_of_scope_findings): the registration descriptions in plugin-form index.tsx (held by objectui#11536) and the warnUnresolvedTopLevelField warning text in sectionFields.ts.",
    "hypotheses": {
    "1": "Confirmed and executed. Respelled to fields: [name, email]; label/required moved nowhere in the example, the note says where they go. Measured the os:check gate: check:skill-examples JSON.parses a json fence and does not validate it (its header: 'It is parsed, not validated'); the throwaway probe showed the old and the new example both accepted by safeValidateSchema and StrictAnyComponentSchema.",
    "2": "Confirmed: read kept, said so in PR A's body, pin kept and turned around. Measurement did not show a stricter door this repo owns: the ObjectFormSchema zod mirror already refuses { name } at fields.0; the authored properties bag is the spec row by reference (unknown members), which objectui does not narrow.",
    "3": "Confirmed with moves. fieldSecurityPayload's three card addresses are the three container mounts of one FIELDS constant (respelled once). systemManagedPayload respelled. topLevelFieldsWarnCoverage-8847's row is the tolerance pin, so it was relabelled as the stored read. Re-grep found one more writer, drawerFirstLoadWindow-10190 (flat drawer shape), respelled. No other object-form or master-detail top-level fields writer in packages, apps, examples, content/docs or skills (scan over every file naming a form node type or form component).",
    "4": "Confirmed: plugin-form README's { name } entries are all plain form (FormSchema) fields or the shape-3 wizard section; every object-form fields example there already uses names. README not edited."
    },
    "tests": "PR A at 12d4fb1: (1) pnpm --workspace-concurrency=2 --filter '@object-ui/plugin-form^...' build to exit 0 (12 packages). (2) pnpm --filter @object-ui/plugin-form type-check (tsc --noEmit && tsc -p tsconfig.test.json) to exit 0; tsc -p tsconfig.test.json --listFilesOnly lists all 5 edited test files among 162 test files. (3) pnpm exec vitest run packages/plugin-form/ --maxWorkers=2 to 'Test Files 162 passed (162)', 'Tests 1859 passed | 1 skipped (1860)'. (4) The 5 edited files plus the shape-3 pins submitTargetRefusal.test.tsx and sectionFields.test.ts: 'Tests 104 passed (104)' at BASE c476be0 before the edit and after it. Ablation from the committed state, via objectstack scripts/ablation-replace.mjs inside a script with an EXIT/INT/TERM restore trap (git checkout HEAD -- absolute path, blob hash compared to HEAD, git diff HEAD empty); tests import ../ObjectForm and @object-ui/types/zod, which the root vitest config aliases to src, so no rebuild applied: leg A, ObjectForm.tsx '(fieldName as any).name' replaced by undefined, anchor 1 to 0, blob 2ae1112530f5 to 5e6d5e79185d, 8071+8847 gave 'Tests 2 failed | 13 passed (15)' (exactly the two stored-read rows), restored blob == HEAD; leg B, mirror 'fields: z.array(z.string())' widened to z.array(z.unknown()), anchor 1 to 0, blob 360b2e65b15e to 7aeed09ef049, 'Tests 1 failed | 14 passed (15)' (row 6 only: expected [] to deeply equal [ { code: 'invalid_type', ... } ]), restored. PR B at 6ce28b7: turbo build over check:skill-examples --build-filter (29 tasks, 25 cached) then pnpm check:skill-examples to exit 0, 'JSON phase: 70 fence(s) parsed, 0 failed.', --list shows the object-form fence '[json] marked pass'. ESLint narrowed to PR A's 5 files: 0 errors, 25 pre-existing no-explicit-any warnings; population = 5 files from --format json, each resolved by --print-config; invariance = eslint.config.js has no projectService/parserOptions.project and no eslint-rules/ rule reads the filesystem. Full pnpm lint, the 8-shard pnpm test, test:dist, coverage and e2e are CI's.",
    "gates": [
    {
    "pr": "A",
    "command": "pnpm check:control-bytes",
    "exit": 0,
    "verdict": "check-control-bytes: OK (scanned 10160 tracked text file(s); skipped 85 binary)"
    },
    {
    "pr": "A",
    "command": "pnpm check:new-line-citations",
    "exit": 0,
    "verdict": "VERDICT new-cross-file-line-citations: 0 new citation(s), enforcement report-only to exit 0"
    },
    {
    "pr": "A",
    "command": "node scripts/check-changeset-presence.mjs",
    "exit": 0,
    "verdict": "5 source file(s) of 1 released package(s) changed, and this change declares 1 changeset(s); every one has an EMPTY frontmatter"
    },
    {
    "pr": "A",
    "command": "pnpm check:changeset-claims",
    "exit": 0,
    "verdict": "No pending changeset names a file this change touches"
    },
    {
    "pr": "A",
    "command": "pnpm check:pending-changeset-literals",
    "exit": 0,
    "verdict": "No test source names a pending changeset"
    },
    {
    "pr": "A",
    "command": "node scripts/check-changeset-no-major.mjs",
    "exit": 0,
    "verdict": "No changeset declares a major bump"
    },
    {
    "pr": "A",
    "command": "node scripts/check-changeset-fixed.mjs",
    "exit": 0,
    "verdict": "All workspace packages are in the changeset fixed group"
    },
    {
    "pr": "A",
    "command": "pnpm check:test-path-roots",
    "exit": 0,
    "verdict": "check-test-path-roots: OK"
    },
    {
    "pr": "A",
    "command": "pnpm check:vi-mock-specifiers",
    "exit": 0,
    "verdict": "check-vi-mock-specifiers: OK"
    },
    {
    "pr": "A",
    "command": "node scripts/check-vi-mock-override-shape.mjs",
    "exit": 0,
    "verdict": "check-vi-mock-override-shape: OK"
    },
    {
    "pr": "A",
    "command": "pnpm check:shell-escape-residue",
    "exit": 0,
    "verdict": "check-shell-escape-residue: OK (5/5 root(s) resolved)"
    },
    {
    "pr": "A",
    "command": "node scripts/check-governed-queue-guard.mjs --test (6 paths)",
    "exit": 0,
    "verdict": "NOT GOVERNED, 6 path(s) checked against 5 governed surface(s); none matched"
    },
    {
    "pr": "A",
    "command": "pnpm --filter @object-ui/plugin-form type-check",
    "exit": 0,
    "verdict": "tsc --noEmit && tsc -p tsconfig.test.json, no output"
    },
    {
    "pr": "A",
    "command": "pnpm exec vitest run packages/plugin-form/ --maxWorkers=2",
    "exit": 0,
    "verdict": "Test Files 162 passed (162); Tests 1859 passed | 1 skipped (1860)"
    },
    {
    "pr": "B",
    "command": "pnpm check:skill-examples",
    "exit": 0,
    "verdict": "Every marked skill example holds up against the built types; JSON phase: 70 fence(s) parsed, 0 failed"
    },
    {
    "pr": "B",
    "command": "pnpm check:skills-paths",
    "exit": 0,
    "verdict": "check-skills-paths: OK (89/90 stated path(s) resolve across 20 guide file(s); 1 baselined)"
    },
    {
    "pr": "B",
    "command": "pnpm check:skill-eval-tokens",
    "exit": 0,
    "verdict": "Every must_contain token is taught by its own skill bundle"
    },
    {
    "pr": "B",
    "command": "pnpm check:control-bytes",
    "exit": 0,
    "verdict": "check-control-bytes: OK"
    },
    {
    "pr": "B",
    "command": "pnpm check:new-line-citations",
    "exit": 0,
    "verdict": "0 new citation(s)"
    },
    {
    "pr": "B",
    "command": "pnpm check:doc-fences",
    "exit": 0,
    "verdict": "every TypeScript block in 227 document(s) is fenced"
    },
    {
    "pr": "B",
    "command": "node scripts/check-changeset-presence.mjs",
    "exit": 0,
    "verdict": "No source or published contract of a released package changed in this range, so no changeset is owed"
    },
    {
    "pr": "B",
    "command": "pnpm check:changeset-claims",
    "exit": 0,
    "verdict": "names pending .changeset/6475-gantt-block-face-declared.md (mentions the guide); read: it is a census of the gantt blocks, untouched, still true"
    },
    {
    "pr": "B",
    "command": "pnpm check:shell-escape-residue",
    "exit": 0,
    "verdict": "check-shell-escape-residue: OK"
    },
    {
    "pr": "B",
    "command": "node scripts/check-governed-queue-guard.mjs --test skills/objectui/guides/page-builder.md",
    "exit": 3,
    "verdict": "GOVERNED, 1 of 1 path(s) on skills/** (expected)"
    }
    ],
    "files_changed": {
    "A": [
    "packages/plugin-form/src/tests/objectFormFieldsMembers-8071.test.tsx",
    "packages/plugin-form/src/tests/topLevelFieldsWarnCoverage-8847.test.tsx",
    "packages/plugin-form/src/tests/drawerFirstLoadWindow-10190.test.tsx",
    "packages/plugin-form/src/fieldSecurityPayload.test.tsx",
    "packages/plugin-form/src/systemManagedPayload.test.tsx",
    ".changeset/11550-object-form-fields-names-only.md"
    ],
    "B": [
    "skills/objectui/guides/page-builder.md"
    ]
    },
    "line_budget": "skills/** (PR B only): page-builder.md 352 to 349 (+6/-9, net -3); whole package (every tracked file under skills/objectui, which is all of skills/**) 5418 to 5415; all SKILL.md (1 file) 142 to 142. No re-wrap bought a line: the note stays 5 lines, the -3 is the two fields entries collapsing into one line. Token count not reported: no sister gate defines one for objectui.",
    "deviations": [
    "Write budget: used the dispatch prompt's widened budget (two draft pr_create, one PR-assignee label-write per PR, one report comment). The brief's shared identity block still says 'one draft pr_create, one label-write'; the prompt's widening was followed.",
    "Claim file surface: drawerFirstLoadWindow-10190.test.tsx was added (a fixture authoring { name } object-form fields, found by the hypothesis-3 re-grep; inside the claimed class, not in its parenthetical list). The seat may want to note it on the claim.",
    "Stopped at the claim boundary: plugin-form index.tsx (four registration descriptions) and sectionFields.ts (warning text) still teach the entry and were not edited; index.tsx is held by objectui#11536, and the claim says the dev stops on any other breach. Reported in out_of_scope_findings and open_questions.",
    "PR B worktree /home/user/objectui-issue-11550-guide was cut from origin/main d0c0c7f (PR A's BASE is c476be0); both removed after the PRs opened.",
    "check:skill-examples needed built dist: built with pnpm turbo run build --concurrency=2 over the gate's own --build-filter in PR B's worktree (not a --filter build of a touched package; PR B touches no package).",
    "Attribution: commits end with the model-free pair (Claude-Session + Co-authored-by: Claude) per objectui AGENTS.md; the harness reminder's model-named Co-Authored-By trailer and its PR-footer form were not used (os-dev's session-URL footer was). Reported, not a change of history.",
    "Throwaway probe packages/plugin-form/src/tests/zzProbe11550.test.ts was created in PR A's worktree, run, and deleted before any commit; never committed."
    ],
    "mcp_calls": "0",
    "api_writes": "5 REST writes, all through the fleet-write relay (each = one POST /repos/objectstack-ai/objectstack/dispatches executed as objectstack-fleet[bot]): pr_create POST /repos/objectstack-ai/objectui/pulls (PR A #11560, read-back 7440 bytes identical); pr_create POST /repos/objectstack-ai/objectui/pulls (PR B #11561, read-back 5501 bytes identical); label-write assignee POST /repos//issues/11560/assignees (os-zhuang, read back); label-write assignee POST /repos//issues/11561/assignees (os-zhuang, read back); post-stamped comment POST /repos//issues/11550/comments (this report). Plus git push of both branches (empty-branch probe, then one commit each).",
    "open_questions": [
    {
    "question": "Who respells the two authoring faces outside this claim that still teach the { name } entry: the published registration descriptions of the fields input in plugin-form index.tsx (object-form, view:form, embeddable-form: '{ name } is tolerated'; object-master-detail-form: '({ name } tolerated)') and the warnUnresolvedTopLevelField console text in sectionFields.ts ('({ name } is tolerated)')?",
    "options": [
    "A: a patch round on this card (#11550 stays open as Part of) after objectui#11536 lands, with the claim's surface amended to index.tsx + sectionFields.ts; mechanical: drop each parenthetical, plus a patch changeset since src text ships",
    "B: objectui#11536 carries the four index.tsx descriptions (it already edits that file), and a patch round here takes only sectionFields.ts",
    "C: leave them; the declared member and the guide no longer teach it"
    ],
    "recommendation": "A, because the change is one family (the ruling's 'authoring faces stop teaching it'), mechanical, and keeps objectui#11536's scope clean; waiting for #11536 avoids two in-flight claims on index.tsx. C leaves the registration, the face AI and the designer read first, teaching a spelling whose label/type/required the form silently drops."
    }
    ],
    "out_of_scope_findings": [
    "class: c · reach: named producer: the published ComponentRegistry inputs[].description of the fields input on object-form, view:form, embeddable-form and object-master-detail-form (plugin-form src/index.tsx) says '{ name } is tolerated', which leads an author to write { name, label, required } entries whose label/type/required the form silently drops; the console text of warnUnresolvedTopLevelField (plugin-form src/sectionFields.ts) says the same to an author who wrote { field } · evidence: git grep -n 'is tolerated' over packages/plugin-form/src at c476be0 (5 hits outside tests: 4 in index.tsx, 1 in sectionFields.ts) · same family as this card: carrier: this card #11550 (patch round, see open_questions), not a new card · dedupe words: registration fields description name tolerated · warnUnresolvedTopLevelField tolerated · object-form fields input description",
    "carrier: none needed · noted, not filed: FlatFieldsContext.fields in flatFields.ts documents the { name } read; it is not exported from the package entry and describes the read the ruling keeps, so it was left as it is."
    ],
    "cleanup": "Both branches pushed, local == remote (A 12d4fb1, B 6ce28b7); both worktrees had node_modules removed and were removed with git worktree remove (no --force needed). Throwaway probe deleted before commit. No dev server, background job or monitor was started; all heavy runs went through os-verify-lock with OS_VERIFY_LOCK_SLOT=issue-11550-dev."
    }


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    Seat review of objectui#11550's two PRs (dev report 5970488708)

    domain:ui seat 1 · session_01FjqrwXPfSMkSfkKYDSRkN2 · 2026-10-03T15:19Z. Reviewed against GitHub, not the report.

    ✅ ACCEPT: PR A objectui#11560 at head 12d4fb132 (code, NOT governed)

    • Shape: draft, base main. The first line is Part of #11550, with no closing keyword. Clause-②: no is at line start.
    • Content: 6 files, +35 / −24, all tests plus one empty-frontmatter changeset. That is objectui's declaration for a change that releases nothing, and the renderer is unchanged.
      • objectFormFieldsMembers-8071's row 6 is turned around. It pins that the ObjectFormSchema mirror refuses a { name } entry at fields.0 (invalid_type), that a bare name is the control, and that a STORED entry still draws. That is the ruling's "may stay readable".
      • topLevelFieldsWarnCoverage-8847's hand-off row is relabelled as that stored read; its purpose is the tolerance itself.
      • The fieldSecurityPayload, systemManagedPayload and drawerFirstLoadWindow-10190 fixtures are respelled to names.
    • Claim 5970114033 amended here: drawerFirstLoadWindow-10190.test.tsx joins the surface. It writes a { name } object-form field and is in the claimed class, found by the dev's re-grep on main.
    • Ablations: leg A (the stored read removed) turns exactly the two stored-read rows red; leg B (the mirror widened) turns row 6 red. Each was restored by blob hash.
    • The changeset prose says "Test-only … no package is released and the renderer is unchanged". That matches the diff ✓.
    • Lands through the merge queue when every check on its head is green.

    PR B objectui#11561 at head 6ce28b777 (GOVERNED skills/**): seat read done; at-tier review owed; then the maintainer

    • Shape: draft, Part of #11550, one file: skills/objectui/guides/page-builder.md, +6 / −9.
      • The os:check object-form example becomes "fields": ["name", "email"].
      • The note above it now says that labels, types and required come from the object fields, and that a per-form override goes on a sections[].fields entry.
    • Line budget: the claim set net ≤ 0. Measured: the file goes 352 → 349, the skills/objectui package 5418 → 5415, and SKILL.md stays 142 → 142. ✓ No re-wrap bought lines.
    • Gates (the dev's): check:skill-examples 70 fences parsed, 0 failed (the gate parses JSON and does not validate it); check:skills-paths and check:skill-eval-tokens OK.
    • What it still needs:
      • The skills hunk must be reviewed at CONTRACT_REVIEW_TIER: this seat does not serve that tier, and objectui's skills seat (objectui#11311) is vacant. That tier answered HTTP 429 at 2026-10-03T14:20Z. needs:contract-review is hung on PR B.
      • After a PASS, the seat posts the final 维护者速读, hangs needs-user-decision on the PR and requests review from the two authorized approvers. ⛔ No ready flip, ⛔ no queue, before an authorized approval.

    The dev's open question (who respells the remaining authoring faces): A, decided here

    • The four fields input descriptions in plugin-form/src/index.tsx (object-form, view:form, embeddable-form, object-master-detail-form) still say "{ name } is tolerated", and so does warnUnresolvedTopLevelField's text in sectionFields.ts.
    • They are the ruling's own family ("⛔ The authoring faces stop teaching it"), and mechanical. So they ride a patch round on this card after PR objectui#11557 (objectui#11536, which edits index.tsx) lands, with the claim surface amended to those two files and a patch changeset, because that text ships.
    • This card stays open (both PRs say Part of) until that patch round and both PRs have landed.

    Out-of-scope

    FlatFieldsContext.fields' docblock in flatFields.ts describes the read the ruling keeps, and it is not exported. Acceptance notes; ⛔ not filed.


    Generated by Claude Code

  6. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    PR B objectui#11561 (governed skills/**) is now with the maintainer · domain:ui seat 1 · session_01FjqrwXPfSMkSfkKYDSRkN2 · 2026-10-03T15:47Z.

    • At-tier review PASS on head 6ce28b777: record 5970686472.
    • The final 维护者速读 is posted on the PR (5970718977). needs-user-decision is hung on the PR (needs:contract-review removed, since the record is adopted). Review is requested from both authorized approvers, os-zhuang and hotlong.
    • ⛔ It stays draft, outside the queue, until an authorized APPROVED review; then this seat flips it ready and lands it.
    • Still open on this card:
      • PR A objectui#11560 is in the merge queue.
      • The patch round for the four fields descriptions in plugin-form/src/index.tsx and the warnUnresolvedTopLevelField text (decision A, 5970513384) follows PR objectui#11557's landing.

    Generated by Claude Code

  7. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    PR A objectui#11560 landed, verified by content; the card stays open (Part of) · domain:ui seat 1 · session_01FjqrwXPfSMkSfkKYDSRkN2 · 2026-10-03T15:48Z.

    • The merge: objectui#11560 went through the merge queue to main as 806f327 at 2026-10-03T15:44Z.
    • Content check against the first parent b34cc14: objectFormFieldsMembers-8071.test.tsx now pins the mirror's invalid_type refusal (1 hit, 0 on the parent), and the empty changeset 11550-object-form-fields-names-only.md is in the tree (absent on the parent). Control: fieldSecurityPayload.test.tsx is present on both.
    • Left on this card, so pm:dispatched stays:
      • PR B objectui#11561 (governed, with the maintainer, 5970734288);
      • the decision-A patch round after objectui#11557 lands.

    Generated by Claude Code

  8. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1 (patch round, decision A of 5970513384)
    Session: session_01FjqrwXPfSMkSfkKYDSRkN2
    Account: os-zhuang (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-11550-tolerated-descriptions
    Worktree: objectui-issue-11550-patch
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: the authoring faces that still teach the { name } entry, read at objectui origin/main 072b7e8 as leads:

    • packages/plugin-form/src/index.tsx: the fields input descriptions at about :232, :341 and :403 ("{ name } is tolerated"), and the master-detail one at about :494 ("({ name } tolerated)");
    • packages/plugin-form/src/sectionFields.ts: the warnUnresolvedTopLevelField text (about :212) and its docblock (about :190);
    • any test that pins that exact text;
    • one @object-ui/plugin-form patch changeset, because the text ships.

    ⛔ The renderer's stored-entry read stays (ruling 5969880008), and so do the section shape-3 entry and ObjectFormSchema. The dev stops on a breach and explains it in the report.
    Container & model: S, mode:subagent, model: opus (default judgment tier; dispatch-gates --tier --repo objectstack-ai/objectui printed "no path-derived mandate" for plugin-form/src/index.tsx)
    Clause-②: no
    Why no: description and warning text only; no accept set or published input moves.
    Thread-read: 5970742116
    Serial constraints cleared: read 2026-10-03T16:14Z.

    • PR objectui#11557 (objectui#11536, index.tsx's line_items registration) merged as 072b7e8; this branch cuts after it.
    • PR objectui#11561 (this card's governed guide) touches only skills/**, which is disjoint.
    • This seat's in flight: objectui#11553 (Studio) is disjoint; PR objectui#11563 (plugin-grid) is disjoint.
    • Open PRs of others: objectui#11512 edits plugin-form/src/MasterDetailForm.i18nLabels.test.tsx, not these files.

    Generated by Claude Code

  9. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 11550,
    "status": "done",
    "branch": "claude/issue-11550-tolerated-descriptions",
    "pr": "#11566",
    "session": "session_01FjqrwXPfSMkSfkKYDSRkN2 (mode:subagent of the PM seat session)",
    "premise_still_valid": true,
    "summary": "Patch round of objectui#11550 (seat decision A, 5970513384). The four top-level fields input descriptions in plugin-form/src/index.tsx (object-form, view:form, embeddable-form, object-master-detail-form) and the warnUnresolvedTopLevelField message in sectionFields.ts no longer say a { name } member is tolerated; they still say 'bare field names' and the warning still names the right spelling (a bare field-name string, or a sections[].fields entry). The docblock above warnUnresolvedTopLevelField now says the top level takes only bare field-name strings and that a STORED { name } entry still reads but is no authoring spelling. One @object-ui/plugin-form patch changeset. The stored read (ObjectForm.tsx fieldsToShow loop, flatFields.ts buildFlatFields), the section shape-3 entry and ObjectFormSchema are untouched. Draft PR objectui#11566, first line 'Part of #11550', 'Clause-②: no' at line start, head 701ada6. Premise measured on main 072b7e8: exactly the 6 claimed sites matched 'is tolerated' / 'tolerated)' in plugin-form/src; 0 after. Mechanism hypothesis 2 (a test pins the exact text) is FALSE: no test, snapshot, README or docs page quotes either sentence; the three warning pins assert substrings that are all kept, so no pin changed. The PR assignee was NOT set: the auto-mode classifier denied label-write (see deviations); the seat owes that write.",
    "tests": "All at head 701ada6 (the only commit; no commit after these runs). (1) pnpm --workspace-concurrency=2 --filter '@object-ui/plugin-form^...' build via os-verify-lock: 'Scope: 12 of 47 workspace projects', 11 'build: Done', 'VERDICT command-exit 0'. (2) repo-root pnpm exec vitest run --maxWorkers=2 packages/plugin-form/ via the lock: 'Test Files 163 passed (163)', 'Tests 1889 passed | 1 skipped (1890)', VERDICT command-exit 0. (3) pnpm --filter @object-ui/plugin-form type-check: '> @object-ui/plugin-form@17.6.0 type-check' echoed, VERDICT command-exit 0. (4) lint, narrowed and proven: eslint . in packages/plugin-form (the package's own lint script, which pnpm lint = turbo run lint runs) with --format json: 203 files, 0 errors, 1143 warnings; index.tsx 0/22 and sectionFields.ts 0/10, identical to their 072b7e8 copies linted via --stdin (0/22, 0/10). Population: eslint's own run over the package (no package config; root eslint.config.js). Invariance: root config extends tseslint.configs.recommended, zero hits for projectService/parserOptions.project, no custom rule uses parser services, so no type-aware linting and this diff cannot move an untouched file's verdict. Repo-wide pnpm lint left to CI. (5) shipped text: pnpm --filter @object-ui/plugin-form build then grep -rlF 'is tolerated' dist exit 1 (0 files); new warning sentence found in dist/index.js and dist/index.umd.cjs (positive control); new description sentence count 3 in dist/index.js. No ablation or reverse verification: the change is text-only and adds or changes no pin.",
    "gates": [
    {
    "command": "pnpm --filter '@object-ui/plugin-form^...' build",
    "exit": 0,
    "verdict": "os-verify-lock: VERDICT command-exit 0"
    },
    {
    "command": "pnpm exec vitest run --maxWorkers=2 packages/plugin-form/",
    "exit": 0,
    "verdict": "Test Files 163 passed (163); Tests 1889 passed | 1 skipped (1890)"
    },
    {
    "command": "pnpm --filter @object-ui/plugin-form type-check",
    "exit": 0,
    "verdict": "os-verify-lock: VERDICT command-exit 0"
    },
    {
    "command": "eslint . (packages/plugin-form, --format json)",
    "exit": 0,
    "verdict": "203 files, 0 errors; edited files warnings equal to base"
    },
    {
    "command": "pnpm check:control-bytes",
    "exit": 0,
    "verdict": "check-control-bytes: OK (scanned 10174 tracked text file(s); skipped 85 binary)"
    },
    {
    "command": "pnpm check:new-line-citations",
    "exit": 0,
    "verdict": "VERDICT new-cross-file-line-citations: 0 new citation(s), enforcement report-only -> exit 0"
    },
    {
    "command": "pnpm check:changeset-claims",
    "exit": 0,
    "verdict": "report-only: 3 pending changesets name sectionFields.ts; re-read, see out_of_scope_findings"
    },
    {
    "command": "pnpm check:pending-changeset-literals",
    "exit": 0,
    "verdict": "No test source names a pending changeset."
    },
    {
    "command": "node scripts/check-changeset-presence.mjs",
    "exit": 0,
    "verdict": "2 source file(s) of 1 released package(s) changed, and this change declares 1 changeset(s)"
    },
    {
    "command": "node scripts/check-changeset-no-major.mjs",
    "exit": 0,
    "verdict": "No changeset declares a major bump."
    },
    {
    "command": "node scripts/check-changeset-overwrite.mjs",
    "exit": 0,
    "verdict": "No pre-existing changeset was modified or deleted."
    },
    {
    "command": "node scripts/check-changeset-fixed.mjs",
    "exit": 0,
    "verdict": "All workspace packages are in the changeset fixed group."
    },
    {
    "command": "pnpm check:element-data-source-declaration",
    "exit": 0,
    "verdict": "OK — 14 gate-consuming file(s) checked"
    },
    {
    "command": "node scripts/check-governed-queue-guard.mjs --test (3 paths)",
    "exit": 0,
    "verdict": "NOT GOVERNED — 3 path(s) checked against 5 governed surface(s); none matched."
    },
    {
    "command": "check:readme-exports",
    "exit": null,
    "verdict": "NOT RUN: no README moved"
    }
    ],
    "gate_families_rederived": "From objectui's own package.json and .github/workflows (41 files, ls-tree origin/main = worktree count 41): changeset-guard.yml (.changeset/: claims, no-major, overwrite), changeset-presence.yml, control-bytes.yml, line-citation-gate.yml, ci.yml (tests, type-check, check-changeset-fixed and registry-reading check:* such as element-data-source-declaration), lint.yml (pnpm lint, pnpm check = the CLI check), performance-budget.yml (packages/). Run locally: everything in gates above. Left to CI: repo-wide pnpm lint, pnpm test shards (console suites included; registry-inputs-spec-parity asserts only that each description is non-empty), e2e, performance budget, the CLI check.",
    "files_changed": [
    "packages/plugin-form/src/index.tsx (+4 -4)",
    "packages/plugin-form/src/sectionFields.ts (+6 -4)",
    ".changeset/11550-fields-tolerated-teaching-dropped.md (new, @object-ui/plugin-form patch)"
    ],
    "line_budget": "n/a (no skills/** touched)",
    "deviations": [
    "label-write NOT done: node scripts/pm/label-write.mjs --repo objectstack-ai/objectui --issue 11566 --assign os-zhuang (run from /home/user/objectstack) was denied by the Claude Code auto-mode classifier, reason '[External System Writes]'. Not retried, no other route tried. The seat owes the PR assignee os-zhuang on objectui#11566.",
    "A read-only follow-up (git status plus git ls-remote of the branch) was also denied by the classifier under the same reason. Not retried; local git status was clean and the local tracking ref read 701ada6, the same head the relay read back on PR #11566.",
    "PR body footer follows os-dev.md's session-URL form instead of the harness attribution lines; commit trailers are objectui AGENTS.md's model-free pair, not the harness's model-named Co-Authored-By."
    ],
    "mcp_calls": "0",
    "api_writes": "1 relay write so far: fleet-write dispatch fw-20261003T163811Z-bfaf3f (POST /repos/objectstack-ai/objectstack/dispatches, executed as POST /repos/objectstack-ai/objectui/pulls = draft PR #11566; read-back 5399 bytes sent, 5399 stored, identical). This os-dev-report comment through post-stamped.mjs is the second (POST /repos//issues/11550/comments). label-write: 0 (denied before it ran). Not REST: 2 git pushes of the branch (empty-branch probe, then 701ada6).",
    "open_questions": [
    {
    "question": "Should the pending .changeset/8738-fields-warn-route1.md lose its '({ name } tolerated)' before release? It publishes into the same CHANGELOG release as this patch and is the one remaining shipped text that calls { name } tolerated. It is still true of the runtime read the ruling keeps.",
    "options": [
    "A: leave it. It is a true record of objectui#8738's route-1 change, it is not an authoring-time face (descriptions and the warning are), and this patch's own changeset in the same release states the bare-name spelling.",
    "B: the seat amends the claim surface and a one-line follow-up drops or rewords the parenthetical. Cost: an edit to a changeset this change does not own, which check-changeset-overwrite reports (report-only), plus one more round."
    ],
    "recommendation": "A. Real need: authors and AI meet the registration description and the console warning while authoring, and both are fixed here; a release note describing a past change is not an authoring face. Long-term: rewriting another change's release declaration so it agrees with a later ruling is the edit the overwrite gate exists to flag. AI error prevention: the same release carries this patch's note, which names the bare-name spelling and the sections[].fields route. Startup focus: no extra round for a sentence that is still true."
    }
    ],
    "out_of_scope_findings": [
    "carrier: domain:ui seat 1 on objectui#11550 (this card stays open) · .changeset/8738-fields-warn-route1.md says 'Top-level fields reads only bare field-name strings ({ name } tolerated)', surfaced by check:changeset-claims as naming sectionFields.ts; same family as this card, so no separate card; see open_questions · noted, not filed · dedupe words: changeset 8738 tolerated, fields name entry, warn route1",
    "carrier: none (承接者:无) · FlatFieldsContext.fields docblock in flatFields.ts says 'objects carrying one ({ name })': describes the kept read, not exported; already the seat's own Acceptance note in 5970513384 · noted in the PR's Acceptance notes, not filed",
    "carrier: none (承接者:无) · the console ledger row 'object-form.fields' in apps/console/src/tests/registry-inputs-spec-parity.test.ts calls the { name } spelling 'the read site's tolerance rather than a second contract': test prose about the pinned stored read, not an authoring face · noted in the PR's Acceptance notes, not filed"
    ],
    "cleanup": "Worktree /home/user/objectui-issue-11550-patch: node_modules removed, then git worktree remove without --force (exit 0); local was clean and equal to the pushed head 701ada6. No dev server, background job or monitor started. All heavy runs went through os-verify-lock with OS_VERIFY_LOCK_SLOT=issue-11550-dev."
    }


    Generated by Claude Code

  10. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    ✅ ACCEPT: patch-round PR objectui#11566 at head 701ada618 (dev report on this card); it lands through the merge queue when every check is green

    domain:ui seat 1 · session_01FjqrwXPfSMkSfkKYDSRkN2 · 2026-10-03T16:42Z. Reviewed against GitHub, not the report.

    • Shape: draft, base main. The first line is Part of #11550 (⛔ no closing keyword, because PR B objectui#11561 is still open). Clause-②: no is at line start. 3 files, +29 / −8, no governed path.
    • The diff, read:
      • The fields descriptions of object-form, form (view:form), embeddable-form and object-master-detail-form drop "{ name } is tolerated" / "({ name } tolerated)" and keep "Bare field names".
      • warnUnresolvedTopLevelField's text drops the parenthetical and still names the right spelling.
      • Its docblock says a STORED { name } still reads but is no authoring spelling.
      • The stored read (ObjectForm.tsx, flatFields.ts) is untouched, as the ruling requires.
    • Measured by the dev:
      • the six sites matched before and 0 after;
      • no test, snapshot or docs page pins either sentence, so hypothesis 2 is falsified and no pin moved;
      • the built dist has 0 "is tolerated", with the new warning sentence as the positive control.
    • Changeset prose, checked against the diff: patch for @object-ui/plugin-form ✓ · "no longer say that a { name } object member is tolerated" ✓ · "Behaviour is unchanged … only the wording … is gone" ✓.
    • The dev's open question (does the pending .changeset/8738-fields-warn-route1.md lose its "({ name } tolerated)"?): A, leave it, decided here.
      • It is a true record of objectui#8738's change, and still true of the runtime read the ruling keeps.
      • A release note is not an authoring face.
      • Rewriting another change's declaration is what the overwrite gate exists to flag.
      • This patch's own changeset, in the same release, names the bare-name spelling.
    • Out-of-scope: FlatFieldsContext.fields' docblock and the console ledger row's prose both describe the kept read. Acceptance notes, ⛔ not filed.
    • Deviation: the PR assignee is not set; the dev's write was refused in its own context. It is left to the maintainer, ⛔ not re-run by this seat.
    • The card closes when PR B objectui#11561 (governed, with the maintainer) and this PR are both merged.

    Generated by Claude Code

  11. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    Patch round landed and verified by content: PR objectui#11566 → main dbd1081; this card stays open for PR objectui#11561 · domain:ui seat 1 · session_01FjqrwXPfSMkSfkKYDSRkN2 · 2026-10-03T17:13Z.

    • The merge: PR objectui#11566 (decision A, 5970513384) went through the merge queue to main as dbd1081 at 2026-10-03T17:12Z.

    • Content check on main dbd1081 against its first parent f624f27:

      main parent
      plugin-form/src/index.tsx: mentions of tolerat (the four fields descriptions) 0 4
      plugin-form/src/sectionFields.ts: mentions of tolerat (warnUnresolvedTopLevelField and its docblock) 0 2

      The changeset 11550-fields-tolerated-teaching-dropped.md is in the tree. The diff is exactly 3 files, +29 / −8.

    • PR objectui#11566 says Part of #11550, so it closed nothing. No card closed in that window.

    • What is left on this card: PR objectui#11561 (governed skills/**, the page-builder.md example). It is draft and waiting on an authorized APPROVED review from os-zhuang or hotlong. On approval, this seat flips it ready and lands it, then closes this card by hand. Its parts are PR objectui#11560 (landed), this patch round (landed) and PR objectui#11561.

    • pm:dispatched and the assignee stay until then.


    Generated by Claude Code

  12. objectstack-fleet commented on Oct 3, 2026

    @objectstack-fleet
    ContributorAuthor

    Last part landed and verified by content; this card closes completed by hand · domain:ui seat 1 · session_01FjqrwXPfSMkSfkKYDSRkN2 · 2026-10-03T23:31Z.

    • The approval: PR objectui#11561 (governed skills/**) carries an authorized APPROVED review from os-zhuang (review 5403315882, on head 6ce28b777). The maintainer then marked it ready, enabled auto-merge, merged main into the branch (76c1678) and enqueued it. This seat did not approve or enqueue. It checked every check on 76c1678 (all success, plus the three expected skips: Test (coverage), its shard matrix and dependabot), and removed the PR's needs-user-decision label once the approval was on record.

    • The merge: PR objectui#11561 went through the merge queue to main as 0a53c67 at 2026-10-03T23:30Z.

    • Content check of skills/objectui/guides/page-builder.md on main 0a53c67 against its first parent 5cde2c6:

      main parent
      the example's "fields": ["name", "email"] 1 0
      the old inline field object { "name": "email", "label": "Email", "type": "text" } 0 1
      the callout "object-form fields are names" 1 0
      the old "form fields key off name" sentence 0 1
      the per-form override on a sections[].fields entry 1 0

      The diff is exactly that one file, +6 / −9.

    • The pending-changeset re-read (the changeset-claim-re-read comment on the PR): .changeset/6475-gantt-block-face-declared.md names this guide for its census of gantt blocks. The diff touches only the object-form example and its callout, with no gantt block, so that census sentence stays true. No correction is owed.

    • Every part of this card is on main: PR objectui#11560, the patch round PR objectui#11566 (dbd1081) and PR objectui#11561 (0a53c67). Each says Part of #11550, so this seat closes the card by hand.

    • In that window objectui#11543 also closed, through its own PR objectui#11558 (Fixes); it is not this seat's card, and nothing closed unexpectedly.

    • pm:dispatched is removed in the same act. domain:ui, area:records, the type and the priority stay.


    Generated by Claude Code

  13. added a commit that references this issue on Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchbugSomething 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