@puddle-code/cli 0.0.33 → 0.0.35
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/CHANGELOG.md +9 -4
- package/README.md +18 -10
- package/dist/index.js +1033 -461
- package/dist/public/assets/{Dashboard-D0B3Kact.js → Dashboard-CjcXc41s.js} +1 -1
- package/dist/public/assets/{EditorTabClose-DH-LS9Zv.js → EditorTabClose-CR8qjstC.js} +1 -1
- package/dist/public/assets/{LazyTerminal-SW0c7j8t.js → LazyTerminal-CSezaFiz.js} +2 -2
- package/dist/public/assets/{ModelRefcount-BO6Mp87O.js → ModelRefcount-ruz_Q9xr.js} +1 -1
- package/dist/public/assets/PaneEditorBody-66So4Ff7.js +322 -0
- package/dist/public/assets/SettingsDialog-Bye-gWnk.js +1 -0
- package/dist/public/assets/{Terminal-MrMvzcuc.js → Terminal-Cd5V3epm.js} +2 -2
- package/dist/public/assets/Workspace-DWKoGE_e.js +7 -0
- package/dist/public/assets/{buffer-store-5mtYW1Xq.js → buffer-store-C7PmP6Kk.js} +2 -2
- package/dist/public/assets/{context-menu-7ErbVngu.js → context-menu-CNjTT3SL.js} +1 -1
- package/dist/public/assets/{cssMode-DgxyyatT.js → cssMode-BszXvhfs.js} +1 -1
- package/dist/public/assets/{editor-context-CJ-O2xj0.js → editor-context-CFhFe8Rl.js} +1 -1
- package/dist/public/assets/{editor-sync-CCVhpCCj.js → editor-sync-W2W78_MY.js} +1 -1
- package/dist/public/assets/{hotkeys-BJ9IivRE.js → hotkeys-DJt0-uY0.js} +2 -2
- package/dist/public/assets/{htmlMode-CsnCJ5rN.js → htmlMode-BdSq1oJt.js} +1 -1
- package/dist/public/assets/index-oaI2xX3B.js +10 -0
- package/dist/public/assets/{jsonMode-Bm5_kMyH.js → jsonMode-BGITbv0h.js} +1 -1
- package/dist/public/assets/{session-seed-CXqY3vWw.js → session-seed-DyZA5Bb-.js} +1 -1
- package/dist/public/assets/ssh-mode-D1ZueIgo.js +1 -0
- package/dist/public/assets/{tsMode-D76dymM5.js → tsMode-B9a_Su_k.js} +1 -1
- package/dist/public/index.html +3 -3
- package/package.json +1 -1
- package/dist/public/assets/PaneEditorBody-_zHVXavR.js +0 -322
- package/dist/public/assets/SettingsDialog-DvUCRTKI.js +0 -1
- package/dist/public/assets/Workspace-CNchP0lE.js +0 -7
- package/dist/public/assets/index-D9bGlq8g.js +0 -10
- package/dist/public/assets/ssh-mode-nM399PS5.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,12 +7,17 @@ Past releases: see docs/changelogs/.
|
|
|
7
7
|
|
|
8
8
|
# Changelog
|
|
9
9
|
|
|
10
|
-
## [0.0.
|
|
10
|
+
## [0.0.35] — 2026-08-09
|
|
11
11
|
|
|
12
|
-
###
|
|
12
|
+
### Changed
|
|
13
13
|
|
|
14
|
-
- "
|
|
14
|
+
- Auto-resume ("Resume sessions" in Settings → Host) is now ON by default: a daemon restart brings interrupted sessions straight back. Config version 3 migrates an existing `autoResume: false` — the old default that `loadConfig` wrote to every config.json — to true exactly once; a false set after the migration is respected.
|
|
15
15
|
|
|
16
16
|
### Fixed
|
|
17
17
|
|
|
18
|
-
-
|
|
18
|
+
- The accounts UI's logged-in badge now updates the moment a login verifies. The daemon records the flag only after the agent's own auth check answers — after the login dialog has closed — so the badge sat stale until an unrelated refetch; it now broadcasts an `account` WS message on every change and the UI patches its cached lists live. Protocol **15.1** (additive).
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Markdown/HTML tabs gain a third view mode, **linked** (chain icon): the tab chip's toggle now cycles source → preview → linked, the icon naming the current mode. A linked tab is a follow-along rendered preview — it retargets to the most recently active renderable tab (every linked pane moving together), scoped per project under project-based layout and profile-wide otherwise, and keeps rendering its last target until the next one. Protocol **15.0** (major: a 14.x daemon's strict `view` enum would reject any snapshot carrying a linked tab, so it must auto-upgrade rather than fail every workspace save).
|
|
23
|
+
- The desktop app's "Restart to update" reopens the windows it closed: the shell records every open window's target (local and SSH — targets only, never credentials) as the swap begins, and the relaunch brings each back, falling back to the host picker when none can be reopened. One-shot with a 15-minute TTL, so a failed swap's leftover cannot resurrect windows on a later launch.
|
package/README.md
CHANGED
|
@@ -54,11 +54,21 @@ Daemon-only installs (no CLI) use the `install.sh` attached to each release —
|
|
|
54
54
|
curl -fsSL https://github.com/PerceptronV/puddle-code/releases/latest/download/install.sh | sh
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
+
**Managing components:**
|
|
58
|
+
|
|
59
|
+
The CLI installs, upgrades, and removes all three components — daemon, desktop app, and itself — with optional versions and SSH targets:
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
puddle upgrade # everything installed → the newest release
|
|
63
|
+
puddle install daemon@v0.0.32 user@host # pin a host's daemon to a version
|
|
64
|
+
puddle remove daemon # uninstall; your data stays unless you --purge
|
|
65
|
+
```
|
|
66
|
+
|
|
57
67
|
**Desktop app (optional):**
|
|
58
68
|
|
|
59
69
|
The same cockpit also ships as a standalone desktop app — identical UI and engine, plus a File → "Connect to SSH Host…" menu for remote hosts. Grab the dmg (macOS arm64) or AppImage (Linux x64) from the Releases page.
|
|
60
70
|
|
|
61
|
-
|
|
71
|
+
An installed Puddle CLI manages the desktop app directly: quit Puddle, then `puddle install desktop`, `puddle upgrade desktop`, or `puddle remove desktop`. On macOS a fresh install goes to `/Applications` when writable, otherwise `~/Applications`; on Linux `install desktop` asks where to put the AppImage (default `~/puddle`) and opens the folder — later updates happen from inside the app.
|
|
62
72
|
|
|
63
73
|
The macOS downloads are **not code-signed** (an open-source project without Apple Developer Program fees), so Gatekeeper will refuse the first launch. Either allow it once — open the app, let macOS block it, then System Settings → Privacy & Security → **Open Anyway** — or clear the download quarantine in a terminal:
|
|
64
74
|
|
|
@@ -92,7 +102,7 @@ Building from source avoids the dance entirely (locally built apps are never qua
|
|
|
92
102
|
|
|
93
103
|
The CLI serves the UI at a stable local origin and reverse-proxies the API to the daemon, directly in local mode, through the tunnel in SSH mode. The daemon is headless and host-agnostic on `127.0.0.1:7434`. UI updates ship with the CLI (`npm update -g @puddle-code/cli` refreshes the cockpit for every host); the daemon only has to update when the versioned protocol breaks, and the CLI does that automatically. A mandatory bearer token plus Host/Origin validation guard the localhost API against malicious web pages.
|
|
94
104
|
|
|
95
|
-
Everything lives under `~/.puddle` on the host, installed without sudo
|
|
105
|
+
Everything lives under `~/.puddle` on the host, installed without sudo — and `puddle remove daemon` takes it apart again.
|
|
96
106
|
|
|
97
107
|
## Development & teardown
|
|
98
108
|
|
|
@@ -115,19 +125,17 @@ systemctl --user disable --now puddled # Linux (systemd user unit)
|
|
|
115
125
|
kill "$(cat ~/.puddle/puddled.pid)" # nohup fallback (no supervisor)
|
|
116
126
|
```
|
|
117
127
|
|
|
118
|
-
**Restore the production daemon.** When you're done testing,
|
|
119
|
-
|
|
120
|
-
**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:
|
|
128
|
+
**Restore the production daemon.** When you're done testing, `puddle remove daemon` (answer no to the purge question — your profiles, sessions, and worktrees stay), then run the production `puddle launch`, which refetches the daemon from GitHub Releases. (Removal 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.)
|
|
121
129
|
|
|
122
|
-
|
|
130
|
+
**Uninstall.** Removing the CLI alone leaves the daemon installed and running — a full teardown is:
|
|
123
131
|
|
|
124
132
|
```sh
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
rm ~/.config/systemd/user/puddled.service && systemctl --user daemon-reload # Linux
|
|
128
|
-
npm uninstall -g @puddle-code/cli
|
|
133
|
+
puddle remove daemon --purge # stops the daemon, unregisters its service, deletes ~/.puddle
|
|
134
|
+
puddle remove cli # npm uninstall -g, once the daemons you care about are gone
|
|
129
135
|
```
|
|
130
136
|
|
|
137
|
+
> ⚠️ `~/.puddle` **is** your local state — the SQLite database with every profile, account, and session (plus conversation history), the daemon's worktree tracking, and the auth token. `--purge` deletes it irreversibly (the command lists dirty or unpushed worktrees and asks first); without it, `puddle remove daemon` keeps the data for a later reinstall.
|
|
138
|
+
|
|
131
139
|
## Licence
|
|
132
140
|
|
|
133
141
|
Puddle is licensed under the [MIT License](LICENSE). Copyright (c) 2026 Yiding Song.
|