OverviewFilesCommitsIssuesDocsReleasesPeers

pgh commits / 35ba911

docs: fix source-install steps after correctness audit
Three bugs in the initial "Install from source" draft, all verified against source: - pgh init does NOT start pgh-sidecar (init.js only creates store / identity / config). Add `pgh app boot` (adopt marks the sidecar autostart, but nothing starts it until boot/start). - ~/.local/bin may not exist before the first `pgh app adopt` creates it, so the bare-on-PATH symlink could fail; add `mkdir -p` and an explicit PATH reminder. - OTA note was backwards. pgh-sidecar's _listUpdateCandidates treats every installed app as an autoupdate candidate — adopted source trees included — and pgh/pgh-sidecar are actively published, so OTA would silently repoint the launcher onto the published tree (a source branch *ahead* of the release even gets downgraded). Correct fix: disable autoupdate for both in ~/.config/pgh/apps.json (no CLI toggle exists). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
35ba911e945ce7dec154e04b84a3d280796500b6
by plankatron <fleeky@gmail.com> · 2026-07-20T03:05:56.000Z

Changed files (1) +31 -5

README.md +31 -5
……@@ -138,9 +138,13 @@ launchers resolve `bare` from your `PATH`, so put one there — either install
138138it globally (`npm i -g bare-runtime`) or symlink the one you just built:
139139
140140```bash
141mkdir -p ~/.local/bin
141142ln -sf "$PWD/pgh/node_modules/.bin/bare" ~/.local/bin/bare
142143```
143144
145`~/.local/bin` must be on your `PATH` for the `pgh` / `bare` launchers to
146resolve (add `export PATH="$HOME/.local/bin:$PATH"` to your shell rc if not).
147
144148### 4. Register the source trees and initialise
145149
146150`pgh app adopt` writes a launcher that runs the app **in place** from your
……@@ -156,8 +160,11 @@ directly, since `pgh` isn't on your `PATH` yet:
156160# now `pgh` is on PATH — adopt the daemon
157161pgh app adopt ./pgh-sidecar --name pgh-sidecar --bin pgh-sidecar
158162
159# one-time machine setup: store, identity vault, start pgh-sidecar
163# one-time machine setup: tree store, identity vault, config
160164pgh init
165
166# start the daemon (adopt marks it autostart; init does NOT start it)
167pgh app boot # or: pgh app start pgh-sidecar
161168```
162169
163170Confirm it came up:
……@@ -172,10 +179,29 @@ From here everything works as with a tarball install — `pgh app install`,
172179source. To pick up upstream changes: `git pull` in the relevant repo,
173180`npm install` if deps changed, then `pgh app restart pgh-sidecar`.
174181
175> **Note — OTA and source installs.** An adopted source tree is *not* managed
176> by the release-registry, so the sidecar's autoupdate won't overwrite it (that
177> is the point). It also won't self-heal over the swarm. Update it yourself with
178> `git pull` as above.
182### Keep OTA from clobbering your source install
183
184**Do this — the running sidecar auto-updates adopted apps too.** `pgh` and
185`pgh-sidecar` are actively published to the release-registry, and the sidecar's
186autoupdate poller treats every installed app as a candidate — adopted source
187trees included. When a newer (or even just *different*) release appears, it
188materializes that published tree and repoints the launcher, silently replacing
189your from-source setup. If your checkout is on an unreleased branch *ahead* of
190the latest release, it can even install the older published version over you.
191
192Autoupdate is **on by default**. Turn it off for the two packages you build
193from source by editing `~/.config/pgh/apps.json` (create it if absent):
194
195```json
196{
197 "pgh": { "autoupdate": false },
198 "pgh-sidecar": { "autoupdate": false }
199}
200```
201
202There is no CLI toggle for this yet — it has to be the file. With autoupdate
203off, you own updates: `git pull`, `npm install` if deps changed, then
204`pgh app restart pgh-sidecar`.
179205
180206## Common commands
181207