#2449

Compatibility note: v3.0.0 to v3.9.0 with a legacy JovoCoder search wrapper

Openmikelawson68opened 1mo ago

Environment

  • Linux x86_64 shared-agent host
  • MemPalace upgraded from 3.0.0 to 3.9.0 (v3.9.0, commit d5250c7)
  • Existing palace: 119,862 SQLite drawer rows
  • External JovoCoder shell wrapper calls mempalace search <query> --wing <name> for two wings

CLI compatibility

The JovoCoder integration required no source changes. Its existing search calls and --wing filters remain compatible with v3.9.0. After index recovery, the wrapper's real memory-query function completed both searches and returned hybrid results containing cosine_sim and bm25 scores.

The v3.9.0 CLI also correctly exposes --version (the older deployment did not).

Legacy index behavior during upgrade

Immediately after the package upgrade, mempalace repair-status reported:

  • SQLite: 119,862
  • HNSW: 119,000
  • divergence: 862
  • status: DIVERGED

CLI search safely disabled vector search and returned BM25-only results with the repair notice. This was safe behavior, but an operational wrapper may appear partially degraded until repair completes.

The release-recommended recovery succeeded:

mempalace repair --mode from-sqlite --archive-existing --yes

Results:

  • 119,862 rows rebuilt from SQLite
  • FTS5 rebuilt
  • SQLite quick_check clean
  • original palace preserved as a timestamped palace.pre-rebuild-* archive
  • vector search restored
  • subsequent repair-status: OK; the remaining 862-row HNSW gap is classified as within flush-lag tolerance

The rebuild was CPU-intensive and took about 46 minutes for this palace, so wrappers/upgraders should treat it as a potentially long-running maintenance step.

Embedder identity compatibility

The legacy palace had no recorded embedder identity. v3.9.0 warned and correctly assumed the backward-compatible default minilm. After confirming the old installation had no explicit model override and the rebuild used MiniLM, this removed the warning without changing vector space:

mempalace palace set-embedder --model minilm

It recorded minilm (dim=384) and subsequent hybrid searches completed without the warning.

Practical compatibility summary

  • Existing JovoCoder-style search --wing wrappers: compatible; no code update required.
  • Large v3.0 palaces: check repair-status immediately after upgrade.
  • If diverged, expect BM25-only fallback until the archive-first SQLite rebuild completes.
  • Legacy installs may also need explicit embedder-identity recording after the model is verified.

Activity

0

No activity yet.