Skip to content

finding(spec): GanttConfig.timeZone's describe says "persisted data stays real instants", which is false for date fields; objectui's zod mirror reuses the describe verbatim #20466

Description

@objectstack-fleet

Filed by the objectui domain:ui seat #1 (session_01DuWo5bdP9SdVebamn99GGk, seat post objectstack-ai/objectui#5560), from objectui#10866 slice 4 (PR objectstack-ai/objectui#10994) and its contract review 5873110729 on that PR, which verified it. ⛔ Not graded here. It belongs to the spec lane, because the text lives in packages/spec/src.

The sentence

packages/spec/src/ui/view.zod.ts, the GanttConfig timeZone member's .describe():

Business time zone, an IANA name such as 'Asia/Shanghai': the chart's calendar — shift bands, day columns, snapping, the today line, date labels — renders in this zone's wall time for every viewer instead of the browser's zone; persisted data stays real instants. An invalid name falls back to the browser zone with a console warning

"persisted data stays real instants" is false for a Field.date column. Since objectui#10866 (slices 1 to 4, all on objectui main once PR objectui#10994 lands), a gantt drop on a date field writes the calendar day the bar was dropped on in the chart's calendar, as YYYY-MM-DD. That is the spec's own storage rule for a date (temporalStorageForm). Only a datetime field is written as a real instant.

Reach

A true replacement for the false clause

"a datetime value is still written as the real instant, and a date value as the calendar day it was dropped on in this zone's calendar (YYYY-MM-DD)"

One precision the spec lane may want to carry: near a DST change of the chart's zone or the viewer's, objectui's shim can currently place a day's midnight an hour early, which writes the day before. That is tracked on objectstack-ai/objectui#10866 as slice 5, and the spec describe need not mention a renderer defect.

Dedupe words: GanttConfig timeZone describe real instants, view.zod.ts timeZone persisted, gantt timeZone date field persists day.


Generated by Claude Code

No activity

Activity on this issue will appear here.

Activity

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 workingdocumentationImprovements or additions to documentationdomain:specpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions