Version compatibility check between kaimon app and Kaimon.jl package #26

Closed
opened 2026-04-14 21:05:45 -07:00 by kahliburke · 1 comment
kahliburke commented 2026-04-14 21:05:45 -07:00 (Migrated from github.com)

Context

From #23: a user had dev'd an older local version of Kaimon.jl in their global env. The kaimon app binary was updated, but the package loaded by gate sessions was still the old dev'd version. This caused silent failures — serialization mismatches between the TUI and gate, garbled output, sessions dying on startup.

The existing code checks whether Kaimon.jl is installed in the global env, but doesn't verify that the installed version is compatible with the running app.

Suggested fix

On app startup (or when a gate session connects), compare the app version against the Kaimon.jl package version loaded in the session. If they differ beyond a compatible range (e.g. different minor versions), show a clear warning or error with instructions to update:

⚠ Version mismatch: kaimon app is v1.2.2 but session loaded Kaimon v1.1.0.
  Run `]app add Kaimon` to update, or `]rm Kaimon` in the global env to remove a dev'd copy.

Should also detect the specific case of a dev'd package taking priority over the app-installed version, since that's the most confusing failure mode.

Spawned from discussion in #23.

## Context From #23: a user had dev'd an older local version of Kaimon.jl in their global env. The `kaimon` app binary was updated, but the package loaded by gate sessions was still the old dev'd version. This caused silent failures — serialization mismatches between the TUI and gate, garbled output, sessions dying on startup. The existing code checks whether Kaimon.jl is installed in the global env, but doesn't verify that the installed version is compatible with the running app. ## Suggested fix On app startup (or when a gate session connects), compare the app version against the Kaimon.jl package version loaded in the session. If they differ beyond a compatible range (e.g. different minor versions), show a clear warning or error with instructions to update: ``` ⚠ Version mismatch: kaimon app is v1.2.2 but session loaded Kaimon v1.1.0. Run `]app add Kaimon` to update, or `]rm Kaimon` in the global env to remove a dev'd copy. ``` Should also detect the specific case of a dev'd package taking priority over the app-installed version, since that's the most confusing failure mode. ## Related Spawned from discussion in #23.
kahliburke commented 2026-04-14 21:23:43 -07:00 (Migrated from github.com)

Implemented in 8df97bf. Gate pong now includes kaimon_version, and the TUI health checker warns on mismatch:

⚠ Version mismatch: kaimon app is v1.2.2 but session 'MyProject' loaded Kaimon v1.1.0.
  Run `]app add Kaimon` to update, or check for a dev'd copy in your global env.

Warning fires once per session (deduped). Also fixed MCPServer init response using hardcoded "0.4.0" — now uses PACKAGE_VERSION.

Implemented in 8df97bf. Gate pong now includes `kaimon_version`, and the TUI health checker warns on mismatch: ``` ⚠ Version mismatch: kaimon app is v1.2.2 but session 'MyProject' loaded Kaimon v1.1.0. Run `]app add Kaimon` to update, or check for a dev'd copy in your global env. ``` Warning fires once per session (deduped). Also fixed MCPServer init response using hardcoded "0.4.0" — now uses `PACKAGE_VERSION`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kahliburke/Kaimon.jl#26
No description provided.