…ctui#3569)
No inline-grid child object in showcase carried a `datetime` field, so the
renderer defect objectui#3569 describes could not be reproduced here at all:
`showcase_expense_line` and `showcase_invoice_line` between them had exactly
one temporal column, a `date`.
`showcase_expense_line.incurred_at` adds the missing shape — the exact instant
on a receipt — sitting deliberately NEXT TO the existing `incurred_on` date.
The pair is the fixture: a renderer that folds `datetime` onto the `date`
control renders the two identically, and because `<input type="date">` emits a
bare `YYYY-MM-DD`, a user correcting the DAY writes the time out of the record.
Measured on this fixture before the objectui fix: `2026-08-05T14:30:00.000Z`
became `2026-08-06T00:00:00.000Z` after a day-only edit.
Every seeded `incurred_at` carries a NON-ZERO time on purpose — at `00:00` a
dropped time is indistinguishable from a kept one. `daysAgo(n)` is a
calendar-day function resolving to UTC midnight, so the clock is added with the
sub-day idiom the formula stdlib documents for this (`<timestamp> +
duration("Nh…")`), keeping the seed relative like its neighbours.
With seven editable fields the grid's six-column default budget parks
`incurred_on` in the column chooser; that is the intended "personalize columns"
behaviour and both columns stay reachable.
Note: the backend returns full ISO for `datetime` but flattens `date` to
`YYYY-MM-DD` on read and write — the separate gap tracked in
#6328, not addressed here.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
objectstack-ai/objectui#3569 的 framework 半边(修复 PR:objectstack-ai/objectui#4083)。
showcase 此前没有任何
inlineEdit: 'grid'子对象带datetime字段,该缺陷在 stock showcase 上无法真机复现。本 PR 给showcase_expense_line加incurred_at(datetime)并种入真实 ISO 值(含非零时间分量),作为永久夹具(2 文件 / +38 −13)。datetime,接口原样回写 ISO——夹具建好即可直接复现/回归。expense_line7 个可编辑字段对 6 列默认预算,incurred_on按声明顺序落入列选择器;刻意让 datetime 占住可见位,对象注释已写明。pnpm validate✓、typecheck 干净、app-showcase 13 files / 146 tests passed(objectui#3569 线程留档)。@objectstack/example-showcase为private,不在 fixed 组。🤖 Generated with Claude Code
https://claude.ai/code/session_017Qqyix2QcnpUC9XeYVDzx3
Generated by Claude Code