• v2.3.0 7f199f58ae

    v2.3.0 Stable

    github-actions[bot] released this 2026-07-29 13:13:06 -07:00 | 3 commits to main since this release

    Kaimon v2.3.0

    Diff since v2.2.0

    Kaimon 2.3.0

    Custom system images for managed sessions, a fix for restarts losing the gate
    when Julia was launched with a separated --sysimage flag, and two silent-data
    bugs: per-project launch config and session preferences were being dropped on
    load, and a clean shutdown ended in a stack trace.

    Requires Tachikoma 2.5 and bundles KaimonGate 1.2.

    Custom system images and launch config (#69)

    A project with a custom sysimage can now declare it, so a session Kaimon spawns
    boots the same way you start the project by hand instead of paying full
    compilation cost. LaunchConfig gains sysimage, julia_bin (a Julia binary,
    or a wrapper script that forwards its arguments to one), and startup_file
    (~/.julia/config/startup.jl was previously suppressed unconditionally).

    There are two places to set it. Per user, in projects.json — editable from the
    TUI Config tab, select a project and press e:

    "launch_config": { "sysimage": "MyProject-image.so", "heap_size_hint": "8G" }
    

    Or per project, checked into the repo, in the project's own kaimon.toml, so
    everyone working on it gets the same launch recipe with no local setup:

    [launch]
    sysimage = "MyProject-image.so"   # relative → resolved against the project root
    threads = "auto"
    

    The user's entry is overlaid field-wise on the project's, so a single field can
    be overridden locally while the rest is inherited. A configured sysimage that
    isn't on disk is logged and skipped — the session still starts, on the default
    image. Thanks to @ufechner7 for the report.

    Fix: restarting a REPL launched with --sysimage <path> (#69)

    Restarting a REPL you started yourself replays its original launch flags, so a
    custom sysimage, thread count, and heap hint survive. But the check for "was
    this launched with a script?" didn't know which flags take a value as a separate
    token, so the path in julia --sysimage /path/sys.so looked like a script
    argument. The restart then took the verbatim-replay branch and re-exec'd a plain
    interactive REPL that never called serve() — the session didn't come back at
    all. The attached forms (-J/path, --sysimage=/path) were unaffected.

    Value-taking flags are now recognized as a shared set, and -e/-E/-L are
    explicit user-code triggers rather than a side effect of the path check.

    Fix: launch config and session preferences were silently discarded

    Nested JSON objects parse as JSON.Object, which is an AbstractDict but not a
    Dict — and both projects.json readers guarded on isa Dict. Every
    per-project launch_config (threads, GC threads, heap hint, extra flags) and
    every persisted mirror_repl / allow_restart preference was dropped on load
    and silently replaced with defaults.

    Fix: clean shutdown no longer ends in a stack trace

    The managed-Qdrant atexit reaper read its child's pid after terminating it,
    to decide whether the PID file was its own. getpid throws ESRCH on a handle
    whose process has exited and been reaped — the expected state at that point — so
    the error escaped atexit on every clean exit.

    Downloads
  • KaimonGate-v1.2.0 7f199f58ae

    github-actions[bot] released this 2026-07-29 05:00:35 -07:00 | 3 commits to main since this release

    KaimonGate v1.2.0

    Diff since KaimonGate-v1.1.0

    Fixes

    • Restarting a REPL launched with a separated --sysimage <path> no longer loses the gate (#69). The check for "was this process launched with a script?" only skipped the values of -C/-J/--project/-t, so any other flag whose value is a path looked like a positional script argument. The restart then took the verbatim-replay branch and re-exec'd a plain interactive REPL that never called serve() — so the session did not come back at all. The attached spellings (-J/path, --sysimage=/path) were unaffected.

      Value-taking flags are now recognized as a single shared set, used both to skip values during script detection and to fuse each flag with its value into one token when reconstructing the launch command. -e/-E/-L are explicit user-code triggers rather than a side effect of the path check.

    Compatibility

    • Paired with Kaimon 2.3.0, which requires KaimonGate = "1.2".
    Downloads
  • v2.2.0 387f097314

    v2.2.0 Stable

    github-actions[bot] released this 2026-07-22 19:33:40 -07:00 | 10 commits to main since this release

    Kaimon v2.2.0

    Diff since v2.1.0

    Kaimon 2.2.0

    Features

    • Binary streaming transport — event-driven, wake-on-arrival stream draining
      and a zero-copy raw binary frame path for high-rate streaming consumers (live
      widgets/plots, KaimonSlate binary-emit), cutting stream latency and idle CPU.
    • Startup KaimonGate upgrade prompt — on interactive launch, offers to update
      a stale registry-installed global KaimonGate so auto-connecting REPL sessions
      pick up the latest gate fixes. No-op for dev/current installs; dismissals are
      remembered per version; re-armed with kaimon --reset-global-prompt.

    Fixes

    • #67 — a raw-mode Tachikoma TUI run from a gate REPL no longer wedges the
      host REPL on exit (stream guard via Tachikoma 2.4's set_stream_guard!).

    Requires

    • Tachikoma 2.4, KaimonGate 1.1.
    Downloads
  • KaimonGate-v1.1.0 387f097314

    github-actions[bot] released this 2026-07-22 05:15:16 -07:00 | 10 commits to main since this release

    KaimonGate KaimonGate-v1.1.0

    Diff since KaimonGate-v1.0.1

    KaimonGate 1.1.0

    Features

    • Event-driven stream draining (wait_stream_messages!) that wakes on frame
      arrival instead of polling on a fixed cadence, and a zero-copy raw binary
      frame path (_publish_stream_raw) that skips the Serialization envelope for
      high-rate streaming consumers. Binary payloads are preserved end-to-end as bytes.

    Fixes

    • Register a stream guard (via Tachikoma's set_stream_guard!) so a raw-mode
      Tachikoma TUI run from a gate-hosted REPL no longer wedges the host REPL's
      stdin on exit (Kaimon #67). Adds public disable_wedge_guard! for a host that
      runs its own persistent full-screen TUI alongside the capture mux. The guard is
      a no-op unless a Tachikoma new enough to define the hook is loaded.

    Merged pull requests:

    • Extension spawn: put Kaimon's active environment on JULIA_LOAD_PATH, not pkgdir (#61) (@mthelm85)
    • Managed runtime env for registry/app-installed extensions (exposure #2) (#65) (@kahliburke)
    • Fix Windows npm-shim claude spawn + stop leaking env in spawn errors (#63) (#66) (@kahliburke)

    Closed issues:

    • Provide Qdrant via JLL? (lazily?) (#24)
    • Can Kaimon ping claude? (#30)
    • Excessive memory consumption (#33)
    • Windows: ZMQ ipc:// transport not supported — TUI fails to start after /dev/tty fix (#41)
    • Orphaned Gate.serve() REPLs are never reaped — multi-GB leak under headless server (#51)
    • claude code bug report (#55)
    • Kaimon / GLMakie interaction problems (#56)
    • Kaimon writes Antigravity MCP config in wrong directory (#57)
    • Kaimon should not always put a session in the background after 30s (#59)
    • Registered extension project_path is manifest-less for registry installs, so the extension can't boot (#62)
    • Agent fails to spawn claude on Windows when the CLI is installed via npm (.ps1/.cmd shim) (#63)
    • False warning Julia not on path (#64)
    Downloads
  • v2.1.0 c47c48091d

    v2.1.0 Stable

    github-actions[bot] released this 2026-07-19 19:58:18 -07:00 | 13 commits to main since this release

    Kaimon v2.1.0

    Diff since v2.0.8

    Kaimon v2.1.0

    Features

    • Managed (zero-Docker) Qdrant (#24): Kaimon lazily installs Qdrant_jll into a small Kaimon-owned environment and runs the binary itself — no Docker required. Includes TUI start/stop controls, autostart on launch, and create-collection/embedding robustness.

    Fixes

    • Extension runtimes are no longer treated as addressable REPL sessions: agents can no longer be auto-bound to (or eval in) an extension's runtime; explicit targeting points at start_session for a real REPL.
    • Windows: resolve the npm claude shim via PATHEXT (#66), and stop leaking environment in spawn errors.
    • Extensions receive Kaimon's active environment on JULIA_LOAD_PATH, and registry/app-installed extensions get a properly instantiated runtime env (#61, #65).

    Compatibility

    • Requires Tachikoma 2.3.7.

    Merged pull requests:

    • Fix Windows npm-shim claude spawn + stop leaking env in spawn errors (#63) (#66) (@kahliburke)

    Closed issues:

    • Agent fails to spawn claude on Windows when the CLI is installed via npm (.ps1/.cmd shim) (#63)
    Downloads
  • v2.0.8 2f36e98c8b

    v2.0.8 Stable

    github-actions[bot] released this 2026-07-17 17:55:27 -07:00 | 17 commits to main since this release

    Kaimon v2.0.8

    Diff since v2.0.7

    Kaimon 2.0.8

    Fixes extension boot on a fresh registry/app install (pkg> app add Kaimon + app add <extension>), which previously crash-looped. Two independent load-path failures, both resolved:

    • using Kaimon fails — the extension subprocess carried the manifest-less pkgdir(Kaimon) on its load path. Kaimon now puts the running instance's active (manifest-bearing) environment there instead. (#61, thanks @mthelm85)
    • using <ExtensionModule> fails — the extension was launched with --project=<manifest-less, write-protected depot dir>, so its own deps couldn't resolve. Kaimon now maintains a writable, instantiated environment per extension (~/.julia/environments/kaimon-ext/<namespace>) and launches against it; dev checkouts with their own manifest are unchanged. (#65)

    Merged pull requests:

    • Extension spawn: put Kaimon's active environment on JULIA_LOAD_PATH, not pkgdir (#61) (@mthelm85)
    • Managed runtime env for registry/app-installed extensions (exposure #2) (#65) (@kahliburke)
    Downloads
  • v2.0.7 b098bb977d

    v2.0.7 Stable

    github-actions[bot] released this 2026-07-17 12:45:45 -07:00 | 20 commits to main since this release

    Kaimon v2.0.7

    Diff since v2.0.6

    Changes

    • Require Tachikoma 2.3.6, which fixes input starvation in render-bound TUI apps (keyboard/mouse were dropped while the app kept animating when a frame exceeded its budget).

    Closed issues:

    • False warning Julia not on path (#64)
    Downloads
  • v2.0.6 367c2dc0a3

    v2.0.6 Stable

    github-actions[bot] released this 2026-07-16 20:28:45 -07:00 | 21 commits to main since this release

    Fixes

    • Windows extensions no longer wedge at startup. On Windows a local IPC gate is bound over TCP (no IPC transport); under a non-lax (API-key) security config it enforces its auth token, but the discovery watcher connected tokenless and was rejected with "Authentication required" — leaving extensions (e.g. KaimonSlate) stuck at :starting in a restart loop. The watcher now presents the same token, authenticating to its own local gate.
    • Fixed extension loading by removing an unused using ReTest import that forced ReTest onto extension-subprocess LOAD_PATHs, where it failed to resolve.

    Observability

    • A health-check ping that receives an error reply (e.g. an auth rejection) is now logged, throttled to once per distinct message, instead of being silently treated as a healthy pong.

    Dependencies

    • Requires Tachikoma 2.3.5 — Windows console-size/resize handling and ReadConsoleInputW mouse + keyboard support, plus international-keyboard decoding on all platforms.
    Downloads
  • v2.0.5 518a489d62

    v2.0.5 Stable

    github-actions[bot] released this 2026-07-14 19:30:33 -07:00 | 24 commits to main since this release

    Kaimon v2.0.5

    Diff since v2.0.4

    Security & Claude Code compat patch.

    • Security: removed a localhost OAuth auto-mint that issued bearer tokens to anyone who could reach the port (auth bypass); Kaimon now accepts only configured API keys, and Origin validation rejects localhost-spoof hosts (e.g. localhost.evil.test).
    • Compat: OAuth/OIDC probe paths return a clean 404 with a JSON error body, so modern Claude Code no longer crashes on discovery and keyless clients get a clear "Missing API key".
    • Chore/CI: gitignore deploy artifacts; LinkCheck false-positive exclusion.
    Downloads
  • v2.0.4 15132507b8

    v2.0.4 Stable

    github-actions[bot] released this 2026-07-11 23:11:38 -07:00 | 29 commits to main since this release

    Kaimon v2.0.4

    Diff since v2.0.3

    Fixes

    • ex: a call that omitted the e parameter (e.g. the code was passed as code) silently ran an empty eval — success with no result and only a bare agent> in the shared REPL. It now returns a clear error (with a hint when code was used), and the tool description / instructions / docs state plainly that the parameter is e.
    • TUI: control characters (\r, \n, backspace, …) in tool-call content no longer smear the Activity table / log pane (carriage-return corruption seen on slate tool calls). Requires the companion Tachikoma 2.3.4 set_string! control-char strip; [compat] bumped to Tachikoma = "2.3.4".
    • Gate: the "advertised for discovery" diagnostic no longer prints to the console on interactive Julia startup — dropped to @debug for a user's own gate; spawned/extension gates keep it in their captured logs.

    Changed

    • Code search: search_code (by meaning) is now the documented default for discovery over grep_code; a grep_code call that finds nothing (a true negative) nudges toward search_code.
    Downloads