Repository navigation
feat(MEMMY-577, MEMMY-578): align generated memory content with the UI language - #544
Merged
syzsunshine219 merged 2 commits intoSep 24, 2026
Merged
Conversation
Reuse the task page's summary language logic so memories, experiences, world models, and skills match the language set in the Memmy interface. � Conflicts: � Memory/src/service/embedding/embedding-job-processor.ts � Memory/src/service/evolution/span-pipeline.ts � Memory/src/service/import/import-job-processor.ts � Memory/tests/service/retrieval/query-and-filter.test.ts
keep summary failures visible and restore held task titles
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.
Description
Summary
This PR makes newly generated memory content follow the selected interface
language and aligns title, summary, and waiting-state presentation across
the memory, experience, and task pages.
Generation previously used different language-selection rules across
pipelines. Some views also displayed summaries or triggers as titles, and
pending generation could remain stuck or have its failure state hidden.
Fix:
Share language selection across L1 summaries, reflections, span goals,
L2 policies, task titles, and both Skill generation paths. Prefer the
configured interface language, falling back to content detection when
no language is pinned. Preserve explicit Skill language overrides.
Generate independent L1 titles and summaries in the existing capture
or import-summary call. Validate non-empty output and retain the
existing retry behavior. Keep L2 titles short and distinct from triggers.
Apply the interface language when creating empty L3 fields and project
environment profiles. Preserve the existing content's language during
updates without adding conflicting language instructions.
Keep summary and task-title jobs pending while the summary model is
unavailable, then resume them when configuration becomes available.
Prevent reflection and indexing from overwriting pending or failed
summary processing.
Show generated memory titles separately from summaries and experience
titles separately from triggers. Use a consistent “Preparing summary”
state with source text while generation is pending, preserving existing
titles and legacy display fallbacks.
Historical records are not bulk-translated or backfilled. Skill names,
raw retrieval content, and User Memory behavior remain unchanged.
Related CodeUp Issue: MEMMY-577, MEMMY-578
Type of change
How Has This Been Tested?
Validation environment: macOS arm64, Node v22.23.2, npm 10.9.8.
model-unavailable recovery, summary failure preservation, and retries.
normal execution passed; disabling failed-job requeue correctly
failed the assertion requiring the same job ID to succeed.
npm testexecuted — failed with 5 existingedition/copy expectation mismatches listed below.
npm run lintandnpm run typecheckpassed.this revision.
Full-suite results:
Memory runs twice in the default
npm testcommand; both runs passed.TUI was run separately because the workspace failures stopped the root
script before that stage.
Skipped tests are reported separately and are not counted as passing.
The 5 existing failures are outside this change:
App/backend/src/adapters/outbound/cloud-client/tests/cloud-client.test.ts— 2 assertions expect region
cn, but receiveintl.App/frontend/desktop/src/analytics/tests/gtag-config.test.ts— expects the default edition to be
cn, but receivesintl.App/frontend/desktop/src/components/tests/campaign-token-prompts.test.tsx— campaign dialog copy differs from the expected text.
App/frontend/desktop/src/pages/memory/tests/sources-sub-page.test.tsx— expects the default documentation URL on
memmy.cn, but receivesmemmy.bot.These test files are unchanged from the target branch.
Checklist
Reviewer Checklist