Skip to content

Add a dedicated top-level Memory Sync settings page consolidating all sync sources, status and settings #3301

Closed

Description

@graycyrus

Summary

Add a dedicated, top-level Memory Sync page in Settings that is the single, focused home for everything about memory syncing: every connected source/integration listed with its last-synced time, how much is synced, whether it's syncing now, per-source settings, and the opt-in toggle. The existing controls on the Intelligence page stay as a secondary entry point.

Problem

Memory-sync controls today live on the Intelligence page (/intelligence → memory tab, MemoryWorkspace) and in a buried Settings panel: MemoryDataPanel at /settings/memory-data, reachable only via Advanced → Developer Options, which renders the entire MemoryWorkspace (status tiles + sources registry + the memory graph). There's no clean, prominent place a user can go to manage "what syncs, how much, how fresh, and is it running right now." Sync configuration, status, and opt-in are scattered and hard to find.

We want one prominent Settings → Memory Sync page that consolidates this, while leaving the Intelligence-page controls in place too.

Solution (scope: app, mostly reuse)

  • New top-level Settings entry — add a prominent "Memory Sync" item to the Settings home (General area), with a new route (e.g. /settings/memory-sync). Retire/redirect the buried Advanced → Memory Data panel to this new page.
    • Wire-up follows the existing pattern: nav item in app/src/components/settings/SettingsHome.tsx (id/title/description/icon/route), route in app/src/pages/Settings.tsx (wrapSettingsPage(<MemorySyncPanel />)), and a 'memory-sync' entry + breadcrumb in app/src/components/settings/hooks/useSettingsNavigation.ts (SettingsRoute union).
  • New panel MemorySyncPanel.tsx (app/src/components/settings/panels/) — reuse the already-portable MemorySourcesRegistry and MemoryTreeStatusPanel (both used today in MemoryDataPanel). Compose them into a sync-focused layout without the force-directed graph (that stays on Intelligence). Surface per source:
  • Intelligence page unchanged — keep its existing memory-sync controls as a secondary entry point; add a link from Intelligence to the new Settings page.
  • i18n — all new strings via useT() in en.ts plus real translations in every locale file (settings.memorySync.*, reuse existing memoryTree.* / memorySources.* keys where possible).

Acceptance criteria

  • Top-level entry — a "Memory Sync" item appears prominently in Settings (not buried under Advanced) and routes to a dedicated page; the old /settings/memory-data path redirects there.
  • Source list with details — the page lists every connected source/integration with opt-in toggle, last-synced time, amount synced (chunks), pending count, and a live "syncing now" indicator.
  • Per-source settings inline — per-source sync settings/limits are viewable and editable from this page (builds on Default memory sync sources to on with conservative limits, add per-source settings and an "All In" option #3293).
  • Opt-in from one place — a user can enable/disable any source's sync entirely from this page.
  • Intelligence preserved — existing Intelligence-page sync controls remain functional; a link to the new Settings page is present.
  • i18n — all new strings go through useT() and exist in every locale with real translations (pnpm i18n:check + pnpm i18n:english:check pass).
  • Diff coverage ≥ 80% — the implementing PR meets the changed-lines coverage gate.

Related

Activity

  1. self-assigned this
    on Jun 3, 2026
  2. moved this from Todo to In progress in Team Openhumanon Jun 5, 2026
  3. moved this from In progress to Todo in Team Openhumanon Jun 5, 2026
  4. graycyrus commented on Jun 11, 2026

    @graycyrus
    ContributorAuthor

    this is done

  5. added theissue type on Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions