Skip to content

Feature request: bulk Restore and Make permanent in the Memories bulk bar #676

Open

Description

@ICEY16360

Short description

The Memories bulk-action bar can archive or delete in bulk but cannot restore or make permanent, although the backend command it already calls supports both.

What problem does this solve?

  • Single memory: MemoryDetail's Status dropdown (active / permanent / archived) already covers restore and permanent.
  • Bulk: the sticky bulk bar exposes only Archive (bulkUpdateMemoryStatus(ids, "archived")), Delete, and Clear — which is clearSelection, it only empties the checkbox selection.
  • Backend: bulk_update_memory_status (packages/dashboard/src-tauri/src/db.rs) already accepts any status. Its own comments state that a change into active or permanent counts as a restore for epoch-bump purposes, and that it only bumps for rows whose status actually changes, so a mixed or no-op selection is safe.
  • The Archive confirmation even promises the missing capability: "Archived memories are hidden from injection but can be restored later." That is true only one row at a time, through the detail dropdown.
  • Friction: after a bulk archive (or a dreamer curate pass archiving stale entries), bringing a set back means opening each memory's detail and changing the dropdown — N round trips for what is one command.

Proposed solution

Add two buttons to the bulk bar next to Archive, mirroring handleBulkArchive's confirm-dialog pattern:

  • Restore → bulkUpdateMemoryStatus(ids, "active")
  • Make permanent → bulkUpdateMemoryStatus(ids, "permanent")

No backend work: db::bulk_update_memory_status already handles both statuses, the restore epoch bump, and the no-op guard. Confirm copy mirrors the existing Archive dialog ("Restore N memories? …").

Alternatives considered

  • Rely on the single-row Status dropdown: works, but costs one detail open per row after a bulk archive.
  • A dedicated archived view with per-row actions: more surface area for the same capability.

Area

Dashboard

Additional context

Activity

  1. added
    design-approvedDesign agreed by a maintainer; a PR referencing this issue can be reviewed
    on Oct 13, 2026
  2. magic-alfonso commented on Oct 13, 2026

    @magic-alfonso

    Approved, thanks. A pull request is welcome, in the shape you described:

    • Restore and Make permanent buttons in the bulk bar next to Archive, calling bulkUpdateMemoryStatus(ids, "active") and bulkUpdateMemoryStatus(ids, "permanent").
    • Confirm dialogs that mirror the Archive one ("Restore N memories?").
    • No backend change, since bulk_update_memory_status already handles both statuses, the restore epoch bump and the no-op guard.
    • A test that a bulk restore of a mixed selection only changes (and only bumps the epoch for) rows whose status actually changes.

    Please reference this issue in the PR description without a closing keyword ("issue 676" rather than "Fixes #676").

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    design-approvedDesign agreed by a maintainer; a PR referencing this issue can be reviewedfeature requestNew feature or capability request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions