@puddle-code/cli 0.0.13 → 0.0.14

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.
Files changed (25) hide show
  1. package/CHANGELOG.md +45 -6
  2. package/README.md +4 -4
  3. package/dist/index.js +446 -166
  4. package/dist/public/assets/{Dashboard-T4hbzT6P.js → Dashboard-Ct5exI8s.js} +1 -1
  5. package/dist/public/assets/{EditorTabClose-DxU5M-9J.js → EditorTabClose-BhFjRoCZ.js} +1 -1
  6. package/dist/public/assets/{LazyTerminal-Dpk5-lcY.js → LazyTerminal-B0xYs2ul.js} +2 -2
  7. package/dist/public/assets/{ModelRefcount-BGB1nvG5.js → ModelRefcount-BY5Ul0p3.js} +1 -1
  8. package/dist/public/assets/{PaneEditorBody-DX0u3ISF.js → PaneEditorBody-DLMtDiov.js} +1 -1
  9. package/dist/public/assets/{SettingsDialog-58D8eQOa.js → SettingsDialog-WhQXNCmS.js} +1 -1
  10. package/dist/public/assets/{Terminal-DlXSwAG0.js → Terminal-DA8zjtmU.js} +1 -1
  11. package/dist/public/assets/{Workspace-B_eXJKAN.js → Workspace-B0FDl771.js} +2 -2
  12. package/dist/public/assets/{buffer-store-zsL8CNKc.js → buffer-store-BHJ82Nh3.js} +2 -2
  13. package/dist/public/assets/{context-menu-C8MwVsBG.js → context-menu--H5GoapF.js} +1 -1
  14. package/dist/public/assets/{cssMode-Dzho6NMm.js → cssMode-Ctq00nXG.js} +1 -1
  15. package/dist/public/assets/{htmlMode-pj_l07tD.js → htmlMode-pYCLPiZ_.js} +1 -1
  16. package/dist/public/assets/index-CjgsCY-C.css +2 -0
  17. package/dist/public/assets/{index-oAv85qtL.js → index-RvCLpi9M.js} +4 -4
  18. package/dist/public/assets/{jsonMode-Dx2T0LuI.js → jsonMode-Ch5UticT.js} +1 -1
  19. package/dist/public/assets/{session-seed-C8M00YNU.js → session-seed-DBxHPYBK.js} +1 -1
  20. package/dist/public/assets/ssh-mode-eNTVum_C.js +1 -0
  21. package/dist/public/assets/{tsMode-DXWeq4NK.js → tsMode-CeXrzlPn.js} +1 -1
  22. package/dist/public/index.html +3 -3
  23. package/package.json +1 -1
  24. package/dist/public/assets/index-DK5CyY2G.css +0 -2
  25. package/dist/public/assets/ssh-mode-BdHO6hP9.js +0 -1
package/CHANGELOG.md CHANGED
@@ -7,14 +7,53 @@ Past releases: see docs/changelogs/.
7
7
 
8
8
  # Changelog
9
9
 
10
- ## [0.0.13] — 2026-07-28
10
+ ## [0.0.14] — 2026-07-28
11
11
 
12
- ### Changed
12
+ ### Added
13
13
 
14
- - Desktop (macOS): the native title bar is gone — the cockpit's own top bar (host, ⌘K field, settings, scratchpad, profile) doubles as a taller drag-region title bar with the traffic lights inlaid.
15
- - The window/tab title now names the project and the machine (host display-name customisation first, then hostname) instead of the literal "puddle".
16
- - Desktop: copyright credits Yiding Song (About panel / bundle metadata); the package is `@puddle-code/desktop`.
14
+ - Desktop self-update, no code signing required: the app polls GitHub
15
+ releases, downloads and SHA256SUMS-verifies the new build into
16
+ `~/.puddle/cache/desktop/`, and offers a "Restart to update" banner; a
17
+ detached helper swaps the install after quit and relaunches (SPEC §10 —
18
+ the CLI-style alternative to Squirrel, which refuses unsigned bundles).
19
+ The helper strips `com.apple.quarantine` from the swapped bundle as
20
+ defence in depth, and a Linux AppImage updates in place at `$APPIMAGE`,
21
+ wherever the user keeps it.
22
+ - `puddle upgrade` now names its subject: `puddle upgrade daemon [user@host]`
23
+ (the previous behaviour), `puddle upgrade cli` (npm under the hood), and
24
+ `puddle upgrade desktop` (the app's update pipeline, run while the app is
25
+ closed). `cli`/`desktop` refuse remote targets — only the daemon lives on
26
+ remote hosts.
17
27
 
18
28
  ### Fixed
19
29
 
20
- - Desktop (macOS): the app icon no longer sits on a white plate on macOS 26 the icns now ships full-bleed artwork (`build/icon-mac.svg`) and the OS applies its own squircle mask; Linux keeps the self-rounded `icon.svg`.
30
+ - Battery: the file explorer no longer pins a CPU core for as long as it is
31
+ mounted. Its query-cache subscription reacted to *observer* events — which
32
+ fire during React renders themselves — so every workspace window sat in a
33
+ permanent render → cache-event → re-render loop (the "Puddle is using
34
+ significant energy" report). The subscription now only reacts to query-state
35
+ events (data landing, cache add/remove). Measured on an idle workspace
36
+ (file tree + attached terminal): 83–112% CPU per window before, 0–1.2%
37
+ after; whole app now idles at ~1–2% of one core total, below macOS's
38
+ significant-energy threshold. Full write-up with methodology in
39
+ `docs/reports/2026-07-28-explorer-render-loop.md`.
40
+
41
+ ### Changed
42
+
43
+ - `puddle start` and `puddle connect` are unified into
44
+ `puddle launch [local | user@host]` — no target means local, and every flag
45
+ from both verbs (`--port`, `--prefer-port`, `--remote-port`, `--no-browser`,
46
+ `--no-upgrade`, `--tarball`, `--foreground`) rides along. The old verbs
47
+ error with the exact replacement.
48
+ - Desktop: new windows no longer default to local. Launching the app, ⌘N,
49
+ Window → New Window, and the macOS dock icon's right-click New Window all
50
+ open a host picker — "This machine" on top, then recent hosts, then
51
+ "Other SSH host…" — and nothing connects until you pick.
52
+ - Desktop: recent hosts moved from the app's userData dir to
53
+ `~/.puddle/recent-hosts.json` (migrated automatically), so they survive
54
+ app updates and reinstalls.
55
+ - Desktop (macOS): the merged title bar is a little slimmer (44 → 40px, traffic
56
+ lights re-centred), so the workspace chrome sits closer to the lights.
57
+
58
+ - Light theme: exited/idle status dots are neutral grey instead of warm bark brown (matching the 2026-07-16 muted-text re-grey; dark theme was already grey).
59
+ - Desktop (macOS): more breathing room between the traffic lights and the host name in the merged title bar.
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  Puddle is an open-source, multi-account coding agent orchestrator with first-class SSH support and a lightweight GUI. With a single command,
7
7
 
8
8
  ```bash
9
- puddle connect <user>@<host>
9
+ puddle launch <user>@<host>
10
10
  ```
11
11
 
12
12
  Puddle manages parallel agents anywhere you SSH into, insulates agents in dedicated worktrees, and keeps your agents alive across disconnects and restarts.
@@ -22,7 +22,7 @@ npm install -g @puddle-code/cli
22
22
  **To launch agents on a remote host:**
23
23
 
24
24
  ```sh
25
- puddle connect <user>@<host>
25
+ puddle launch <user>@<host>
26
26
  ```
27
27
 
28
28
  This connects Puddle to the remote host over SSH, bootstrapping the Puddle daemon on first contact and enabling you to begin development.
@@ -32,7 +32,7 @@ Puddle works using your system `ssh`, so `~/.ssh/config`, agents, and jump hosts
32
32
  **For development on your own machine:**
33
33
 
34
34
  ```sh
35
- puddle start
35
+ puddle launch
36
36
  ```
37
37
 
38
38
  This installs the Puddle daemon under `~/.puddle` and serves the GUI at `http://localhost:7433`.
@@ -106,7 +106,7 @@ systemctl --user disable --now puddled # Linux (systemd user unit)
106
106
  kill "$(cat ~/.puddle/puddled.pid)" # nohup fallback (no supervisor)
107
107
  ```
108
108
 
109
- **Restore the production daemon.** When you're done testing, put the release build back over your dev one: stop the daemon (above), clear the installed binaries with `rm -rf ~/.puddle/bin` (your `~/.puddle` state — profiles, sessions, worktrees — is untouched), then run the production `puddle start`, which refetches the daemon from GitHub Releases. (Clearing `bin` is what forces the refetch: the installer skips a version whose files are already present, so a dev build sharing the release's version number would otherwise stay put.)
109
+ **Restore the production daemon.** When you're done testing, put the release build back over your dev one: stop the daemon (above), clear the installed binaries with `rm -rf ~/.puddle/bin` (your `~/.puddle` state — profiles, sessions, worktrees — is untouched), then run the production `puddle launch`, which refetches the daemon from GitHub Releases. (Clearing `bin` is what forces the refetch: the installer skips a version whose files are already present, so a dev build sharing the release's version number would otherwise stay put.)
110
110
 
111
111
  **Uninstall.** Removing the CLI alone leaves the daemon installed and running — a full teardown stops the daemon, then removes its state, its service file, and the production CLI:
112
112