Skip to content

types(date, datetime): declare dueLike and settledWhen by reference to @objectstack/spec once objectui installs the release carrying objectstack-ai/objectstack#22503 #12297

Open

Description

@objectstack-fleet

Filing class: ① product defect, class (b): a contract the protocol declares that objectui's typed authoring face does not yet carry by reference. Filed on objectui#12242's ruling 6137052265 (execution parameters), at PR objectui#12293's merge. Reach: named producers. Three objectstack example apps author dueLike: true on published objects (examples/app-crm activity.object.ts, examples/app-showcase task.object.ts, examples/app-todo task.object.ts).

Restart-when: objectui's installed @objectstack/spec carries objectstack-ai/objectstack#22503 (FieldSchema.dueLike, commit 215e66204)
Restart-touch: pnpm-lock.yaml

  • Who acts: the domain:spec @ objectui seat (objectui#10217), when the Restart-when: line holds. Until then this card is pm:on-hold from its filing, on the director's ruling 6137052265 and the cross-repo unlock rule (installable, not merged).
  • Scope, this card only:
    • DateFieldMetadata.dueLike and DateTimeFieldMetadata.dueLike (packages/types/src/field-types.ts) are typed by reference (SpecField['dueLike']), and settledWhen is declared beside them by reference (SpecField['settledWhen']). objectui AGENTS.md #0.1 governs this.
    • DetailViewFieldSchema.dueLike follows if it still mirrors the field.
    • content/docs/fields/date.mdx, datetime.mdx and content/docs/api/schema-reference.md teach both keys as the spec does.
  • Not this card: the renderer's reads. objectui#11815 (domain:ui, pm:on-hold on the same install event) owns reading dueLike and the host-evaluated settledWhen in the date cells, and retiring the field-name regex (ruling 6054882132, letter D). That card can type its reads against this one's declaration, so this card lands first when both restart.
  • Dedupe: two objectui issue searches, closed included. "dueLike settledWhen deadline date field" returned 2 hits: objectui#11815 (open, the reader half, above) and objectui#11676 (closed, the timeline's overdue bucketing). "field metadata kept positions runtime-only keys hand-off" returned 0 hits; the control ("dueLike settledWhen …" with the known card objectui#11815) hit. Neither hit carries the types declaration.

The reading (this seat, on the day of filing)

  • The protocol: objectstack origin/main packages/spec/src/data/field.zod.ts: dueLike: z.boolean().optional() and settledWhen (a CEL predicate), both date / datetime only and display only. They landed in objectstack#22503 (215e66204, merged 2026-10-09).
  • The install face: npm @objectstack/spec latest is 17.7.0 (published 2026-10-06, before #22503). objectui's lockfile resolves 17.7.0. objectui#11815's triage audit (6087294642) reads 215e66204 as on the v18 line only. So the restart may coincide with objectui's major bump.
  • objectui today: dueLike is declared locally on DateFieldMetadata and DateTimeFieldMetadata (kept by 6137052265), and nothing declares settledWhen.

Dedupe words: dueLike by reference · settledWhen date field type · deadline semantic objectui types


Generated by Claude Code

Activity

  1. added
    bugSomething isn't working
    domain:specobjectui spec stream: fix lands on packages/types, schema corpus or spec pin coupling — spec lane
    area:recordsBusiness objects, records, the views that show data, usable forms, search
    on Oct 13, 2026
  2. objectstack-fleet commented on Oct 14, 2026

    @objectstack-fleet
    ContributorAuthor

    Unlock scan: pm:on-hold → pm:queue · the release this card waits on is already installed · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-14T07:38Z

  3. objectstack-fleet commented on Oct 17, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: priority:p3 → p2 · domain:spec → domain:ui · pm:queue stands · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-17T04:56Z

    Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015). ⛔ Not a claim, ⛔ not a dispatch.

    • Why p2: it is the blocker of objectui#11815, now p2 with measured reach (see objectui#12726). At p3 it would hold a p2 behind a card the fleet never runs.
    • Why domain:ui: objectui's domain:spec seat is vacant (seat post objectui#10217, "⏳ vacant"), so packages/types cards route to domain:ui until it is filled. The contract-review owed on a types face is unchanged.

    Generated by Claude Code

  4. added
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    and removed
    domain:specobjectui spec stream: fix lands on packages/types, schema corpus or spec pin coupling — spec lane
    on Oct 17, 2026
  5. objectstack-fleet commented on Oct 17, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 3 (priority:p2 bug, contract face; filed on objectui#12242's ruling 6137052265, unlocked by the triage seat's install scan 6163379426, re-graded p2 and routed to domain:ui because objectui's domain:spec seat is vacant, 6229884299; the blocker of objectui#11815 and objectui#12726)
    Session: session_01SJn1GEkrbbBQkhGC26wEDw
    Account: os-sales (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-12297-duelike-by-reference
    Worktree: objectui-issue-12297 (in the cloud session's own container)
    Domain: domain:ui
    Seat: domain:ui#4
    File surface: packages/types/src/field-types.ts (DateFieldMetadata.dueLike and DateTimeFieldMetadata.dueLike typed by reference to @objectstack/spec, settledWhen declared beside them by reference); DetailViewFieldSchema.dueLike and any zod mirror of these members under packages/types/src/zod/ only if they still mirror the field; content/docs/fields/date.mdx, content/docs/fields/datetime.mdx, content/docs/api/schema-reference.md; tests beside; one .changeset/12297-*.md (@object-ui/types). ⛔ The renderer's reads (objectui#11815) and packages/components/src/ui/** stay out. Stop on breach; explain in the report.
    Container & model: S, mode:cloud, model: opus (cloud on the maintainer's stance 「可以的话,ui 后续开发尽量用云 session,并且要求截图给我看」; lane scope on 「你也可以接ui车道的卡」; batch 3 on 「当前任务处理完,后续并发降到3」, this session's chat, 2026-10-16)
    Clause-②: yes
    Clause-② reason: @object-ui/types publishes DateFieldMetadata and DateTimeFieldMetadata; dueLike is re-typed by reference and settledWhen is a new optional member. The seat's TIER_DEFAULT review comes before ready.
    Responsibility: n/a — a protocol key objectui's typed authoring face does not carry by reference
    Thread-read: 6229884299
    Serial constraints cleared: no open objectui PR touches packages/types/src/field-types.ts or the three docs pages (read at dispatch). objectui#11815 (the reader half) stays on hold and types its reads against this card's declaration after it lands. Not a governed surface (check-governed-queue-guard.mjs --test on the paths: none matched).

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 seatpm:dispatchedpriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions