Problem
When a project ends or becomes inactive, its memories still appear in search results. The only current option is delete-wing (#310), which permanently destroys the data.
Users need a middle ground: stop a wing from polluting active search results, while keeping the data intact for future reference.
Proposed solution
Add an archive / unarchive command that sets a metadata flag on a wing, excluding it from search by default.
CLI
mempalace archive --wing old_project
mempalace unarchive --wing old_project
MCP
mempalace_archive_wing(wing="old_project")
mempalace_unarchive_wing(wing="old_project")
Search behavior
- Default: archived wings are excluded from
mempalace_search
- Override:
mempalace_search("query", include_archived=True) to search everything
- Status:
mempalace_status shows archived wings separately with an [archived] label
Implementation scope
wing_config.json: add "archived": true flag per wing
searcher.py / mcp_server.py: filter out archived wings in where clause unless include_archived=True
cli.py: add archive / unarchive subcommands
mcp_server.py: add mempalace_archive_wing / mempalace_unarchive_wing tools
- Tests: verify archived wings are excluded by default, included with flag
Data safety
- Zero data deletion — the flag is a one-line metadata change
- Fully reversible with
unarchive
- Archived wings remain visible in
mempalace_status and accessible via include_archived
Why this matters
Real-world usage naturally accumulates dead projects. Without soft-archive, users face a choice between noisy search results and permanent data loss. This feature closes that gap with a simple, non-destructive toggle.
Related: #331 (time-decay scoring — the other half of time-aware memory management)
Problem
When a project ends or becomes inactive, its memories still appear in search results. The only current option is
delete-wing(#310), which permanently destroys the data.Users need a middle ground: stop a wing from polluting active search results, while keeping the data intact for future reference.
Proposed solution
Add an
archive/unarchivecommand that sets a metadata flag on a wing, excluding it from search by default.CLI
MCP
Search behavior
mempalace_searchmempalace_search("query", include_archived=True)to search everythingmempalace_statusshows archived wings separately with an[archived]labelImplementation scope
wing_config.json: add"archived": trueflag per wingsearcher.py/mcp_server.py: filter out archived wings inwhereclause unlessinclude_archived=Truecli.py: addarchive/unarchivesubcommandsmcp_server.py: addmempalace_archive_wing/mempalace_unarchive_wingtoolsData safety
unarchivemempalace_statusand accessible viainclude_archivedWhy this matters
Real-world usage naturally accumulates dead projects. Without soft-archive, users face a choice between noisy search results and permanent data loss. This feature closes that gap with a simple, non-destructive toggle.
Related: #331 (time-decay scoring — the other half of time-aware memory management)