feat: reconcile WebAVP desktop parity and releases
This commit is contained in:
@@ -11,7 +11,7 @@ The app can run in two modes:
|
||||
- Import AES-encrypted ZIP exports with an in-app password prompt
|
||||
- Synchronize multiple camera segments on a shared timeline
|
||||
- Scrub, zoom, pan, change playback speed, and frame-step footage
|
||||
- Reorder, hide/show, expand, and manually lay out camera tiles
|
||||
- Reorder, hide/show, expand, and automatically or manually lay out up to 16 camera tiles (4x4)
|
||||
- Use region zoom and scroll zoom tools
|
||||
- Verify signed exports offline and optionally confirm certificates with Alta's cloud verification endpoint
|
||||
- Preserve sessions across refreshes with IndexedDB
|
||||
@@ -23,12 +23,14 @@ npm install
|
||||
npm start
|
||||
```
|
||||
|
||||
The Electron shell loads the existing UI through the custom `webavp://app/` protocol, so local assets are served from the packaged app instead of brittle `file://` paths. Certificate verification is bridged through Electron IPC (`window.webavpNative.verifyCertificateOnline`) and performed in the main process.
|
||||
The Electron shell loads the same player template used by web mode through the custom `webavp://app/` protocol. Certificate verification and GitPeji update checks are bridged through narrowly scoped Electron IPC. **Check for Updates** compares semantic versions and opens the matching public GitPeji release asset in the system browser; installation remains an explicit user action.
|
||||
|
||||
Packaging scripts are included:
|
||||
|
||||
```bash
|
||||
npm run dist
|
||||
npm run dist:linux # Linux x64 AppImage + deb
|
||||
npm run dist:mac # macOS x64 + arm64 dmg (run on macOS)
|
||||
npm run dist:win # Windows x64 NSIS installer (run on Windows)
|
||||
```
|
||||
|
||||
`electron-builder` is configured for Linux AppImage/deb, macOS dmg, and Windows nsis. Cross-platform packaging still needs to be run on the target OS/build host.
|
||||
@@ -37,16 +39,18 @@ npm run dist
|
||||
|
||||
```bash
|
||||
python3 app.py
|
||||
# http://0.0.0.0:5152
|
||||
# http://127.0.0.1:5152
|
||||
```
|
||||
|
||||
The Python stdlib server serves `/`, `/static/*`, and `/api/verify-cert`. There are no Python package dependencies.
|
||||
The Python stdlib server serves `/`, `/static/*`, and `/api/verify-cert`. It binds to `127.0.0.1` by default; set `WEBAVP_HOST=0.0.0.0` only for deliberate trusted-LAN sharing. Web mode shows **Download Desktop App**, selecting the latest compatible public GitPeji release asset when available and otherwise opening the releases page.
|
||||
|
||||
## Checks
|
||||
|
||||
```bash
|
||||
npm run check
|
||||
xvfb-run -a npm run smoke
|
||||
npm run smoke # Electron on a desktop session
|
||||
npm run smoke:headless # Electron under xvfb on headless Linux
|
||||
WEBAVP_SMOKE_WEB_URL=http://127.0.0.1:5152/ npm run smoke:web
|
||||
```
|
||||
|
||||
`check` runs Electron main/preload syntax checks and `py_compile` for the Python server. `smoke` starts Electron, waits for `webavp://app/index.html` to finish loading, then exits automatically. On a desktop session, `npm run smoke` is enough; on headless Linux, use `xvfb-run -a npm run smoke`.
|
||||
`check` runs syntax, focused layout/release regressions, Python server tests, and source invariants. The smoke commands exercise the shared template in both Electron and served web modes. See `RELEASING.md` for the GitPeji publishing and asset contract.
|
||||
|
||||
Reference in New Issue
Block a user