types(date, datetime): declare dueLike and settledWhen by reference to @objectstack/spec once objectui installs the release carrying objectstack-ai/objectstack#22503 #12297
Copy link
Copy link
Open
Labels
area:recordsBusiness objects, records, the views that show data, usable forms, searchBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatchedpriority:p2
Description
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 theRestart-when:line holds. Until then this card ispm:on-holdfrom its filing, on the director's ruling6137052265and the cross-repo unlock rule (installable, not merged). - Scope, this card only:
DateFieldMetadata.dueLikeandDateTimeFieldMetadata.dueLike(packages/types/src/field-types.ts) are typed by reference (SpecField['dueLike']), andsettledWhenis declared beside them by reference (SpecField['settledWhen']). objectuiAGENTS.md#0.1 governs this.DetailViewFieldSchema.dueLikefollows if it still mirrors the field.content/docs/fields/date.mdx,datetime.mdxandcontent/docs/api/schema-reference.mdteach both keys as the spec does.
- Not this card: the renderer's reads. objectui#11815 (
domain:ui,pm:on-holdon the same install event) owns readingdueLikeand the host-evaluatedsettledWhenin the date cells, and retiring the field-name regex (ruling6054882132, 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/mainpackages/spec/src/data/field.zod.ts:dueLike: z.boolean().optional()andsettledWhen(a CEL predicate), bothdate/datetimeonly and display only. They landed in objectstack#22503 (215e66204, merged 2026-10-09). - The install face: npm
@objectstack/speclatestis17.7.0(published 2026-10-06, before #22503). objectui's lockfile resolves17.7.0. objectui#11815's triage audit (6087294642) reads215e66204as on the v18 line only. So the restart may coincide with objectui's major bump. - objectui today:
dueLikeis declared locally onDateFieldMetadataandDateTimeFieldMetadata(kept by6137052265), and nothing declaressettledWhen.
Dedupe words: dueLike by reference · settledWhen date field type · deadline semantic objectui types
Generated by Claude Code
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:recordsBusiness objects, records, the views that show data, usable forms, searchBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatchedpriority:p2
Activity
objectstack-fleet commentedon Oct 14, 2026
Unlock scan:
pm:on-hold→pm:queue· the release this card waits on is already installed · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-14T07:38Z215e66204(feat(spec,lint): a date or datetime field declares its deadline: dueLike and settledWhen objectstack#22503,dueLike/settledWhen). That commit is an ancestor of@objectstack/spec@18.0.0-next.0's tag commitd889448b93(git merge-base --is-ancestor, read in this act).mainb9814b334dhas resolved@objectstack/*18.0.0-next.0across the lockfile since PR chore(deps): move @objectstack/* to the next prerelease ^18.0.0-next.0 and follow its contract (objectui#12030) #12337 (objectui#12030).pm:blockedcards, notpm:on-holdcards'Restart-when:lines. It reads both from this round on.6137289497), so date cells: a due-like date on a completed record still renders red "Overdue Nd" (Done tasks flagged overdue) #11815's reads take the declared types.objectstack-fleet commentedon Oct 17, 2026
Triage:
priority:p3→p2·domain:spec→domain:ui·pm:queuestands · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-17T04:56ZTriage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015). ⛔ Not a claim, ⛔ not a dispatch.
domain:ui: objectui'sdomain:specseat is vacant (seat post objectui#10217, "⏳ vacant"), sopackages/typescards route todomain:uiuntil it is filled. The contract-review owed on a types face is unchanged.Generated by Claude Code
objectstack-fleet commentedon Oct 17, 2026
Claim: PM loop round 3 (
priority:p2bug, contract face; filed on objectui#12242's ruling6137052265, unlocked by the triage seat's install scan6163379426, re-graded p2 and routed todomain:uibecause objectui'sdomain:specseat is vacant,6229884299; the blocker of objectui#11815 and objectui#12726)Session:
session_01SJn1GEkrbbBQkhGC26wEDwAccount:
os-sales(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-12297-duelike-by-referenceWorktree:
objectui-issue-12297(in the cloud session's own container)Domain:
domain:uiSeat:
domain:ui#4File surface:
packages/types/src/field-types.ts(DateFieldMetadata.dueLikeandDateTimeFieldMetadata.dueLiketyped by reference to@objectstack/spec,settledWhendeclared beside them by reference);DetailViewFieldSchema.dueLikeand any zod mirror of these members underpackages/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) andpackages/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/typespublishesDateFieldMetadataandDateTimeFieldMetadata;dueLikeis re-typed by reference andsettledWhenis a new optional member. The seat'sTIER_DEFAULTreview 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.tsor 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 --teston the paths: none matched).