v8.4.0 — Locia: separation of duties
- Honest SoD on close —
loci focus --as <actor>
records who implemented a focus; loci close --as <actor> records
who reviewed it. The close gate refuses when the closer is the implementer
(unless forced), so a review can't be self-signed.
v8.3.0 — Locia: role registry
- Registrar — a versioned registry of role definitions
(
loci registrar list|get|seed|version|ratify|deprecate|retire|fork).
A role can't ratify its own revision — ratification is a human act — and a fork
keeps a provenance edge back to its origin.
v8.2.0 — Locia: reconcile on close
loci reconcile — at course close, compares the
beams that were planned against those actually delivered and
reports the drift, so a course closes on evidence rather than vibes. Adds the
close/boundary CLI and the loci freight apply intake front.
v8.1.0 — Locia: charter (upper contour)
- Charter / Ustav — a ratifiable charter (goal, scope, success
criteria) that gates a course before work starts. The keystone of governing an
agent from outside: nothing runs until the thread is chartered.
v8.0.2 — bugfixes
- Round-trippable task ids — the server now resolves an
unambiguous short id prefix (the 8-hex form
--ufn prints) for
get/move/update/assign,
so MCP, the SDKs, the PWA, and raw gRPC round-trip a listed id without a
second lookup. Ambiguous prefixes error instead of guessing.
releases verify now accepts
<project> <version> (as create/list
do), not only a release UUID.
- No more zombie CI runs — a runner reaps a step's whole
process group on every completion, not just on cancel, so a backgrounded
grandchild (a stray trainer, a leaked daemon) can't outlive its step.
v8.0.1 — Locia thread authoring
loci apply — author a project's guiding
thread from a manifest, plus set-star / set-course
to point the ★ Star and ⟋ Course. Client-side; no server change.
v8.0.0 — Locia: guiding-thread PM for AI agents
- Locia — a project-management discipline for work run by an
AI agent, built into the platform. It treats PM not as coordinating labour
but as allocating a forgetful executor's attention over a lossless store,
governed from outside: one ★ Star → one
⟋ Course → one ▼ Focus (WIP=1).
- LociaService gRPC +
kovanex-ctl loci slice —
the server derives the authoritative grounding slice (star / course / the one
in-progress focus + scope + fired invariants) from the store and emits it as
UFN, so an agent grounds the same truth every session.
- Server-side WIP=1 — the one-focus-on-the-tip invariant is
enforced by the board (audit mode by default, flip to enforce), and the Beam
object model overlays scope + bound invariants + DoD on each task.
- The open standard lives at locia.kovanex.dev.
v7.15.0 — security hardening
- Vault privilege de-escalation — a non-admin role no longer
receives an admin token; access is readonly or denied.
- Git RBAC — real owner / admin / public repo-access checks
(audit mode by default, flip to enforce, self-lockout-safe).
- Opt-in TLS verification — a CA-aware client TLS path
(
KOVANEX_TLS_VERIFY / KOVANEX_CA_FILE) across the
SDK, MCP, logs, and runner-vault clients.
v7.14.0 — config hardening
- Honest CI — retired the dead-infra pipeline jobs so a green
run means green; test + no-Russian lint run on a live runner, deploy is
tag-gated.
- Single-source host config — one
internal/config
is the source of truth for hosts, ports, and paths; no more scattered
hardcoded literals rediscovered on every relocation.
v7.13.0 — durable logs & runner reliability
- Durable pipeline logs — a job's output is captured to a
bounded on-disk ring on the runner (with rotation), so logs survive a server
or runner restart.
kovanex-ctl pipelines logs now reads from the
store instead of a live-only stream, with a --ufn event layer
(job.start / step.done / job.done).
- Crash-safe runners — a runner owns a local durable queue:
a job survives a server or runner crash and its result reconciles on
reconnect, so nothing is lost. Stale runners expire from the pool so
online is honest, cancel tears down the whole process group (no
zombies), and the macOS runner autostarts durably.
- UFN everywhere in ctl — one consistent
--ufn / --json path across runners,
status, and more.
v7.11.0 — UFN v2
- UFN v2 everywhere — a compact one-line record format with
nesting and ligatures;
kovanex-ctl --ufn list economy plus nested
get, and the MCP server now speaks UFN with a compact-JSON fallback.
- Leaner reads —
--json output trimmed ~36%, so
agents burn even fewer tokens scanning lists.
- MCP tool annotations — read-only / destructive / idempotent
hints, plus short-id (
#number / 8-hex) addressing in tool calls.
v7.10.0 — vault sealed-boot
- Secrets from the vault — the server loads its own secrets
(JWT, AI keys) from
sys/* on unseal; the only bootstrap secret on a
box is the unseal key.
- Sealed-state lock — while sealed, human login is refused and
only agent (device-PSK) auth works — exactly enough to unseal.
- Break-glass super-login — a bootstrap admin can sign in while
sealed to perform the first unseal, then everything flows through the vault.
v7.9.0 — developer experience
- Human/agent addressing — reference tasks by
#number
or a short id prefix, and projects by name/slug
(KOVANEX_PROJECT), not just 36-char UUIDs. Unknown project is now a
hard error instead of a silent empty list.
--retry (default 3) — the CLI rides out transient
gRPC flaps automatically; no more hand-rolled retry loops.
--json / --ufn everywhere — structured
output across all the read commands (repos, pr, agents, vault, projects, messages…).
- Safer + fuller surface — flag-as-value validation (no more a
project literally named
--help), tasks delete, and
tasks start (create → in progress in one step).
- MCP parity — releases, vault, audit, and PR tools added.
AGENTS.md — a one-page orientation for agents.
v7.8.1 — UFN output mode
kovanex-ctl --ufn — a compact, flat
one-line-per-record output for the list commands (tasks/pipelines/releases/
problems), ~89% smaller than JSON on big lists, so agents burn far fewer
tokens reading them. JSON stays the default; --ufn is opt-in and
falls back to JSON on single-object reads.
v7.8.0 — agent ergonomics
- Structured
--json on the agent-facing read
commands (tasks list/get, board, pipelines list/get, releases list, problems
list/get) — no more scraping pretty tables.
- Pipeline job ids in
pipelines get --json, so
pipelines logs <pipeline> <job> is reachable directly.
- MCP fixed & widened — fixed a startup crash that made the
MCP server non-functional, and added
notes_* (knowledge graph) and
problems_* (root-cause) tools. Read more →
v7.7.0 — agent skill library
- Nine downloadable, agent-native skills over Kovanex —
kovaflow (task discipline), kovaci (CI triage),
kovasite (publish to site), kovaship (cut releases),
kovaproblem (root-cause graph), kovaprobe (cluster
health), kovapr (PR review), kovaudit (audit), and
kovadocs (embedded docs) — each shipped as a SKILL.md + a versioned
bundle.
v7.6.1 — only-mode crash fix & PWA proto refresh
- Fixed a server crash in single-store (
KOVADB_MODE=only)
deployments: the kanban/project services were wired to the detached
external-DB task store instead of the embedded one, so loading the board
faulted. Found while building the new screenshots on a clean local
instance; patched same day.
- Refreshed the proto schema bundled into the PWA so the Knowledge Base
and Problems views resolve their message types correctly.
v7.6.0 — UI/PWA, Knowledge Base & client binaries
- Knowledge Base & Problems in the UI — the PWA and the
native desktop app gained Knowledge (notes + backlinks + search) and
Problems (root-cause) views.
- kovamem skill — graph-backed agent memory over the KB,
shipped in
skills/kovamem/ and documented at /skills.
- Client binaries —
kovanex-ctl and
kovanex-mcp for macOS (Apple Silicon + Intel) and Linux at
/download.
- Website rewritten around kovadb (the embedded store replaced the
external database in v7.4).
v7.5.1 — vector store crash fix
- Hardened semantic search against a crash on vector re-index (the HNSW
engine could fault when an existing vector was replaced). The vector map
is now the source of truth with the index as a rebuildable, crash-safe
cache. Found by dogfooding; patched same day.
v7.5.0 — semantic search, problem management, CI gate
- Semantic vector search — k-NN over an embedded HNSW
index across tasks & notes. Agent-native: the AI supplies the
embeddings over the CLI; no bundled model, no external embeddings API.
- Problem management — root-cause Problems that link the
tasks/bugs they explain, answered as kovadb graph queries.
- CI no-Russian gate — a diff-scoped lint that blocks
builds on newly introduced non-English source.
v7.4.0 — kovadb migration
- Migrated off the external database onto kovadb — an
embedded, pure-Go document + graph + vector store. One file now backs
every domain; there is no separate database process to run.
- The knowledge base (Markdown vault + backlink graph, Obsidian-compatible)
landed in this line.
Earlier history (v1.0–v7.1) →