Repository navigation
release: SuperLocalMemory 4.2.12 — large stores answer, purges finish, the mode says where data goes - #305
Merged
Conversation
…t 503 (#304) On a 37k-fact store every explicit recall overran its run budget and was told "busy, ask again in 2 seconds" on an idle daemon; every retry overran too. - An overrun now serves the keyword fallback, started beside the run when only its floor is left, labelled degraded_lexical and unjudged. Busy stays the answer only when no slot was free, where asking again does help. - The channel phase never waits past the caller's deadline (less a reserve to fuse, rerank and check); the 8 s guard is unchanged otherwise. - Semantic, hopfield and spreading activation shared nothing: three identical vec0 scans per recall. A search for the same vector already in flight now answers the others (k=500: 113 ms vs three scans of 93-113 ms each). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ge finishes (#297) Revising or deleting a folder note while its save was still `queryable` archived or erased the save's facts; enrichment then failed three times with "queryable fact profile mismatch or missing fact", and `sources remove --purge` refused until every retry ran out (2 s doubling to 300 s). When none of the save's queryable facts is live any more (archived, gone, or being erased) the operation now settles as complete at once, with no final facts and derivation_state {"superseded": true}, and enriches nothing back. Its queryable ids stay on the row for the erasure scrubs. A fact still live, or in another profile, keeps the old error: those are real faults. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… can prune old ones (#301) After local reinstalls the GitHub sign-in page listed several identical "default (chatgpt)" connections. Each option now shows a short connection ID and its credential expiry, newest first. An opt-in, never prechecked checkbox revokes the other connections with the same profile and app on this GitHub account, through the same steps as /owner/revoke, fenced to the signed-in owner and re-read before each revoke. On top of the reported patch: cleanup runs only after the consent is approved (a refused consent must not leave older connections revoked with no new one), a cleanup failure never blocks the chosen connection, and a device the kept connection still uses is never revoked. Patch by @DannyGi82 in #301. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All 110 tools now register with a plain-words title and explicit readOnlyHint, destructiveHint, idempotentHint and openWorldHint booleans, named through mcp/tool_hints.py. slm_cache_set no longer claims to be read-only (it writes a cache value). A new test registers every tool and checks titles, the four hints, and the known destructive, read-only and open-world sets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… chose (#302) Modes A and B filled a blank model name and width on an openai-compatible embedding endpoint with the local bundle's nomic id at 768, and the next save made that durable. A provider gets its own model id or none at all, so blank now stays blank in the config template. The three doors that save an embedding config (POST /api/v3/mode/set, PUT /api/v3/embedding/config, and the re-index target_config) refuse an openai-compatible endpoint with no model name or no positive dimension, with code embedding_endpoint_incomplete naming what to fill in. They no longer borrow the live local model's width or id for an endpoint. A config.json that already holds the inferred pair loads as stored and is not rewritten. VectorStore._ensure_vec0_table now leaves the tables alone and disables the store when the configured width is not positive, so an unknown width can never read as "the model changed" and drop the vectors a store holds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oint is set (#303) Modes A and B accept a remote embedding endpoint (and B a hosted language model) while ModeCapabilities.data_stays_local stayed True. Following the maintainer's decision, the configuration is accepted and the claims follow it. core/data_locality.py holds the one classifier (loopback, *.localhost, and numeric private-LAN hosts are local; everything else, including unresolvable public names, is remote; no DNS lookup, reusing the reranker's host helpers) and effective_data_locality(mode, embedding, llm). The per-mode record stays as the default. Readers now use the effective value: the dashboard payload (data_stays_local, data_locality_label, data_remote_parts), GET /api/v3/embedding/config, validate_mode_config (new warning), the engine's startup call to it, EUAIActChecker.check_compliance, and the MCP set_mode and get_mode descriptions. Step 3 of the dashboard says a non-local endpoint sends memory text off this computer, and the Mode A card no longer says Zero Cloud while a remote endpoint is set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The LanceDB fixture wrote to one fixed /tmp directory every xdist worker shared, so tables went missing or already existed. The hook-spool test claimed in a loop with no pause and starved its writers past their 1 s lock wait; it now claims at the daemon's fastest pace (50 ms). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the six reports filed after 4.2.11. No migration.
Full suite: 23,371 passed, 83 skipped; the 5 failures were two test-isolation bugs (shared /tmp LanceDB dir, unpaced spool claimer), fixed in 0b12519 and green under 6 workers.
🤖 Generated with Claude Code