Skip to content

Releases: spectacular-voyage/kato

v0.2.10

23 Mar 20:03
536d58f

Choose a tag to compare

v0.2.10 is a focused polish release: it tightens how Kato reports
daemon/web liveness, makes expired web auth fail closed instead of leaving
stale live data on screen, smooths out repeated Sessions-page create actions,
and makes the split root test flow easier to read and debug.

Primary changes:

  • changed daemon/web liveness reporting so stale daemon heartbeat now renders
    as unresponsive instead of still looking running, and kato web status
    now reports a definitively dead web process as stopped while keeping the
    last heartbeat only as diagnostic detail
  • updated the compact web header to match that liveness wording and removed the
    separate HEARTBEAT row now that heartbeat freshness is folded into daemon
    state
  • changed web auth-expiry handling so live/API polling treats 401 as an
    expired session, redirects the current tab to /login, and propagates that
    expiry across sibling tabs via BroadcastChannel with localStorage
    fallback
  • kept page-route auth behavior distinct from API behavior: page requests still
    redirect to /login, while API/live routes now fail with 401 instead of
    quietly continuing with stale rendered data
  • made the Sessions-page New capture and New recording popovers remember
    the last submitted workspace in browser storage and reuse it as the default
    next time, unless the current page filter already pins a workspace
  • kept the remembered Sessions workspace behavior conservative by ignoring
    blank/stale stored ids and only updating the remembered default on actual
    create submission, not on canceled popover browsing
  • improved the split root test workflow so deno task test and
    deno task test:coverage now run through scripts/run-root-test-slices.ts
    with structured per-slice summaries plus a combined summary, while keeping
    explicit test:parallel-safe and test:env entrypoints available

Upgrade notes:

  • if you were scraping human-readable CLI status text, update for the wording
    change: stale daemon heartbeat is now unresponsive, and kato web status
    now says stopped with optional last heartbeat diagnostics instead of
    stale status; for automation, prefer JSON output over text parsing
  • expired web auth is now intentionally fail-closed across tabs; once one tab
    detects expiry, sibling tabs should converge on /login instead of keeping
    stale live views open
  • Sessions create popovers now default to the last successfully used workspace
    for that browser unless a page-level workspace filter is active

v0.2.9

18 Mar 20:25
735130d

Choose a tag to compare

v0.2.9 expands the browser-side operator workflow in two directions: richer
workspace labeling and a more durable, easier-to-scan Recordings page.

Primary changes:

  • added optional workspace display labels that render as
    <alias> (<displayName>) across the web UI when a meaningful label is set
  • added display-label entry during workspace registration from both the CLI and
    the Workspaces page
  • added Workspaces-page editing for display labels plus per-workspace preferred
    usernames, while keeping username persistence in kato-user-config.yaml
  • reformatted kato workspace list to show clearer per-workspace blocks and
    include display-label information
  • changed the Recordings page to show the latest state per output file instead
    of expanding every recording cycle
  • persisted the last successful write time for each recording cycle so
    Recordings recency survives daemon restarts and stale/live gaps instead of
    depending entirely on live daemon state
  • added inline [stop] controls for engaged recording rows and [re-arm]
    controls for stopped rows on the Recordings page
  • polished Recordings rows so file, timestamps, workspace, and session metadata
    render on separate lines with the filename de-emphasized
  • made Recordings session titles clickable alongside the short id and renamed
    idle engaged rows to armed for recording with [disarm] actions
  • sorted Recordings rows by most recent write, stop, or start activity instead
    of grouping them by state first
  • made fresh web-created captures show as recording immediately after the
    initial snapshot write, even before daemon live-session state catches up
  • fixed a daemon/web metadata race that could make a freshly created capture
    disappear from Sessions/Recordings until the next metadata reconciliation
  • made Recordings-page Re-arm reuse the exact saved file, fail fast if the
    file is missing, and preserve write-policy denial as a distinct error
  • enforced single-writer-per-file behavior when starting or restarting a
    recording, so an already-engaged writer on the same path is stopped first

Upgrade notes:

  • the Recordings page is now a per-file status/control surface rather than a
    cycle-history view; older cycles remain persisted but are not each rendered
    as their own row
  • Recordings recency no longer depends on matching live daemon status; last
    successful write times now keep per-file ordering stable across restarts
  • Re-arm is intentionally conservative: it reopens the exact saved file and
    refuses to continue if that file no longer exists or no longer passes policy
  • capture behavior remains fresh-file-only and does not reuse existing output
    files

v0.2.8

17 Mar 22:00
d15defd

Choose a tag to compare

v0.2.8 adds the first browser-based workflow for starting and stopping
workspace-scoped recordings from the Sessions page.

Primary changes:

  • added New capture and New recording actions on the Sessions page with a
    workspace chooser popover
  • made New recording create the output file immediately, including
    frontmatter when enabled, while conversation content begins on the next event
  • added engaged-recording summaries on Sessions rows with deep links to the
    matching workspace and Recordings entry
  • added inline [stop] controls for engaged recordings plus a session-level
    [stop all] control
  • improved Sessions-page UX with clearer operator labels, button tooltips, and
    pending stop feedback

Upgrade notes:

  • Sessions now exposes stop controls directly; stopping from the Sessions page
    only affects engaged recordings
  • stopped recordings remain available through the Recordings page history view

v0.2.7

14 Mar 14:11
36f2ed1

Choose a tag to compare

v0.2.7 is a small but useful ergonomics release: faster local web lifecycle
control, safer workspace bootstrap for shared repos, and a first pass at
website/brand groundwork.

Primary changes:

  • added kato web restart so the local web console can be bounced with one
    command
  • changed kato workspace register to restart the daemon automatically when
    registration expands allowedWriteRoots, with --no-restart available to
    opt out
  • fixed the macOS-reported workspace register alias=<alias> compatibility
    bug by recognizing bare alias=... tokens instead of treating them as
    positional arguments
  • changed kato workspace init to generate and write workspaceId
    immediately, reducing first-register churn in shared repos
  • made Summary metrics clickable so Sessions, Recordings, and Workspaces are
    one click away
  • added initial website/brand groundwork, including static logo/wordmark
    assets, asset helpers/redirects, and new planning/task-template docs for
    site work

Upgrade notes:

  • if you previously relied on registering a workspace without restarting the
    daemon, use kato workspace register --no-restart to preserve that behavior
  • new workspaces initialized with kato workspace init now get a committed
    workspaceId immediately; existing configs without one still backfill on
    first register
  • kato web restart is now the quickest way to reload the local web operator
    console after config or code changes

Acknowledgements:

  • this cut combined CLI/runtime tightening with website planning and continued
    iteration using Codex and CodeRabbit

v0.2.6

13 Mar 01:56

Choose a tag to compare

v0.2.6 turns the new binary distribution pipeline into a usable public release
path.

Primary changes:

  • switched the npm wrapper package to @spectacular-voyage/kato
  • added native-runner npm install smoke on Linux, Windows, macOS x64, and
    macOS arm64
  • fixed packaged Windows kato start so the daemon launcher no longer passes
    an empty PowerShell ArgumentList
  • added GitHub Release asset upload/update support to the manual release
    workflow so per-platform archives and checksums ship alongside npm packages

Upgrade notes:

  • install or update with npm install -g @spectacular-voyage/kato
  • npx @spectacular-voyage/kato@latest ... is now the zero-install path for
    one-off use
  • Windows users should prefer v0.2.6 or later for packaged kato start

Acknowledgements:

  • release hardening in this cut came from real Windows/npm smoke testing plus
    continued Codex and CodeRabbit iteration on the packaging flow

v0.2.3

11 Mar 19:00
3822b32

Choose a tag to compare

Privacy-and-maintenance release that separates live session ingestion from
persisted twin history, moves twin management out of primary navigation, and
hardens the new web/runtime flows around snippet reveal and cleanup.

Highlights

  • Sessions is now the live provider-session inventory, while persisted twin
    troubleshooting and cleanup now live under Maintenance.
  • The top-level Twins page is gone; twin status, create/update actions, and
    per-row delete now live on the Maintenance page instead.
  • Persisted metadata no longer stores snippets. Older sessions now use
    on-demand show snippet recovery, with revealed snippets cached locally for
    that operator afterward.
  • Recordings now participates in the same snippet-reveal flow, so recording
    rows can recover snippets without reintroducing durable snippet storage.
  • kato clean --twins now names the cleanup surface directly and supports an
    explicit --delete-metadata privacy option when twin metadata files should
    be removed too.

Notable Behavior Updates

  • Live provider ingestion and command detection now remain independent from
    whether Kato is persisting twin history for that provider/session.
  • Manual twin actions now mean exactly what they say:
    • create twin replays from provider source start and writes a full twin
    • update twin advances an existing twin, or falls back to create if the
      twin is missing
  • Full-history capture and export can now replay provider source on demand
    when no twin exists, instead of depending on persisted twin history.
  • Maintenance twin rows now derive state from actual persisted twin condition
    (current, behind source, no twin) instead of from reused Sessions-page
    heuristics.
  • Snippet reveal failures now degrade cleanly to snippet unavailable instead
    of surfacing replay/read errors through the web UI.
  • Summary wording now reflects twin generation semantics more explicitly, using
    labels such as generating, not generating, and
    No provider sessions are currently generating twins.

Upgrade Notes

  • Config keys were renamed:
    • globalAutoGenerateSnapshots -> globalAutoGenerateTwins
    • providerAutoGenerateSnapshots -> providerAutoGenerateTwins
  • Old snapshot-generation keys are not supported for compatibility. Daemon
    startup will fail fast until the config is renamed.
  • Web navigation changed:
    • use Sessions for routine live session inventory
    • use Maintenance for twin cleanup and troubleshooting
  • Cleanup naming changed:
    • CLI --sessions cleanup language is replaced by --twins
    • default twin cleanup preserves metadata and rewrites it to canonical
      no-twin state
    • use --delete-metadata when privacy cleanup should also remove matching
      metadata files
  • Snippets are no longer persisted in session metadata. Expect older rows to
    show show snippet until an operator explicitly reveals the label.

Release Packaging

  • Source-only release (v0.2.3).
  • Kato Web remains a local Deno/Fresh app managed through kato web ....
  • Prebuilt binaries remain deferred to the distribution hardening track.

v0.2.2 Kato Web

11 Mar 08:01

Choose a tag to compare

Web-and-observability release that adds a local authenticated dashboard,
expands operator workflows, and hardens CI/testing around the larger surface
area.

Highlights

  • New Kato Web local dashboard with authenticated Summary, Ingestion,
    Sessions, Recordings, Workspaces, Logs, Settings, and Maintenance pages.
  • New kato web lifecycle commands: init, start, stop, and status,
    with explicit config bootstrap and startup acknowledgement handling.
  • Live refresh now spans the main web surfaces, so daemon, session, recording,
    workspace, and log state updates without full-page reloads.
  • User and workspace management are broader: settings now cover default
    username, workspace-specific username mappings, and exclude-me, while
    workspace registration can omit --alias and default to the folder name.
  • Maintenance and observability are stronger: filtered operational/security log
    views, web-aware status reporting, recording activity rollups, and persisted
    session cleanup support even while the daemon is running.
  • Test and CI coverage expanded significantly with more direct command/parser/
    runtime tests, parallel test execution, coverage artifact generation, and
    added CodeQL/OSV automation.

Notable Behavior Updates

  • Kato Web is explicitly opt-in and credentialed: run kato web init before
    kato web start, and provide credentials during init.
  • Authenticated web pages preserve existing query/filter semantics while
    polling in the background instead of switching to client-owned mutation
    flows.
  • kato status now surfaces web runstate/version alongside daemon, workspace,
    memory, recent-error, and session data.
  • The UI now distinguishes active ingestion, discovered session inventory, and
    recording activity more clearly across Summary, Ingestion, Sessions, and
    Recordings.
  • clean --sessions no longer requires stopping the daemon first.

v0.2.1

06 Mar 06:05

Choose a tag to compare

  • Username-aware output templating now supports {username} in both
    filenameTemplate and defaultOutputDir.
  • New workspace toggle
    markdownFrontmatter.addParticipantUsernameToHeadings lets user-message
    headings use the resolved username instead of generic User.
  • Frontmatter participants now emit plain usernames for user entries (for
    example djradon) instead of user.djradon.
  • Windows daemon startup is more reliable via detached Start-Process launch
    semantics.
  • Status marks stale daemons faster by tightening heartbeat staleness detection
    from 30s to 11s.
  • Fatal daemon startup/runtime failures now emit clearer critical diagnostics to
    improve troubleshooting.

Initial Release

04 Mar 15:17

Choose a tag to compare

Initial Release Pre-release
Pre-release

First release, delivered as a source-only cut.

Highlights

  • CLI/daemon split is now in place, with cleaner lifecycle commands (start, stop, restart, status) and more reliable runtime boundaries.
  • In-chat controls require workspace specification (via alias): ::capture-<alias>, ::record-<alias>, ::stop, and ::export-<alias>.
  • Workspace-driven recording flow is established with alias registration and customizable workspace config at <workspace>/.kato-workspace-config.yaml.
  • Export pipeline supports both markdown (with richer frontmatter) and JSONL for event-level workflows.
  • Status and runtime observability are stronger, including surfaced recent errors and better stale-state/control healing behavior.
  • Provider/session ingestion and recording durability were hardened across this release line, including snapshot/twin handling and broad test coverage improvements.

Notable Behavior Updates

  • Runtime defaults to ~/.kato/daemon (global-first); use KATO_RUNTIME_DIR to opt into a specific runtime location.
  • No implicit ./.kato fallback for runtime state.

Release Packaging

  • Source-only release (v0.2.0).
  • Prebuilt binaries are intentionally deferred to a follow-up hardening track.