diff --git a/CLAUDE.md b/CLAUDE.md index 2c1c9a4..fdd3461 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -52,6 +52,7 @@ whm/ ├── restore.cgi # Restore workflow — 4-step form (account → snapshot → confirm → execute) ├── assets/ │ ├── gniza-whm.css # Built Tailwind/DaisyUI CSS (committed, ~58KB) + │ ├── gniza-logo.svg # SVG logo (embedded as data URI in page header) │ └── src/ │ ├── input.css # Tailwind v4 entry point with DaisyUI plugin │ ├── safelist.html # Class safelist for Tailwind content scanner @@ -384,7 +385,7 @@ All restore functions dispatch by `_is_rclone_mode` — using `rclone_from_remot | Function | Description | |----------|-------------| -| `restore_full_account(user, ts)` | Full account restore from snapshot | +| `restore_full_account(user, ts, terminate, exclude)` | Full account restore from snapshot. If `terminate=true`, removes existing account via `/scripts/removeacct` before restoring. Otherwise merges with `--force`. | | `restore_files(user, ts, path)` | Restore specific files/directories | | `restore_database(user, ts, dbname)` | Restore a MySQL database from snapshot | | `restore_mailbox(user, email, ts)` | Restore a mailbox (parses email → mail/domain/user path) | @@ -442,7 +443,7 @@ Pattern-based command runner for safe CLI execution from the WHM UI. Each allowe | `run($cmd, $subcmd, \@args, \%opts)` | Validate against allowlist and execute gniza CLI | Allowed commands: `restore account/files/database/mailbox/list-databases/list-mailboxes`, `list`. -Named option patterns: `--remote`, `--timestamp`, `--path`, `--account`. +Named option patterns: `--remote`, `--timestamp`, `--path`, `--account`, `--terminate`, `--exclude`. ### GnizaWHM::Config @@ -525,6 +526,31 @@ _restore_remote_globals **NEVER write custom CSS.** Always use Tailwind utility classes and DaisyUI components exclusively. All styling must be done through class attributes in HTML — no custom CSS rules, no `\n} - . qq{