2.6 KiB
2.6 KiB
Deployment & Update Plan: Aether Native V3
Mechanism: Syncthing + Admin Share
Target: macOS Fleet
Primary Controller: admin_share directory
1. Distribution via Syncthing
We will leverage the existing Syncthing mesh to distribute binaries and configurations.
1.1 Directory Structure (Admin Share)
admin_share/
├── configs/
│ └── seed_[DEVICE_ID].json # Specific seed files for auto-provisioning
├── binaries/
│ └── native_app/
│ ├── version.json # Latest version metadata
│ └── Aether_Native.app/ # The macOS App Bundle (or .zip)
└── scripts/
└── update_helper.sh # macOS script to swap binaries
2. Self-Update Protocol
The V3 app will monitor for updates without relying on external internet access (perfect for isolated event networks).
2.1 The Update Flow
- Check: On launch (and periodically), the app reads
admin_share/binaries/native_app/version.json. - Compare: If
version.json > package.json, the app signals the user: "Update Available". - Stage: The app copies the new
.appbundle from the sync folder to a local~/Library/Caches/Aether/updates/directory. - Swap: The app launches
update_helper.shand exits. The script moves the new version into/Applications/and restarts the app.
3. Provisioning (The "Seed" Strategy)
To set up a new laptop:
- Install Syncthing and link the
admin_share. - The Electron app looks for
admin_share/configs/seed_$(hostname).json. - If found, it copies it to its local config path and bootstraps itself.
- Result: Zero manual configuration for the onsite tech.
4. macOS Specific Lifecycle
- Gatekeeper: Since these are distributed via Syncthing, we must handle the "App is damaged or from an unidentified developer" prompt.
- Plan: Include a
post-syncscript that runsxattr -rd com.apple.quarantineon the binary folder within the admin share (if permissions allow) or instructs the user on the first run.
5. Development Workflow (Arch Linux -> Mac)
- Build: On Arch Linux, run
npm run build:mac. - Package: Use
electron-packagerto create the macOS.appbundle. - Distribute: Move the built
.appinto the local Syncthingadmin_sharefolder. - Verify: Watch the fleet of Macs automatically pull the update via Syncthing.
6. Project Document Updates
The following files have been updated to reflect this deployment strategy:
NATIVE_APP_V3_REWRITE_PLAN.md: Added self-update logic requirements.NATIVE_BRIDGE_INTERFACE_SPEC.md: Addedae_sys.checkForUpdates()method.