• v1.2.0 b7d45191d7

    v1.2.0 Stable

    kahliburke released this 2026-04-04 20:53:03 -07:00 | 302 commits to main since this release

    What's New

    Gate.push_panel() — Push-based extension→panel communication

    Extensions can now stream state updates to their TUI panels in real time via Gate.push_panel(key, value). Values are delivered via ZMQ PUB/SUB and appear in the panel's ctx._cache[:panel_state] on the next frame — no polling or ctx.eval() needed.

    Extension restart reliability

    • Extensions now survive restarts cleanly — tools keep their namespace, SUB sockets reconnect, and the TUI panel auto-detects session key changes
    • Stale extension connections are evicted on namespace collision (fixes "hello_2" dedup bug)
    • Extension status accurately reflects connection state during restarts

    MCP notification delivery

    • Pending notifications (tools/list_changed, resources/list_changed) now use a shared dict instead of a single-consumer Channel, so both GET SSE streams and POST response flushes can deliver independently

    HelloExtension polish

    • Reference example now uses @match for idiomatic key handling
    • Three-pane layout: greetings, dice rolls, and activity log with timestamped push events
    • Comprehensive teaching comments explaining the ext_panel protocol

    Extension documentation

    • New sections: TUI Panel Protocol, Gate.push_panel() API, shutdown hooks
    • Extension demo animation added to generate_assets.jl
    • Updated installation instructions to pin release tags

    Install / Update

    ]app add https://github.com/kahliburke/Kaimon.jl#v1.2.0
    
    Downloads