Repository navigation
- Adopt OKF revision
62432a0: every timestamp is an ISO 8601 datetime with a UTC offset. A date-only or offset-less value raises the non-blockingokf/timestamp-without-offsetadvisory naming the exact field, andOkfSpecValidation.isConformantis unchanged, so a bundle that validates today still validates.okf validate --strictis the exception: it escalates advisories to failures, so it starts failing on date-only timestamps it used to accept. Runokf format --migrate-timestampson those bundles, or drop--strictuntil you have. - Compare staleness as an instant rather than a local calendar day.
stale_afterwas read as a calendar date and compared in the caller's local zone; it is now an instant, stale whennow >= stale_after. East of UTC a concept goes stale later than before — two hours in Berlin, twelve in Auckland — and west of UTC it can now become stale on the previous local day. Callers in UTC see no change. - Add
okf format --migrate-timestamps, which rewrites date-only values toT00:00:00Zand reports every change. It is opt-in, idempotent, writes nothing under--check, and leaves offset-less datetimes alone rather than guessing a zone for them. Migrating a date-onlyverified.atcan raise a concept'strust_tierfromunverifiedtohuman-reviewed, because the verification now carries a usable time; that change is visible inokf graph. - Reject impossible timestamps through one strict parser.
2026-02-30previously rolled over into March 2 and was accepted; it is now rejected everywhere. Date values still read as midnight UTC forstale_after,usage_windowandlast_modified, where a date has always been valid.generated.atandverified[].athave always required a time, so a date-only value there carries no instant and does not count as a verification.
See the full changelog for changes in earlier releases.