Skip to content

Stabilize default backup root across sandbox and permission contexts #6

@gaoguobin

Description

@gaoguobin

Problem

list-backups can resolve a different default �ackup_root than �ackup, depending on the current process sandbox or permission view of ~/Documents.

Observed on Ubuntu/Linux:

�ash agent-environment-backup --profile codex list-backups --backup-root /home/cedric/Documents/CodexBackups

This works and lists the latest backup, including:

ext codex-backup-20260520-141125 status=ok

But without an explicit backup root:

�ash agent-environment-backup --profile codex list-backups

It resolves:

ext backup_root: /home/cedric/CodexBackups backups: []

The actual backup was written to:

ext /home/cedric/Documents/CodexBackups

So a user can successfully create a backup and then immediately get an empty list from the natural-language/default workflow, depending on sandbox or permissions.

Expected behavior

The default �ackup_root used by �ackup, list-backups, and
estore should be stable for the same profile and user environment.

A backup created with defaults should be discoverable by list-backups with defaults.

Suggested fixes

  • Make default �ackup_root deterministic and independent of transient write checks where possible.
  • If fallback behavior is kept, add a discoverability mechanism so list-backups checks both the primary default and known fallback/default roots.
  • Consider recording the last successful backup root in local tool state or deriving it from existing backup roots safely.
  • Ensure
    estore default behavior is consistent with �ackup and list-backups.

Documentation follow-up

UPDATE.md and/or the Agent Skill docs should mention that sandbox validation should use the same explicit --backup-root for �ackup, list-backups, and
estore until the default-root behavior is stable. This avoids users misreading an empty fallback directory as no backups.

Safety notes

This should not change backup contents, restore overwrite rules, credential handling, ACL handling, or .sandbox-secrets behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions