feat: initial commit

This commit is contained in:
eric
2026-03-12 22:16:34 +01:00
parent 8555b02752
commit f13f4a9a69
155 changed files with 11988 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
# 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`.