You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
driver-sql (Postgres): days written a day early into a datetime-to-date column before #32851 stay a day early — repair or not #33001
Filing gate: ① open question of the #32851 os-dev report (6842768512), split out so PR #33000 lands without it. ⛔ Not a claim; triage sets the grade and lane, and decides whether this needs the maintainer.
What
PR #33000 (#32851) makes a Field.date that a datetime to date publish left on a Postgres timestamptz column write, filter and bucket as its UTC day, the day the read already presents. Days written into such a column before that fix, on a Postgres server whose zone is ahead of UTC, were stored as the previous day's instant (2026-11-12 stored as 2026-11-11T16:00:00Z at +08:00). After the fix they still read, filter and bucket as the previous day, now consistently on every door.
A repair is a data change: shift those values by the server's offset at write time. The column alone cannot tell such a row from a value written while the field was a datetime at the same instant, so a blanket shift would move correct rows too. The dev's recommendation: no automatic repair; an operator-run repair if a customer reports it.
Decision wanted
Whether the platform ships a repair (a migration, an operator command, or a documented manual query), or records "not repaired" in the release notes for the affected case (Postgres, server zone ahead of UTC, a field published datetime to date, rows written between that publish and the fix).
Blocked-by: #32851
Dedupe: is:issue is:open date one day early repair migration: only #32851.
The repair is a change to customer data: shift stored values by the server's offset at write time. A migration or command that rewrites stored rows must come to the maintainer as a decision card with its options (an opt-in CLI repair, a documented manual query, or leaving the rows), before any PR writes data. Detection and documentation can proceed in the lane.
Ruling: no automatic repair of Postgres days written a day early before #33000. The release notes of the version carrying #33000 state it, with how an operator can find and correct affected rows. Area A4 writes that text; the card closes when it lands.
Claim: area-lease pilot #33059, area thread A4 (data layer) · p2 · maintainer ruling 15:05Z (no automatic repair; release-notes text on finding and correcting affected rows), delivered as a changeset in the #33002 PR
Session: session_016WV4cw787kMeaX7oyz7DDC
Account: os-elon-musk
Branch: claude/project-thread-lta7t3
Worktree: objectstack-a4
Domain: domain:server
Seat: domain:server#5
File surface: packages/drivers/driver-sql/src/ (date-on-instant-column.ts, sql-driver-rotation.ts, sql-driver-filter-helpers.ts, sql-driver-sqlite-serialisation.ts, the #32851 matrix test), two root changesets. Stop on breach.
Container & model: S, mode:thread, model: default, effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: a date field still on a date-time column filters as its calendar day on SQLite and MySQL; the operator note for Postgres days stored early before 18.4.0 (PR #33270)
Thread-read: none
Premise: measured on SQLite at e540baf8 before the change (PR #33270 body)
Serial constraints cleared: no other open PR of this area touches driver-sql
Claim: area-lease pilot #33059, area thread A4 (data layer) · p2 · maintainer ruling 15:05Z (no automatic repair; release-notes text on finding and correcting affected rows), delivered as a changeset in the #33002 PR
Session: session_016WV4cw787kMeaX7oyz7DDC
Account: os-elon-musk
Branch: claude/project-thread-lta7t3
Worktree: objectstack-a4
Domain: domain:server
Seat: domain:server#5
File surface: packages/drivers/driver-sql/src/ (date-on-instant-column.ts, sql-driver-rotation.ts, sql-driver-filter-helpers.ts, sql-driver-sqlite-serialisation.ts, the #32851 matrix test), two root changesets. Stop on breach.
Container & model: S, mode:thread, model: default, effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: a date field still on a date-time column filters as its calendar day on SQLite and MySQL; the operator note for Postgres days stored early before 18.4.0 (PR #33270)
Thread-read: none
Premise: measured on SQLite at e540baf8 before the change (PR #33270 body)
Serial constraints cleared: no other open PR of this area touches driver-sql
Activity
objectstack-fleet commentedon Nov 13, 2026
triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH
Path: none
Triage: first touch →
domain:server· p2 ·pm:queue· 2026-11-13T03:46Z⛔ Not a claim.
datetime→dateon Postgres with the server zone ahead of UTC (rare) · rows written before PR fix(driver-sql): a date field still on a Postgres timestamptz column reads the day it was written #33000 · stored a day early · measured by the driver-sql (Postgres): after publishing a datetime field changed to date, a date written reads back one day early when the server time zone is ahead of UTC (the column stays timestamptz) #32851 dev.Generated by Claude Code
objectstack-fleet commentedon Nov 14, 2026
domain:server#5 · os-elon-musk · session_016WV4czXwx6JtQPvacrzzUw
Ruled · maintainer · 2026-11-14T15:06Z
Maintainer, verbatim (project thread, 2026-11-14, answering the seat's recommendation list): 「以上都同意」.
Ruling: no automatic repair of Postgres days written a day early before #33000. The release notes of the version carrying #33000 state it, with how an operator can find and correct affected rows. Area A4 writes that text; the card closes when it lands.
Generated by Claude Code
objectstack-fleet commentedon Nov 14, 2026
domain:server#5 · os-elon-musk · session_016WV4cw787kMeaX7oyz7DDC
Claim: area-lease pilot #33059, area thread A4 (data layer) · p2 · maintainer ruling 15:05Z (no automatic repair; release-notes text on finding and correcting affected rows), delivered as a changeset in the #33002 PR
Session:
session_016WV4cw787kMeaX7oyz7DDCAccount:
os-elon-muskBranch:
claude/project-thread-lta7t3Worktree:
objectstack-a4Domain:
domain:serverSeat:
domain:server#5File surface:
packages/drivers/driver-sql/src/(date-on-instant-column.ts, sql-driver-rotation.ts, sql-driver-filter-helpers.ts, sql-driver-sqlite-serialisation.ts, the #32851 matrix test), two root changesets. Stop on breach.Container & model:
S,mode:thread,model: default,effort: highClause-②: no
Metadata-protocol: none
Responsibility: a
datefield still on a date-time column filters as its calendar day on SQLite and MySQL; the operator note for Postgres days stored early before 18.4.0 (PR #33270)Thread-read: none
Premise: measured on SQLite at
e540baf8before the change (PR #33270 body)Serial constraints cleared: no other open PR of this area touches driver-sql
objectstack-fleet commentedon Nov 14, 2026
domain:server#5 · os-elon-musk · session_016WV4cw787kMeaX7oyz7DDC
Claim: area-lease pilot #33059, area thread A4 (data layer) · p2 · maintainer ruling 15:05Z (no automatic repair; release-notes text on finding and correcting affected rows), delivered as a changeset in the #33002 PR
Session:
session_016WV4cw787kMeaX7oyz7DDCAccount:
os-elon-muskBranch:
claude/project-thread-lta7t3Worktree:
objectstack-a4Domain:
domain:serverSeat:
domain:server#5File surface:
packages/drivers/driver-sql/src/(date-on-instant-column.ts, sql-driver-rotation.ts, sql-driver-filter-helpers.ts, sql-driver-sqlite-serialisation.ts, the #32851 matrix test), two root changesets. Stop on breach.Container & model:
S,mode:thread,model: default,effort: highClause-②: no
Metadata-protocol: none
Responsibility: a
datefield still on a date-time column filters as its calendar day on SQLite and MySQL; the operator note for Postgres days stored early before 18.4.0 (PR #33270)Thread-read: none
Premise: measured on SQLite at
e540baf8before the change (PR #33270 body)Serial constraints cleared: no other open PR of this area touches driver-sql