Changelog
All notable changes to kata, grouped by release. Versioned releases start with 0.5.0; earlier entries are a retroactive project history grouped by ISO week.
Unreleased¶
0.10.0¶
2026-07-11
kata 0.10.0 makes ready-work selection priority-aware, carries cross-project relationships through federation, and improves daemon and agent-workflow operations.
New features
- Added
kata next, which deterministically selects one ready issue. Explicit priorities beat unprioritized work, lower numeric priorities win, and ties retain the ready API's order. It supports the scopedreadyfilters, cross-project--allselection, compact human/agent/JSON output, and--fullissue detail. - Rendered parent/child trees in human
kata listoutput with box-drawing connectors while preserving server order in JSON and agent output. Children whose parent is outside the fetched result remain visible at the top level. - Added
kata daemon restart. It validates replacement settings before stopping the current local daemon, waits for graceful shutdown, and starts a replacement with configured or explicitly repeated listener settings. - Synchronized cross-project links across federated projects. Link events are retained when a peer has not arrived yet, then materialize after both endpoint projects join the same hub federation group regardless of project enrollment or synchronization order.
- Added
kata federation quarantine listandshowso operators can inspect project ownership, event ranges and UIDs, timestamps, and retained errors before retrying or skipping. Federation project detail in the TUI now shows the same retained quarantine errors.
Improvements
- Reported live semantic-search backfill progress through the
/healthembeddingsobject, including start and last-progress timestamps plus a smoothed processing rate and ETA once enough progress samples exist. - Improved human
kata daemon statusoutput with the daemon address, PID, binary version, and uptime. JSON status includes the database path and start time for programmatic diagnostics. - Added
kata init --with-hooksfor Claude Code workspaces and moved the attention lifecycle logic into the installedkatabinary. The generated exec-form hooks no longer depend on a repository script whose contents could change behind an already approved command. - Extended the managed block written by
kata init --with-agentswith thework.branch,work.attention, andwork.attention_msgconventions. Re-running the command refreshes an older managed block in place. - Improved
kata wait --timeoutand--poll-intervalvalidation: a bare number remains rejected as ambiguous, but the error now suggests the seconds-qualified spelling and lists supported duration units.
Bug fixes
- Fixed a federation deadlock where two projects whose first pending batches referenced each other's new issues could both become permanently quarantined. Compatible spokes also resend older push quarantines created by the former missing-peer validator without advancing the cursor; unrelated validation failures remain quarantined.
- Preserved labels in project-scoped and cross-project
kata readyresults by returning the same hydrated issue projection used elsewhere in the API. - Fixed GitHub issue and comment pagination when a
Linkheader uses GitHub's numeric/repositories/{id}/...URL form. kata rewrites that form to the bound owner/repository path before applying its credential egress guard.
Acknowledgements
- Thanks to Matthew Jacobs for parent/child list
rendering, ready-result labels, duration guidance,
work.*managed guidance, and the binary-backed attention hooks. - Thanks to Marius van Niekerk for federated cross-project link convergence, quarantine recovery and discovery, and live embedding progress reporting.
- Thanks to Wes McKinney for priority-aware
kata next, daemon restart, and daemon status improvements. - Thanks to Barret Schloerke for numeric GitHub pagination URL support.
0.9.0¶
2026-07-09
kata 0.9.0 adds coordination primitives for agent launchers and dashboards, improves scriptable metadata handling, and refreshes semantic search storage and terminal rendering.
New features
- Added
kata wait, a read-only fan-out/join command for scripts that need to block until one or more issues close or report attention throughwork.attention. It supports--until closed|attention|needs-human|stuck,--any/--all, polling control, timeouts with a dedicated exit code, and JSON output for wrappers. - Added first-class issue metadata commands and API support.
kata meta set,kata meta unset, andkata meta getread and patch issue metadata, support raw JSON values where needed, and expose optimistic concurrency through--if-match/If-Matchrevisions. - Added documented
work.*metadata conventions for branch orchestration workflows, includingwork.branch,work.attention, andwork.attention_msg, plus an agent-orchestration runbook for launchers, working agents, coordinators, and merge automation.
Improvements
- Polished human-readable
kata listandkata readyoutput with clearer status glyphs, priority chips, label chips, owner display, and summary footers while preserving machine-readable--jsonand--agentoutput. - Improved daemon HTTP API performance by gzip-compressing eligible JSON
responses when clients send
Accept-Encoding: gzip; server-sent event streams stay uncompressed so they keep streaming normally. - Moved semantic search storage from a single embeddings table in
kata.dbto a sidecar vector index built on the sharedkitvector layer, named after the database file (kata.vectors.dbfor the defaultkata.db), with chunked embeddings instead of a fixed truncation cap and generation-based model swaps: changingmodel,dims, orfingerprint_saltfills a new generation in the background and cuts over automatically. During that backfill the vector leg is unavailable —autosearches degrade to labeled lexical results and explicitsemantic/hybridrequests return 503 until the cutover — instead of losing the vector index outright; lexical search is unaffected. The sidecar is disposable derived state — safe to delete, excluded from backups, rebuilt by re-embedding. - The first daemon start after upgrading re-embeds every issue; the rebuilt
index activates immediately and serves partial semantic results while the
backfill drains (the
embeddingsbacklog in/healthreports progress). JSONL export no longer carriesissue_embeddingrecords; import of older archives that still contain them skips those records instead of failing. - Soft-deleting an issue now removes its vectors at the next reconcile, so
deleted content is never re-sent to the embedding endpoint by later index
rebuilds. Searches with
include_deletedrank soft-deleted issues lexically only; restoring an issue re-embeds it and semantic recall resumes. - Updated the TUI stack to Charm's v2 Bubble Tea, Bubbles, Lip Gloss, and Glamour packages for improved terminal rendering and input behavior.
Acknowledgements
- Thanks to Matthew Jacobs for
kata wait, issue metadata commands,work.*orchestration conventions, and human-readablelist/readypolish. - Thanks to Wes McKinney for gzip API compression, semantic search vector storage, and the TUI stack update.
0.8.0¶
2026-07-04
kata 0.8.0 adds a graph-shaped issue API for clients that need to visualize or analyze connected work, makes daemon projects easier to create without a local workspace, and records testing guidance for behavior-based validation.
New features
- Added
GET /api/v1/projects/{project_id}/issues/{ref}/graphfor reachable issue graphs. The endpoint walks parent,blocks, and related relationships from a source issue, supportsdepth=fullor a bounded hop count, can hide closed non-source issues withhide_done=true, includes cross-projectqualified_idvalues, and reports unresolved link endpoints without dropping the rest of the graph. - Added
kata projects create <name>for creating or returning an active daemon project by name without writing.kata.toml,.gitignore, or agent guidance files and without attaching a workspace alias. - Added testing guidance that discourages tautological content assertions, especially shell tests that grep scripts or config for implementation text, and favors assertions against observable behavior, persisted state, command output, API responses, events, or rendered UI.
Improvements
- Documented the name-only project creation workflow in quickstart and CLI reference docs so projects that are not tied one-to-one to a repository can be created before any workspace is initialized.
Acknowledgements
- Thanks to Marius van Niekerk for the reachable issue graph API and testing-without-tautologies guidance.
- Thanks to Wes McKinney for name-only project creation.
0.7.0¶
2026-06-29
kata 0.7.0 improves discovery, sharing, and release operations. Search can now use opt-in embeddings for semantic recall while preserving lexical behavior by default, GitHub sync gains safer daemon-side credentials and parent-link reconciliation, and federation handles larger adoption and push workloads more reliably.
New features
- Added opt-in semantic search for SQLite-backed projects. Configure an
OpenAI-compatible
/embeddingsendpoint under[search.embeddings]to make defaultkata searchrun hybrid lexical/vector search; use--lexical,--hybrid, or--semanticto force a mode. Search remains lexical with no embedding config, and automatic fallback reports degraded mode instead of silently hiding vector failures. - Added daemon-scoped GitHub sync credentials. Shared daemons can use
[[github_sync.app]]GitHub App credentials matched by(host, owner), env-token fallback is host-scoped with[github_sync].token_host, and GitHub Enterprise hosts must be explicitly allow-listed. - Added GitHub sub-issue parent-link synchronization. GitHub-sourced parent links are imported and reconciled as source-managed kata parent links, while unsupported Enterprise schemas preserve existing source-managed parent links instead of deleting them.
- Added
kata projects rewrite-authorand the matching HTTP action for project-scoped current-state identity hygiene. It rewrites exact matches in issue authors, issue owners, comment authors, and link authors before export, sharing, or federation enrollment. - Added
kata comment editand the matching HTTP route. Comment edits preserve the comment UID, author, creation time, and thread position, which makes them useful for pre-federation content redaction. - Added
kata projects purgefor permanently deleting archived projects and freeing their names, with force/confirmation guards, audit tombstones, JSON output, and federation-binding refusal.
Improvements
- Improved federation adoption by chunking baseline snapshot pushes so large existing projects can be adopted without sending one oversized push request.
- Improved federation push reliability by splitting oversized outbound batches and retrying them as smaller batches instead of quarantining only because a request was too large.
- Improved
kata updatebehavior for development builds. Update checks fetch fresh release data, show the latest official release and artifact metadata, and require--forcebefore replacing a dev build. - Published release artifacts automatically from tag pushes through the release workflow.
- Served nav-listed Markdown documentation sources from docs builds, so public
.mdURLs come from the same deployment as the rendered pages. - Refreshed release documentation and docs navigation for semantic search, GitHub sync credentials, project purge, author rewrite, and comment redaction.
Acknowledgements
- Thanks to andy-vdg for the scoped GitHub sync service credential work and GitHub parent-link synchronization.
0.6.0¶
2026-06-24
kata 0.6.0 expands kata's release and sharing surface: GitHub Issues can now feed a kata project, private-network daemon deployments have an explicit tokenless write mode for trusted single-user networks, and Windows users have a hosted release installer.
New features
- Added one-way GitHub issue sync with
kata sync github, backed by daemon-owned bindings, cursors, import mappings, status, and a poller. The first provider imports GitHub issues and issue comments through daemon-side GitHub credentials, skips pull requests, prefixes imported titles by default, and keeps GitHub as the source of truth for synced fields. - Added provider-neutral issue-sync API/storage foundations so GitHub sync state participates in backup, restore, JSONL cutover, and daemon status flows. Restored sync bindings come back disabled until explicitly re-enabled on the new host.
- Added support for running GitHub sync on federation hubs, so GitHub-origin kata events can replicate to spokes while direct GitHub sync on spokes stays rejected.
- Added explicitly enabled tokenless writes and event streams for daemons bound
to literal private IP addresses. Operators can opt in with
[auth].allow_unauthenticated_private_network_writes = trueorKATA_ALLOW_UNAUTHENTICATED_PRIVATE_NETWORK_WRITES=1; token administration remains blocked without authentication. - Added a hosted Windows PowerShell release installer at
https://katatracker.com/install.ps1, including release-asset selection, checksum verification, user-local install, and userPathupdates.
Improvements
- Improved local-first federation resilience by preserving relationship writes to newly created local issues while their create or snapshot events are still pending push to the hub. Once the hub has acknowledged the materializing event, later missing-issue responses remain visible errors.
- Tightened the pending-push federation exception to
issue_not_founderrors so broader hub route or project misconfiguration is not hidden. - Changed explicit
kata daemon startto start a background daemon by default and return after startup is confirmed;kata daemon start --foregroundremains the service-manager and hosted-deployment mode. - Sped up Windows development and release validation by moving broad CLI and daemon handler fixtures off slower git/init paths when tests only need a seeded project.
- Revamped the README and docs front page into a clearer landing page with direct install, quickstart, and feature-orientation paths.
- Expanded the 0.5.0 changelog into a fuller first-release history.
Bug fixes
- Restored TUI daemon selection recovery when switching from the daemon selector to a daemon with no registered projects. Escape now returns to the selector for that switch path while direct empty-daemon startup still shows the onboarding state.
- Preserved the federation trust boundary for delayed push scenarios without hiding real broken mappings or missing hub state after the pending local issue has materialized.
0.5.0¶
2026-06-22
kata 0.5.0 is the first versioned public preview release. It includes the core local-first issue tracker, a full terminal UI, agent-oriented workflows, hub-and-spoke federation, portable backup/import paths, and the first release automation for binary distribution.
New features
- Local-first issue tracker backed by a daemon-owned SQLite database, workspace bindings, project discovery, project aliases, stable issue ULIDs, and short refs derived from those ULIDs.
- Issue lifecycle commands for creating, listing, showing, editing, commenting, closing, reopening, deleting, restoring, and purging issues.
- Labels, ownership, assignment, claim/unclaim workflows, parent/child hierarchy, blockers, related links, cross-project links, and cross-project ready views.
- BM25-ranked issue search, look-alike duplicate protection, create idempotency keys, and safe retry behavior for automation.
- Interactive
kata tuiwith project switching, nested and flat issue lists, issue detail pages, filters, search, inline issue creation, editor-backed body/comment editing, mutations, help, split-pane layout, and realtime event refresh. - Durable event polling and SSE streams, including
kata events --tailfor NDJSON consumers and reset handling after destructive history changes. - Daemon hooks with TOML configuration, bounded queues, worker pools, timeouts, output capture, log rotation, pruning, and reload support.
- JSONL export/import for backup, migration, schema cutovers, and project restore workflows, plus importer support for Beads projects.
- Hub-and-spoke federation for shared kata projects, including enrollment, actor attribution, shared daemon catalogs, TUI daemon switching, and reversible spoke leave/rejoin.
- Remote-client mode with trusted private-network bearer auth, token-based identity, trusted-proxy actor headers, and explicit daemon selection.
- Hosted-mode daemon support for platforms that provide a
$PORTcontract, including Cloud Run, Render, Fly.io, Railway, App Engine, and similar hosts. - Windows daemon support alongside Unix socket operation, with runtime addresses published as URLs for clients.
- OpenAPI support with
kata openapi, a committed schema, generated client artifacts, and API schema version reporting in/health. - Release tooling for annotated tags, tag verification, GitHub release
artifacts, self-update discovery through
kata update --check, and installable release packages.
Improvements
- CLI ergonomics now include
kata version,kata whoami,kata health, project list/show/rename/merge/restore commands, daemon start/status/stop/log/reload commands, and--commentsupport on mutation commands. - Agent-facing output gained a stable text format, better close-justification
safeguards, claim-oriented ready filters, and
kata init --with-agentsfor writing kata guidance intoAGENTS.mdorCLAUDE.md. - TUI rendering gained hierarchy controls, labels in list/detail views, responsive narrow layouts, strict status filters, ANSI-safe text handling, no-color support, bracketed paste, opt-in mouse support, and cleaner reconnect behavior.
- Documentation now covers installation, quickstart workflows, agent usage, configuration, remote daemons, federation, hosted deployment, backup/restore, OpenAPI compatibility, SaaS issue tracker comparisons, design notes, and docs-site maintenance.
- Release builds now publish archives, checksums, Linux packages, Windows binaries, and metadata names that match the installer and updater discovery contract.
Bug fixes
- Fixed active daemon selection, stale daemon upgrades, remote-client resolution, named daemon auth isolation, and schema-skew quarantine recovery.
- Hardened credential routing so local daemon tokens, catalog daemon tokens,
and explicit
--hub-tokenpaths do not cross unintended origins. - Hardened JSONL import/export, destructive command confirmation, purge audit records, schema migration paths, and orphaned-state recovery.
- Improved SQLite contention handling with retries for transient write locks.
- Fixed percent-encoded git remote URL handling during init.
- Fixed optional OpenAPI client response modeling and generated-artifact drift checks.
- Relaxed close throttling so safeguards remain useful without blocking legitimate sibling issue closures.
Acknowledgements
- Thanks to Marius van Niekerk for TUI navigation and presentation work, Beads import and priority/schema-cutover support, SQLite contention retries, generated OpenAPI client support, issue project moves, daemon lifecycle/git helper adoption, telemetry, and module path migration.
- Thanks to Phillip Cloud for agent guidance
consolidation, hosted-mode
$PORTbinding and docs, trusted-proxy actor headers, active-daemon client handling, Unix runtime URL publication, and the storage abstraction/Postgres schema shell. - Thanks to Matthew Jacobs for
kata init --with-agents,kata openapi, the committed OpenAPI schema,/healthAPI schema version reporting, and API compatibility documentation. - Thanks to Andy Hadjigeorgiou for ready
filters, claim workflows, and the cross-project
kata ready --allview. - Thanks to Nat Torkington for Windows daemon support and percent-encoded git remote URL handling during init.
- Thanks to Jesse Vincent for consolidating
relationship editing into create/edit flags and adding
--commentsupport to mutation commands. - Thanks to Chris K Wensel for the
KATA_HTTP_TIMEOUTenvironment setting, project reset-counter support, and early opt-in remote-client mode. - Thanks to Hugh Brown for the per-actor activity digest over kata's event stream.
Project History¶
2026-W25 (Jun 15 - Jun 21, 2026)¶
- Added versioned-release planning, changelog generation, annotated tag creation, tag verification, GitHub artifact workflow, self-update command design, and release documentation.
- Added cross-project links that survive issue moves.
- Added global daemon selection and fixed named-daemon authentication precedence across CLI, health checks, and TUI paths.
- Fixed federation schema-skew quarantine recovery and improved agent recovery when follow-up comments fail after mutations.
- Relaxed close throttling so bursty but legitimate sibling closes remain possible with proper evidence.
2026-W24 (Jun 8 - Jun 14, 2026)¶
- Added reversible federation leave/rejoin flows across CLI, daemon, and TUI.
- Added issue project move support and generated OpenAPI clients.
- Documented API compatibility and added
/healthAPI schema version reporting. - Added generated API artifact drift checks before push.
- Fixed optional generated-client response objects and SQLite transient write contention handling.
- Improved
kata init --with-agentshandling forCLAUDE.md.
2026-W23 (Jun 1 - Jun 7, 2026)¶
- Added private-network remote-client mode, bearer-token safeguards, trusted proxy actor headers, simple token identity, and hosted daemon support.
- Added federation enrollment UX with actor-bound hub support.
- Added
kata init --with-agents, flat TUI issue lists, OpenAPI schema generation, API docs, and docs screenshot hydration. - Added docs infrastructure, SaaS tracker comparison material, Vercel deployment helpers, and curated design documentation.
- Added Windows daemon support, Unix runtime URL publication, daemon lifecycle adoption, telemetry, and storage abstraction groundwork.
2026-W22 (May 25 - May 31, 2026)¶
- Built the first hub-and-spoke federation workflows for enrollment, pull/push sync, quarantine, trust-boundary documentation, and local-first project adoption.
- Added shared daemon catalogs with TUI switching and trusted private-network bearer auth.
- Added cross-project ready queues, ready filters, claim workflows, and stable agent output formatting.
- Added project archive/restore behavior and safer list/import handling for larger project data.
- Hardened JSONL export/import, backup guidance, and WAL checkpoint documentation.
- Added hosted-mode support for
$PORTplatforms and consolidated agent guidance underAGENTS.md.
2026-W21 (May 18 - May 24, 2026)¶
- Switched the Go module path to
go.kenn.io/kata. - Continued TUI hierarchy, split-detail, and navigation polish.
- Prepared project restore, remote, hosted, and federation work that landed in the following week.
2026-W20 (May 11 - May 17, 2026)¶
- Added short issue refs derived from ULIDs in place of per-project numbers.
- Added close justification safeguards, anti-abuse guardrails,
--commenton mutation commands,kata version, install docs, and backup/restore docs. - Added daemon metadata, recurrence, auth, and issue move foundations.
- Fixed remote-client resolution and schema cutover behavior for pre-existing foreign-key orphans.
2026-W19 (May 4 - May 10, 2026)¶
- Added project views, cross-project issue APIs, project archival, early remote-client mode, and the first public PR contributions.
- Added TUI split-detail navigation fixes, child graph ordering, list header redesign, opt-in mouse support, marker-gutter polish, and unified detail scrolling.
- Added the Beads importer, first-class priority support, and schema cutover model.
- Added SQLite lock retries, daemon stale-socket cleanup, module version revision formatting, and percent-encoded git remote init fixes.
- Consolidated relationship editing into create/edit flags.
2026-W18 (Apr 27 - May 3, 2026)¶
- Bootstrapped kata's local-first architecture: project binding, SQLite storage, daemon API, runtime discovery, Cobra CLI root, and test tooling.
- Added issue/comment lifecycle storage, events, project initialization, health checks, lifecycle smoke tests, and daemon handler coverage.
- Added relationships, labels, ownership, ready queries, search, idempotency, soft delete, restore, purge, and purge auditing.
- Added polling and SSE events,
kata events --tail, reset handling, and hook execution with queues, worker pools, captured output, rotation, pruning, and reload. - Built the first full TUI, then expanded it with filters, search, editor integration, help, hierarchy rendering, responsive layouts, label chips, split-pane mode, and document-style detail pages.
- Added JSONL export/import, schema cutover support, stable UID references, and the federation foundation.