Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
## 0.5.0

- 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-blocking
`okf/timestamp-without-offset` advisory naming the exact field, and
`OkfSpecValidation.isConformant` is unchanged, so a bundle that validates today
still validates. `okf validate --strict` is the exception: it escalates
advisories to failures, so it starts failing on date-only timestamps it used to
accept. Run `okf format --migrate-timestamps` on those bundles, or drop
`--strict` until you have.
- Compare staleness as an instant rather than a local calendar day. `stale_after`
was read as a calendar date and compared in the caller's local zone; it is now
an instant, stale when `now >= 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 to
`T00:00:00Z` and 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-only `verified.at` can raise a concept's
`trust_tier` from `unverified` to `human-reviewed`, because the verification now
carries a usable time; that change is visible in `okf graph`.
- Reject impossible timestamps through one strict parser. `2026-02-30` previously
rolled over into March 2 and was accepted; it is now rejected everywhere. Date
values still read as midnight UTC for `stale_after`, `usage_window` and
`last_modified`, where a date has always been valid. `generated.at` and
`verified[].at` have always required a time, so a date-only value there carries
no instant and does not count as a verification.

## 0.4.2

- No changes to the package. This release completes the deployment pipeline:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ Gate a repository on OKF Spec conformance with one step and no configuration:

```yaml
steps:
- uses: conceptadev/okf@v0.4.2
- uses: conceptadev/okf@v0.5.0
```

The action downloads the released `okf` archive for the ref in `uses`, unpacks
Expand Down
2 changes: 1 addition & 1 deletion lib/src/version.dart
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/// The package version reported by `okf --version` and the MCP server.
const okfPackageVersion = '0.4.2';
const okfPackageVersion = '0.5.0';
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: okf
description: A format-first Dart toolkit for reading, validating, writing, indexing, and graphing Open Knowledge Format bundles.
version: 0.4.2
version: 0.5.0
repository: https://github.com/conceptadev/okf
issue_tracker: https://github.com/conceptadev/okf/issues
topics:
Expand Down
Loading