Repository navigation
Commit f08e476
docs(api-contract): the real field.timestamp wire form, and field.time
The Tier 1 type-encoding table mandated `YYYY-MM-DDTHH:mm:ss.sssZ` for every
`field.timestamp`. No port emits that, and the table was wrong three ways:
1. `.sss` unconditionally. The rule every port byte-matches — pinned by
`fixtures/persistence-conformance/normalization.md` — is millisecond
resolution, TRUNCATED, trailing zeros stripped, and the fraction and its `.`
omitted entirely when the sub-second value is zero. A whole-second instant is
`2026-05-25T14:30:00Z`, never `...:00.000Z`.
2. One timestamp row, which silently contradicted ADR-0036 Wave 2 (merged):
`field.timestamp` is an instant, tz-aware BY DEFAULT, so it carries `Z`;
`@localTime: true` is the naive wall-clock opt-out and carries NO zone. The
doc never mentioned `@localTime`. Both rows now exist, and the `Z` is called
out as the discriminator between TIMESTAMPTZ and TIMESTAMP — eliding it for
the first or adding it to the second is what makes a response compare unequal.
3. `field.time` was absent from the table outright. Added (`HH:MM:SS[.fff]`).
The doc now defers to normalization.md as the single source of truth instead of
restating the rule a third time and drifting again; only the two properties that
decide byte-equality are repeated, and they are labelled as repetition.
Ruled by the maintainer after the adopter estate surfaced the disagreement: the
ports' behavior stands, the doc changes. Following the doc literally would have
emitted `.000Z` and turned TypeScript red on a scenario it currently passes.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NrWUxA6euwvnFcwKxcK6A1 parent ad24e25 commit f08e476
1 file changed
Lines changed: 19 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
256 | 258 | | |
257 | 259 | | |
258 | 260 | | |
| |||
263 | 265 | | |
264 | 266 | | |
265 | 267 | | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
266 | 284 | | |
267 | 285 | | |
268 | 286 | | |
| |||
0 commit comments