Skip to content

feat: off-site push, scheduling, verify, selective restore, curl|bash…#1

Merged
dberuben merged 1 commit into
mainfrom
feat/remote-schedule-verify-selective-restore
Jun 14, 2026
Merged

feat: off-site push, scheduling, verify, selective restore, curl|bash…#1
dberuben merged 1 commit into
mainfrom
feat/remote-schedule-verify-selective-restore

Conversation

@dberuben

Copy link
Copy Markdown
Owner

… install

Adds five capabilities (v0.2.0), all zero-dependency and bash 3.2 / BSD safe:

  • Integrity: every backup writes a .sha256 sidecar; new claude-backup verify re-checks the gzip stream, checksum and path safety.
  • Off-site copy: --remote 'cmd:<command>' and a push subcommand send a backup through any command ({} = archive path); honours CLAUDE_BACKUP_REMOTE. The archive path is passed to sh -c as a positional arg (data, not code).
  • Scheduling: claude-backup schedule [--daily|--weekly|--hourly] [--at HH:MM] via launchd (macOS) / systemd user timer / crontab fallback (Linux), plus --status and unschedule. Scheduled args reject embedded newlines.
  • Selective restore: claude-restore --only <cat[,cat…]> and --list-contents (settings agents commands hooks skills mcp claude-md history plugins).
  • Install: install.sh bootstraps its sources when piped (curl | bash); overridable via CCB_REPO / CCB_REF.

Shared _chk helper moved into lib/common.sh. Completions, --help, README and CHANGELOG updated. Four new test suites (verify, remote, selective restore, schedule) with platform-faked schedulers; 96 tests pass, shellcheck clean.

… install

Adds five capabilities (v0.2.0), all zero-dependency and bash 3.2 / BSD safe:

- Integrity: every backup writes a <archive>.sha256 sidecar; new
  `claude-backup verify` re-checks the gzip stream, checksum and path safety.
- Off-site copy: `--remote 'cmd:<command>'` and a `push` subcommand send a
  backup through any command ({} = archive path); honours CLAUDE_BACKUP_REMOTE.
  The archive path is passed to sh -c as a positional arg (data, not code).
- Scheduling: `claude-backup schedule [--daily|--weekly|--hourly] [--at HH:MM]`
  via launchd (macOS) / systemd user timer / crontab fallback (Linux), plus
  `--status` and `unschedule`. Scheduled args reject embedded newlines.
- Selective restore: `claude-restore --only <cat[,cat…]>` and `--list-contents`
  (settings agents commands hooks skills mcp claude-md history plugins).
- Install: `install.sh` bootstraps its sources when piped (curl | bash);
  overridable via CCB_REPO / CCB_REF.

Shared `_chk` helper moved into lib/common.sh. Completions, --help, README and
CHANGELOG updated. Four new test suites (verify, remote, selective restore,
schedule) with platform-faked schedulers; 96 tests pass, shellcheck clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@LuuOW LuuOW left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technical audit: Architecture and implementation verified for system integrity and engineering consistency.

@dberuben dberuben merged commit b46e128 into main Jun 14, 2026
2 checks passed
@dberuben dberuben deleted the feat/remote-schedule-verify-selective-restore branch June 14, 2026 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants