ochakai 0.10.1
A web-UI and operations release: the knowledge tree becomes the UI's primary navigation, the base-URL setting is gone, and concurrent server starts no longer race on database migrations (#91).
The tree is the navigation (design doc 0014 §2.2 revision)
With path addressing (0.10.0), an entry's id is its place in the hierarchy — so the folder tree is no longer a tab beside search but a persistent left sidebar, Confluence-style.
- Opening an entry (deep links included) auto-expands its ancestor directories and highlights it, so the tree always shows where you are.
- The tree refreshes after create, delete, and status changes, keeping its status badges fresh.
- Home is a tree-first landing with a search box; full search (filters, the verification-age feed) lives under Search. The legacy
#/browseroute redirects home. - On narrow screens the sidebar collapses to a disclosure, like the search filters.
- Export OKF moved from the top bar to the home page's quick links — same
/api/v1/export, just out of prime real estate.
The page talks to its own origin (design doc 0006 revision)
The base-URL chip (top right, backed by localStorage) is removed. Both serving paths — ochakai ui on loopback and ochakai serve-ui deployed — proxy /api/v1 with the right credentials, so a configurable base URL could only break CORS or authentication, and a mistyped value persisted until cleared. Opened as a plain file (development), the page targets a local ochakai serve.
Concurrent starts no longer race on migrations
Migrate now serializes across processes with a Postgres advisory lock. Previously, several instances starting at once against an unmigrated database (a scaled Cloud Run deployment, parallel CI test binaries) could each see a migration as unapplied and apply it twice — the second failing against the schema the first had already changed, or worse, double-rewriting ids on a database with data. A regression test races four migrators from zero on every run.
Breaking changes
ochakai serve-uirequiresOCHAKAI_URL. The static-page-only mode (no upstream, user-entered base URL) made no sense once the page stopped accepting a base URL, so serve-ui now fails fast without it. Deployments following the deploy guide already set it.
Container image
docker pull ghcr.io/na0fu3y/ochakai:0.10.1
gh attestation verify oci://ghcr.io/na0fu3y/ochakai:0.10.1 -R na0fu3y/ochakai