Single .dmg installer from aoagents.dev (daemon bundled in the app) #301
harshitsinghbhandari
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
A second distribution channel for the rewrite, aimed at non-technical users: a single signed + notarized
.dmgdownloadable from aoagents.dev. Download, drag to Applications, double-click, it just works. No "start the daemon" step, no separate frontend install.This sits alongside the npm channel (
@aoagents/ao, for CLI/developer users). Same product, same~/.aodata dir; two front doors.The vision
A normal human visits aoagents.dev, clicks Download, opens the app like any Mac app, and is using Agent Orchestrator. They never see a terminal, a daemon, or a port.
How it works (the crux)
Today the Go daemon and the Electron app are separate processes. The Electron main process already knows how to supervise and launch the daemon (daemon-launch + port-discovery, per the frontend survey). The missing piece is making the app self-contained:
.app(in Resources). On launch, Electron spawns the bundled daemon, discovers its port, and the user never sees it. The supervision logic already exists; it just points at the bundled binary instead of an external one..dmgvia electron-forge (makers + the notarization checklist already exist indocs/desktop-release.md)..dmgon aoagents.dev. The app self-updates via Electron's existing auto-update.Decisions locked
.appbundles theaoCLI and links it onto PATH (e.g. symlink into/usr/local/bin) so one install gives both the GUI and the command. (npm stays the CLI-first channel; this just means a.dmguser also getsao.).dmgdoes NOT run the legacy-to-rewrite migration. If an existing legacy user downloads it, the app's first boot detects "legacy data present + empty~/.aostore" and directs them to run the npmao updatepath (which owns migration). The.dmgitself never touches legacy data.Build workstreams
aoCLI in the app and symlink it onto PATH on launch (handle the privilege prompt for writing to/usr/local/bin).docs/desktop-release.md; needs team-provisioned secrets. This is a hard prerequisite for a double-clickable app (Gatekeeper)..dmgmaker - electron-forge.dmgoutput (drag-to-Applications layout)..dmgper release, publish it + the auto-update feed.frontend/src/landing/) pointing at the latest.dmg.ao update" (shared with the rewrite first-boot work already on the migration track).Relationship to the npm channel
~/.aodata dir, same Go daemon + Electron app. The only difference is delivery: npm ships the daemon + CLI (Electron fetched separately); the.dmgships everything in one bundle.~/.ao, they operate on the same data. Worth a guard so two installs don't fight over the daemon/port, but they're designed to share state, not duplicate it..dmgapp self-updates via Electron's channel; npm users update viaao update/ npm. Two update channels for two install methods.Open questions
/usr/local/binneeds elevated permission on first launch; what's the prompt/flow? (VS Code's "Install 'code' command in PATH" is the reference, but we link unconditionally per the decision above.)nexttag - the.dmgapp updates itself; does its update feed track the same versions as the npmnexttag, or its own channel? Need them not to diverge..dmgfirst. Windows.exe/ Linux AppImage are the obvious follow-ups (electron-forge already has those makers); confirm Mac-first is the v1 scope.Beta Was this translation helpful? Give feedback.
All reactions