release: v0.20260313.0 - SQLite Memory & SIF Reliability#125
release: v0.20260313.0 - SQLite Memory & SIF Reliability#125ranaroussi wants to merge 11 commits intorcfrom
Conversation
The overlord config loading path defaulted auto_decomposition to True, overriding the constructor default of False. This caused simple messages to trigger workflow planning even when the formation didn't configure it. Now defaults to enable_workflow_by_default (False) unless the formation explicitly sets overlord.workflow.auto_decomposition: true. Also: surface persistent memory init failures in startup output instead of silently swallowing them.
The sqlite-vec 0.1.6 PyPI package ships a 32-bit ARM binary in the aarch64 wheel (known bug: asg017/sqlite-vec#211). This causes 'wrong ELF class: ELFCLASS32' at runtime, silently breaking persistent memory in SIF containers on ARM64. Fix: download the sqlite-vec amalgamation source and compile a correct 64-bit vec0.so during the Docker build (aarch64 only).
…ser_id) In single-user mode, persistent_memory_manager passes user_id=None to SQLiteMemory.search(). The search method tried to fall back to self.default_user_id which doesn't exist, causing an AttributeError that was silently caught. Memories were stored but never retrieved. Fix: when user_id is None, search without user filtering (appropriate for single-user mode). Removed the nonexistent default_user_id references from both search() and _search_internal().
SQLiteMemory uses all-MiniLM-L6-v2 for local embeddings but it was not pre-downloaded in the Docker build. In read-only SIF containers, HuggingFace Hub failed with 'Read-only file system' when trying to download or cache the model at runtime. - Pre-download both embedding models at build time - Set HF_HUB_OFFLINE=1 and TRANSFORMERS_OFFLINE=1 to prevent cache writes - Bump version to 0.20260312.1
Greptile SummaryThis release PR ships five targeted bug fixes for SQLite memory retrieval and SIF container reliability. The changes are generally correct and well-scoped, though two issues in the Dockerfile and one behavioral asymmetry in Key changes:
Confidence Score: 3/5
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["search(query, user_id=None/str, collection=None/str)"] --> B{user_id provided?}
B -- Yes --> C["get_or_create_user(user_id)\ninternal_user_id = int"]
B -- No --> D["internal_user_id = None"]
C --> E["_search_internal(embedding, k, collection, user_id)"]
D --> E
E --> F{collection AND user_id?}
F -- Yes --> G["SQL: WHERE collection=? AND user_id=? AND formation_id=?"]
F -- No --> H{collection only?}
H -- Yes --> I["SQL: WHERE collection=? AND formation_id=?"]
H -- No --> J{user_id only?}
J -- Yes --> K["SQL: WHERE user_id=? AND formation_id=?"]
J -- No --> L["SQL (new): WHERE formation_id=? — all users in formation"]
G --> M[Return results]
I --> M
K --> M
L --> M
style L fill:#d4edda,stroke:#28a745,color:#000
style D fill:#d4edda,stroke:#28a745,color:#000
|
…conditional HF offline - Add SHA-256 checksum verification for sqlite-vec amalgamation download - Derive Python version dynamically instead of hardcoding python3.10 - Move HF_HUB_OFFLINE/TRANSFORMERS_OFFLINE from Dockerfile ENV to entrypoint, gated on SINGULARITY_CONTAINER or MUXI_SIF_MODE
Summary
Five bug fixes addressing SQLite memory retrieval and SIF container reliability.
Bug Fixes
search()and_search_internal()referenced a nonexistentdefault_user_idattribute. Memories stored correctly but never retrieved. Fix: 4-way SQL branching whenuser_id=None.all-MiniLM-L6-v2was not pre-downloaded during Docker build. Fix: pre-download both models..no_existcache files to read-only filesystem. Fix:HF_HUB_OFFLINE=1+TRANSFORMERS_OFFLINE=1.auto_decompositiondefault override — HardcodedTrueoverriding constructorFalse. Fix: defaults toenable_workflow_by_default.Changes