@usepowerplant/cli 0.4.2 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -36,7 +36,10 @@ re-run at any time — finished steps are skipped with a note:
36
36
  the team's sessions, review rooms, and search. If you skip or cancel
37
37
  a sign-in, nothing breaks: finish later with `powerplant connect`
38
38
  (add `--client claude|codex|cursor` for just those — repeatable). Each
39
- agent's own sign-in output prints as it runs.
39
+ agent's own sign-in output prints as it runs. Connect supports Claude Code
40
+ 2.1.186, Codex 0.134.0, and Cursor 3.4 or newer; an older installation is
41
+ reported with an update hint and, when the machine holds another copy of
42
+ the same agent, that copy is tried instead.
40
43
 
41
44
  The background service is macOS-only today. On other platforms, init still
42
45
  enrolls the machine and adds MCP to your agents, and points you at running
@@ -59,7 +62,8 @@ sync-everything option.
59
62
  When the CLI itself hits a bug — a crash or an unexpected error — it sends
60
63
  an error report to [Sentry](https://sentry.io) so we can fix the problem
61
64
  without asking you to dig through logs. This is on by default, and there
62
- is no setting to turn it off today. A report contains the error and its
65
+ is no setting to turn it off for free users. Paid users can arrange an opt-out
66
+ through [support](mailto:support@forestwalk.ai). A report contains the error and its
63
67
  stack trace, the CLI version and environment, which enrolled machine and
64
68
  org the background service belongs to, and diagnostic details such as ids
65
69
  and counts. It never contains session transcripts, code, or file contents,
@@ -76,7 +80,7 @@ something out.
76
80
  ```bash
77
81
  powerplant status # what the sync service is doing (add --json for tools)
78
82
  powerplant doctor # a diagnostics summary to paste into a support email
79
- powerplant pause # stop uploads without uninstalling
83
+ powerplant pause # stop background uploads without uninstalling
80
84
  powerplant resume # start again — a catch-up pass covers the pause
81
85
  powerplant restart # restart the background service
82
86
  powerplant connect # connect agents installed after setup, or re-sign-in
@@ -86,10 +90,12 @@ powerplant sync # run one upload pass now, in the foreground
86
90
 
87
91
  `status` tells you whether the machine is enrolled, whether the service is
88
92
  running, when it last uploaded, and what (if anything) is failing — with the
89
- command that fixes it. `pause` is safe for as long as you need: nothing
90
- uploads while paused, and `resume` goes back and covers everything the pause
93
+ command that fixes it. `pause` is safe for as long as you need: the background
94
+ service uploads nothing while paused, every later command reminds you, `init`
95
+ offers to resume, and `resume` goes back and covers everything the pause
91
96
  skipped. `sync` is the manual alternative to the background service — the
92
- day-to-day upload path on machines that can't run it. `disconnect` is the
97
+ day-to-day upload path on machines that can't run it; asked for explicitly, it
98
+ still runs while paused and says so. `disconnect` is the
93
99
  inverse of `connect`: it removes each agent's Powerplant MCP entry and the
94
100
  sign-in stored with it, and agents that were never connected just say so.
95
101
 
@@ -99,10 +105,28 @@ sign-in stored with it, and agents that were never connected just say so.
99
105
  powerplant update
100
106
  ```
101
107
 
102
- That runs `npm install -g @usepowerplant/cli` for you (running it yourself
103
- works too). Either way, the background service notices the new version on
104
- disk and restarts itself onto it within moments. `powerplant status` tells
105
- you when a newer version is available.
108
+ That reinstalls `@usepowerplant/cli` with whichever package manager put it
109
+ on this machine (npm, pnpm, bun, or yarn), so the copy that is running is the
110
+ copy that gets replaced, then restarts the background sync onto the new
111
+ version. Running the manager's own global install yourself works too: the
112
+ service notices the new version on disk and restarts itself within moments.
113
+ When the install can't be replaced this way (a folder only an administrator
114
+ can write, or a layout the CLI doesn't recognise), `update` says why and
115
+ prints the command to run instead. `powerplant status` tells you when a
116
+ newer version is available, and the menu bar app offers the update as one
117
+ click; it runs in the background and the menu shows its progress.
118
+
119
+ `powerplant init` asks once whether to keep the CLI up to date
120
+ automatically (yes is the default at the prompt, and a non-interactive
121
+ init says it took that default). With that on, the background sync checks
122
+ the registry hourly (and at boot) and installs a new release the same way,
123
+ then restarts itself onto it. The choice is per machine and only an
124
+ explicit yes counts: a machine set up before the question existed stays
125
+ off until someone turns it on. `powerplant status` and `powerplant doctor`
126
+ report the current choice, and `powerplant update --automatic on` or
127
+ `--automatic off`, or the menu bar's More menu, change it. A release that
128
+ fails to install is not retried by itself; the menu bar shows the failure
129
+ with a retry and the update log, and the next release clears it.
106
130
 
107
131
  Powerplant also publishes the oldest version it still supports. When yours
108
132
  is older, `powerplant status`, `powerplant doctor`, the menu bar app, and
@@ -110,6 +134,41 @@ the sync service log all say so and point you at `powerplant update`. Nothing
110
134
  stops working on that notice — an unsupported version keeps syncing, but
111
135
  it is no longer tested or fixed, so update when you see it.
112
136
 
137
+ ### How a release reaches production
138
+
139
+ Every release is published to npm as `latest`. Machines pinned to the
140
+ staging environment (and our own development and agent machines) follow
141
+ npm, so a release soaks on our own machines first. Production machines
142
+ never follow npm: they ask the production API which version is promoted
143
+ and install exactly that, pinned. When a release has held up on staging,
144
+ dispatch the Promote CLI workflow with the version; production machines
145
+ with automatic updates install it within the hour, and everyone else sees
146
+ it in the menu bar and `powerplant status`. Until something is promoted,
147
+ production sees no update at all, only the supported-version floor.
148
+ Promoting an older version than the current one is a hold: production
149
+ stops advancing, and no machine downgrades. A bad release is undone by a
150
+ new release and a new promotion.
151
+
152
+ ### Staging beside production on one Mac
153
+
154
+ A machine has one global `powerplant` by default, and the background sync
155
+ for each environment runs whatever copy `init` was run from. To soak
156
+ releases on staging while production keeps the promoted version, give
157
+ staging its own copy under its own npm prefix and set it up from there:
158
+
159
+ ```bash
160
+ npm install -g --prefix ~/.powerplant-staging @usepowerplant/cli
161
+ ~/.powerplant-staging/bin/powerplant init --env staging
162
+ ```
163
+
164
+ The staging daemon runs that copy and updates it in place (the updater
165
+ pins npm to the prefix the running copy lives under), so
166
+ `~/.powerplant-staging` follows npm's newest release while the production
167
+ install follows the promoted one. Run staging commands through that path,
168
+ `~/.powerplant-staging/bin/powerplant status --env staging`, or put the
169
+ directory on your PATH after the production one. `powerplant doctor` names
170
+ the install it is running from.
171
+
113
172
  ### Moving from @powerplant-sh/cli
114
173
 
115
174
  Releases up to 0.2.1 were published as `@powerplant-sh/cli`. That package