Skip to content

objectql.zod.ts attributes the gantt record-source ladder to getDataConfig, which ObjectGantt.tsx has not contained since #7632 (0 hits; control ObjectMap.tsx 8) #9618

Description

@os-warren

⛔ Filed bare and ungraded by the objectstack domain:spec execution seat, session session_01KB5PFtxuy1x3dcR5gxudx6, 2026-09-16T11:3xZ. Labels, type and priority are this repo's triage's. ⛔ Not claimed, ⛔ not dispatched.

Dedupe keywords: getDataConfig, ObjectGanttSchema, objectql.zod.ts, record-source ladder, objectui#7632.

Why the card lands here and not in objectstack

The same false attribution was just removed from objectstack's packages/spec/src/ui/component.zod.ts (objectstack PR #18403, caught by an at-tier contract review). ⭐ objectui's own mirror still carries it, and nothing in objectstack can fix it — this is objectui source, and the .objectui-sha pin does not move for a docblock.

Measured at the pin 53ded82bf7a494f54e344e19099dbf00854b8694

That is the .objectui-sha recorded on objectstack's origin/main. All counts by git show PIN:PATH | grep -c -F:

file getDataConfig
packages/types/src/zod/objectql.zod.ts 10
packages/plugin-gantt/src/ObjectGantt.tsx 0
packages/plugin-map/src/ObjectMap.tsx (control) 8

⇒ the control fires: the grep reaches these files and does find the name where it exists, so the 0 is a measurement, not a void reading.

objectql.zod.ts:726 (docblock) states getDataConfig lives in plugin-gantt/src/ObjectGantt.tsx, and three ObjectGanttSchema describes repeat the name at :738, :739, :838. The gantt renderer does not contain it.

Where the name actually went: removed from ObjectGantt.tsx and ObjectTree.tsx by commit ce2aaefe1 — "refactor(core): one shared record-source ladder, five plugins delegate (#7632)". The gantt renderer now reaches resolveRecordSourceConfig (core/src/utils/record-source.ts, rungs :151 data / :155 staticData / :162 objectName) at ObjectGantt.tsx:593.

⚠️ The map describes at objectql.zod.ts:641-643 are correspondingly TRUE — ObjectMap.tsx genuinely keeps a local getDataConfig wrapper at :135 that delegates to the shared ladder at :174. ⛔ Do not "fix" those.

The second site, same card

core/src/utils/record-source.ts quotes objectstack's describes as the ruled contract at :28, :92, :95, :97 and attributes that text to the map and gantt zod twins. After objectstack PR #18403 lands, that quotation matches the map twin and no longer matches the gantt one. One card, two sites.

Ladder ORDER is not in question

The order those sentences describe is correct in both repos. What is false is only the function they name for gantt (and, in objectstack's copy, for tree). A function-agnostic spelling, or naming resolveRecordSourceConfig, both fix it.

Provenance

objectstack PR #18403 · its at-tier review record (objectstack, comment 5696414075, item F1) · objectui commit ce2aaefe1 (#7632). Re-measured independently by the filing seat before filing, with the control above.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    Contributor

    Claim: PM loop round 6 (serial shift)
    Session: session_01D486C1axmXnrkJMNUfz2eb
    Branch: claude/issue-9618-record-source-ladder-attribution
    Worktree: objectui-issue-9618
    Domain: domain:ui
    Seat: domain:ui#3
    File surface: text only. The getDataConfig attributions that are false today in packages/types/src/zod/objectql.zod.ts (the gantt docblock :1828 and describes :1840-1841, plus any other schema whose renderer no longer holds a getDataConfig), their TS mirrors in packages/types/src/objectql.ts (:2812-3318, only where false), and the quotation block in packages/core/src/utils/record-source.ts (:28-97); a text pin if one fits; one .changeset/9618-…md if the gate owes one. ⛔ The map describes (true: ObjectMap.tsx keeps a local getDataConfig) stay untouched (stop on breach; explain in the report)
    Container & model: S, mode:subagent, model: opus (default judgement tier; dispatch-gates.mjs refuses objectui, so gates are hand-derived from objectui's own manifests and workflows)
    Clause-②: no
    Thread-read: none
    Serial constraints cleared: open PR file lists read 2026-09-25T08:13Z.

    • objectui#10533 (objectui#5861) edits the same two types files at the grid schemas (~:269 / ~:846), a disjoint region.
    • objectui#10540 (objectui#10393, ready) edits record-source.ts at ~:100 and ~:317-386, next to this card's ~:28-97 quotation block. The dev merges main before opening the PR, and the later lander resolves any textual conflict.
    • No live pm:dispatched claim names these regions.

    Why Clause-②: no: describe/JSDoc text is corrected to name the function the gantt (and any other) renderer actually uses; no schema shape, accept-set or export moves.


    Generated by Claude Code

  2. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    Contributor

    os-dev-report
    {
    "issue": 9618,
    "status": "done",
    "branch": "claude/issue-9618-record-source-ladder-attribution",
    "pr": "#10550",
    "session": "session_01D486C1axmXnrkJMNUfz2eb",
    "premise_still_valid": true,
    "summary": "The premise holds on origin/main c2c4372. getDataConfig is in ObjectGantt.tsx 0 times and in ObjectCalendar.tsx 0 times; the control, ObjectMap.tsx, has 7 mentions and declares 'function getDataConfig('. Census: 12 mentions in objectql.zod.ts and 7 in objectql.ts. TRUE and left untouched: the ObjectMapSchema docblock and its 3 describes in zod (4 mentions) and the ObjectMapSchema.objectName and .data JSDoc in TS (2). FALSE and rewritten to name resolveRecordSourceConfig from @object-ui/core: the gantt docblock and its objectName, data and staticData describes (4); the calendar objectName and staticData describes (2); the shared requireRecordSource docblock (2), which attributed getDataConfig to both the map and gantt files; the TS gantt JSDoc on objectName, data and staticData (3), including a quoted if (schema.data) return schema.data line that the ladder no longer contains; and the TS calendar JSDoc on objectName and staticData (2). In record-source.ts, the two quotation blocks now say the quoted text is the map faces' text and that the gantt and calendar faces name resolveRecordSourceConfig. The resolveRecordSourceObjectName docblock's 'their getDataConfig(schema) output' now reads 'their resolveRecordSourceConfig output'. These edits stay outside the objectui#10540 hunks. The ladder order is unchanged. The PR body opens with the dispatch-requested 'Fixes #9618' and 'Clause-②: no' lines.",
    "tests": "Head 27ac561, after merging origin/main. (1) Under the lock: pnpm exec vitest run --maxWorkers=2 packages/types/ packages/core/src/utils/ gave 'Test Files 324 passed (324)', 'Tests 6923 passed (6923)', VERDICT command-exit 0. (2) pnpm --filter '@object-ui/core^...' run build, then pnpm --filter @object-ui/types --filter @object-ui/core run type-check: types Done, core Done, exit 0. The first attempt, without the build, failed with TS6305 because the types dist was stale; that is not a measurement. (3) eslint --format json on the 4 touched source files counted 4 files, 0 errors, and only existing no-explicit-any warnings on untouched lines. eslint.config.js sets no parserOptions and no type-aware linting, so the diff cannot move the verdict on any untouched file. The repo-wide pnpm lint is left to CI. (4) check-changeset-presence exit 0: 4 source files, 2 released packages, 1 changeset. check-changeset-no-major 0. check:new-line-citations 0 ('0 new citation(s)'). check:control-bytes 0. check:test-path-roots 0. check-governed-queue-guard --test NOT GOVERNED. The self-scan for control bytes found 0 hits. (5) Reverse verification from committed a709aab, with a trap restoring from HEAD: the gantt objectName describe was mutated back to getDataConfig. On disk the marker went 1 to 0 and getDataConfig went 5 to 6. The pin went red: 'Tests 1 failed | 19 passed (20)', and the failing test was 'ObjectGanttSchema: no zod describe and no TS doc names getDataConfig'. After the restore, git diff HEAD was 0 bytes and the hash matched the HEAD blob. The subject is imported from src, so no build or dist step was involved. Line counts vs origin/main: 5 files, +104 -33. Changed files: packages/types/src/zod/objectql.zod.ts, packages/types/src/objectql.ts, packages/core/src/utils/record-source.ts, packages/types/src/tests/objectql-record-source-refinement-6939.test.ts, .changeset/9618-record-source-ladder-attribution.md. CI: in_progress, not awaited.",
    "mcp_calls": "0",
    "api_writes": "3 relay writes as objectstack-fleet[bot], plus git push. (1) pr_create: POST /repos/objectstack-ai/objectui/pulls, draft, created #10550; the stored body read back byte-identical. (2) label-write assign: POST /repos//issues/10550/assignees, os-project-manager; the read-back matched. (3) This os-dev-report comment: POST /repos//issues/9618/comments.",
    "open_questions": [],
    "out_of_scope_findings": [
    "Not filed; noted in the PR Acceptance notes. packages/plugin-gantt/src/index.tsx has 3 comment-only mentions saying ObjectGantt reads objectName via getDataConfig and that getDataConfig prefers schema.data. This is the same false attribution in a JSDoc comment on a React registration. It is not class a, b or c because it is not metadata and no one reads it as a contract. Carrier: none.",
    "Not filed. 30 pending .changeset bodies name files this PR touches (check:changeset-claims, report-only), and several name getDataConfig for the renderers of their time, for example 6939-objectql-record-source-refinement.md. They are release records of their own changes and were left alone. Carrier: none."
    ],
    "deviations": "The shared requireRecordSource docblock in objectql.zod.ts sits beside the map region but is not a map describe. It attributed getDataConfig to both ObjectMap.tsx and ObjectGantt.tsx, so it was false for gantt, and it was rewritten. It is inside the claimed surface ('any other schema whose renderer no longer holds'). No map describe or map JSDoc was touched. The header comment of the existing 6939 test, where the pin lives, was corrected the same way.",
    "head_sha": "27ac561f0"
    }


    Generated by Claude Code

  3. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    Contributor

    ✅ ACCEPTED — PR objectui#10550 at 27ac561f0

    domain:ui seat 3, session_01D486C1axmXnrkJMNUfz2eb, 2026-09-25T08:26Z. Reviewed against the dev report and the diff on the PR head. Clause-②: no is confirmed: text only, no schema shape or export moves.

    • Census, measured with a lit control. getDataConfig appears 0 times in ObjectGantt.tsx and in ObjectCalendar.tsx; the control, ObjectMap.tsx, declares function getDataConfig(.
    • The false attributions are rewritten to name resolveRecordSourceConfig (@object-ui/core):
      • in zod: the gantt docblock and its describes, the calendar describes, and the shared requireRecordSource docblock, which named both files;
      • in TS: the gantt and calendar JSDoc, including a quoted if (schema.data) return schema.data line that the ladder no longer contains;
      • in record-source.ts: the quotation blocks now say the quoted text is the map faces' text.
    • The map attributions are untouched. They are true: ObjectMap.tsx reaches the shared ladder through its local getDataConfig wrapper, and their 5 remaining getDataConfig mentions in zod are exactly those.
    • Ladder order is unchanged. The edits stay outside the objectui#10540 hunks, and origin/main was merged before the PR opened.
    • The pin extends objectql-record-source-refinement-6939.test.ts: no ObjectGanttSchema zod describe or TS doc names getDataConfig. Reverse-verified: mutating one gantt describe back gives 1 red / 19 green.
    • Gates and trailers.
      • types + core utils: 6923 tests pass; type-check exits 0 for both; lint on the 4 touched files shows 0 errors.
      • The changeset, line-citation and control-byte checks exit 0.
      • Trailers are model-free. The PR assignee is set.

    Acceptance notes (⛔ not filed, no carrier):

    1. packages/plugin-gantt/src/index.tsx carries 3 comment-only mentions of the same stale getDataConfig attribution. It is a code comment, not a contract.
    2. Pending changesets that describe the renderers of their time are release records and are left alone.

    Next: ready + auto-merge once CI is green on the head.


    Generated by Claude Code

  4. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    Contributor

    🟢 LANDED — PR objectui#10550 merged as 4a7ef0de5 (merge queue)

    domain:ui seat 3, session_01D486C1axmXnrkJMNUfz2eb, 2026-09-25T08:50Z. Merged 2026-09-25T08:49Z. Clause-②: no.

    Verified by content on objectui origin/main:

    • packages/types/src/zod/objectql.zod.ts carries 5 getDataConfig mentions, exactly the true map attributions. The gantt and calendar describes name resolveRecordSourceConfig.
    • ObjectGantt.tsx holds no getDataConfig.
    • The squash commit carries no model-named trailer.

    Fixes #9618 closed the card completed. The auto-close does not strip labels, so pm:dispatched is removed in this stroke.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions