Repository navigation
A memory that cannot be embedded or extracted no longer blocks the memories after it - #1188
Open
WaylandYang wants to merge 2 commits into
Open
WaylandYang wants to merge 2 commits into
WaylandYang wants to merge 2 commits into
Conversation
…mories after it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Wayland Yang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Wayland Yang <wayland0916@gmail.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.
Why
#1187. Every remembered sentence is a chunk of one document per base. While the embedding model answers with an error, nothing said to
rememberis extracted, although the chat model works andremembergoes on answering "Recorded the sentence". One sentence the pipeline cannot process has the same effect on every sentence after it.Reproduced on
devwith a working chat model and an embedding key that is refused: two sentences recorded,memory_ingestfailed twice (Embedding request failed (401)), no extraction queued, no pending statement for either until the embedding model came back.What changes
memory_ingestembeds the log one sentence at a time, and a failure there is not the end of the job. A sentence that cannot be embedded is logged and left without a vector, to be tried again with the next memory; the index is rebuilt and extraction is queued all the same. Before, all unembedded chunks went in one call and the first error failed the job before extraction was queued.run_openfinishes the work for what it extracted before it reports an incomplete attempt. The error used to return ahead of time resolution and the pending notice, so a sentence that could not be extracted kept the confirmation card of every later sentence from appearing. The document is still not marked done and the job still fails; only the order changed. This applies to uploaded documents as well: the chunks that were extracted now get their time resolution and alignment on that attempt, not only after a fully successful retry.rememberstill takes a text of any length.How it was checked
devwithout the change:a_memory_that_cannot_be_embedded_does_not_hold_back_the_othersanda_memory_that_cannot_be_extracted_does_not_hold_back_the_next.cargo fmt --all --check,cargo clippy -p utopia-server --all-targets -- -D warnings, andcargo test -p utopia-serveron a fresh database: 608 passed.devbuild and this build, embedding key refused, chat model working:devmemory_ingestNot addressed: a sentence that fails extraction every time (a text longer than the chat model can read, for one) is tried again with each new
rememberand keeps the log marked failed, and there is no way yet to drop one sentence from the log.🤖 Generated with Claude Code