Skip to content

[Feature Request] Cross-Session File Persistence: Reliability guarantees, versioning, and export #2695

@cc3wangdehai-hue

Description

@cc3wangdehai-hue

Problem

The current file system has persistence and isolation risks:

  1. Weak session isolation: Other session directories are enumerable and potentially readable
  2. No persistence SLA: Files may be lost without clear retention guarantees
  3. No version control: Accidental overwrites are irreversible
  4. No cross-session consistency: Files referenced in one session may not exist in another
  5. No export mechanism: Users cannot reliably download all their files

Proposed Solution

1. Strong Session Isolation

  • Each session gets an isolated storage volume
  • No cross-session access by default
  • Explicit opt-in sharing with access control

2. Persistence Tiers with SLA

Tier Retention Use Case
Ephemeral Session lifetime Temp files, cache
Standard 30 days Working documents
Persistent 1 year Knowledge bases, configs
Permanent Indefinite Critical records

Users can explicitly tag files/directories with persistence tier.

3. File Versioning

  • Automatic versioning for modified files (like git history)
  • file_history API to browse previous versions
  • One-click rollback to any previous version
  • Configurable version retention policy

4. Backup & Recovery

  • Automatic daily backups for persistent+ files
  • Point-in-time recovery for critical data
  • User-initiated backup before risky operations

5. Export & Migration

  • Bulk export: download all session files as zip
  • Selective export: mark files for long-term archival
  • Migration: move files between sessions or platforms

Impact

  • Data reliability increases user trust
  • Enterprise customers require persistence guarantees
  • Version control prevents accidental data loss
  • Export enables offline workflows and vendor independence

Priority

P2 (Medium) - Essential for enterprise adoption and data safety

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions