# Bundle Archive v1

Downloaded updates are bundle archives rather than installer executables.

Archive requirements:

- top-level `bundle.json`
- payload files stored relative to the install root
- no absolute paths
- no `..` path traversal
- provider checksum must match the downloaded archive before staging

`bundle.json`:

```json
{
  "schemaVersion": 1,
  "entrypoint": "MyApp.exe",
  "files": [
    { "path": "MyApp.exe", "mode": "0755" },
    { "path": "resources/config.json", "mode": "0644" }
  ]
}
```

Install roots:

- macOS: the `.app` bundle directory
- Windows: the directory containing the running `.exe`
- Linux: the directory containing the running binary

The helper-mode apply flow stages the archive, validates `bundle.json`, backs up existing files, copies payload files into the install root, and relaunches the app using `entrypoint`.
