Skip to content

ochakai 0.12.1

Choose a tag to compare

@na0fu3y na0fu3y released this 20 Jul 15:28
Immutable release. Only release title and notes can be modified.
e54ad49

A patch release finishing what 0.12.0 started: the two behaviors it changed each had a gap where the rest of the system had not caught up. No schema changes, no migrations, no breaking changes.

Case-insensitive type filters (design doc 0023 §3.3)

0.12.0 made types the OKF spelling verbatim (BigQuery Table, not a slug) and promised matching would be case-insensitive so the spaces it introduced wouldn't turn every --type into an exact-spelling puzzle. Only the write side delivered: a type filter compared byte-for-byte against the stored spelling, so type=metric and type=METRIC returned zero results against entries stored as Metric.

The matching half is now implemented. domain.FoldType (NFC + trim + lowercase) is the single comparison key, and the store folds the column with SQL lower()type=metric, type=METRIC, and type=Metric all find Metric, and --type "bigquery table" finds BigQuery Table. Free types fold the same way, since 0023 §3.3 widens the tolerance to every entry point, not just the recommended eight. The stored spelling is still exactly what the writer used. This also closes a smaller gap in the same path: type filters were not NFC-normalizing, unlike every other byte-compared key.

Entry links render as links in the Web UI (design doc 0024)

0.12.0 made the body's markdown links the source of an entry's edges, but the Web UI's markdown renderer still only linkified http(s) targets. A link to another entry — [revenue](/metrics/revenue.md), a bare ochakai://metrics/revenue, an autolink — showed as plain text in the body even though it appeared in the Links tab. Now those render as in-app links: bundle-absolute, relative (against the entry's own directory), and canonical-URI forms all resolve, following the same rules the server's extraction does, so what reads as a link is exactly what became an edge.

Alongside this, a pre-existing renderer bug is fixed: markdown inside an inline code span (`[x](/y.md)`) was being rendered as markup. Now emphasis, images, and links apply outside code spans only — matching how the server skips code when extracting links.

Upgrade

Drop-in from 0.12.0. No migrations run and no request or response shapes change; type filters simply match more inputs than before, and the Web UI renders body links it previously left as text.