spi-agent-gui 0.1.4 → 0.2.0

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 CHANGED
@@ -4,6 +4,22 @@
4
4
 
5
5
  - macOS Apple Silicon/Intel candidates remain separate from public Linux releases. Developer ID signing and notarization are not configured.
6
6
 
7
+ ## 0.2.0
8
+
9
+ - Remote access: open a window on one sPi desktop that drives another sPi host behind NAT/firewalls, relayed through Microsoft Dev Tunnels and end-to-end encrypted by sPi with Noise. One-time pairing codes, pinned keys, device revocation, reconnect with resync and automatic tunnel recreation. Requires the GitHub CLI signed in to the same account on both computers; local use never needs it. A paired device has full control of the host's sPi. Linux keyring required; macOS/Windows unverified.
10
+ - AI naming works on reasoning models that reject `reasoning: none`; failures show allowlisted categories only.
11
+ - Healthy sessions no longer show the connection banner; stale unresponsive state clears on real Pi progress; model and connection errors are shown once and separately.
12
+ - Linux x64/arm64 only. Save important drafts and fully quit the previous window before reopening.
13
+
14
+ ## 0.1.5
15
+
16
+ - Passive RPC diagnostics only on send failure, blocked busy submissions or manual checks; no periodic/focus/network-restoration polling. Retain exited tabs and recover saved history/drafts/outboxes without replaying unconfirmed work.
17
+ - Toggle terminal visibility without restarting the PTY; add Copy/Paste/Select all/Clear/Hide/Close context menus while keeping OSC 52 clipboard writes blocked.
18
+ - Manual and current-model AI session naming, preview before Save, synchronized directory/recent/tab labels and latest native metadata scanning. AI requests are bounded, use no tools and do not add chat entries.
19
+ - Confirmed history deletion through the system trash, with project-file/path/header safeguards and no permanent-delete fallback. Failed trash retains the exited tab and its pending input for recovery.
20
+ - Persist normal window position/size and maximized state; recover visible bounds after display changes. Add native installed-runtime and clean public-install coverage for the new controls.
21
+ - Linux x64/arm64 only. Save important drafts and fully quit the previous window before reopening; installed binaries do not hot-update an already-running GUI.
22
+
7
23
  ## 0.1.4
8
24
 
9
25
  - Fix new/history session startup when a desktop or already-running GUI has no usable Node on PATH (including stale nvm paths). Resolve compatible Node from PATH, adjacent/Pi-managed runtime locations or a bounded login-shell lookup, and prepend it only to the RPC child's environment without bypassing custom Pi launchers.
package/README.md CHANGED
@@ -8,6 +8,10 @@ Runtime downloads show percentage, received/total MiB and average speed every 10
8
8
 
9
9
  If sessions cannot start because desktop PATH differs from your terminal, sPi detects compatible Node from PATH, Pi-managed runtime or login shell. Settings → Node.js runtime also accepts an optional absolute Node executable path, checked before private saving; clear it for automatic lookup. It applies to new/reopened sessions without restarting existing ones or changing Pi/shell configuration.
10
10
 
11
+ Desktop 0.2.0 adds optional end-to-end encrypted remote access: a window on one computer can drive sPi on another, relayed through Microsoft Dev Tunnels. It requires the GitHub CLI (`gh`) signed in to the same GitHub account on both computers; local use never needs `gh`. A paired device has full control of the host's sPi, including terminals. [Remote access](https://github.com/DiamondGo/spi/blob/main/docs/remote-access.md).
12
+
13
+ Desktop 0.1.5 added passive send-triggered RPC checks and explicit recovery, terminal visibility and clipboard context menus, manual/current-model AI session names, confirmed history trash and restored window placement/maximization. AI names are suggestions to review before saving; they incur a normal model request but run no tools and do not add chat entries. Recovery keeps the outbox paused and never blindly replays work. Save important drafts and fully quit the old GUI before reopening; installation does not hot-update a running window. [Feature details](https://github.com/DiamondGo/spi/blob/main/docs/desktop-interactions.md).
14
+
11
15
  `spi --help`, `spi doctor`, `spi update`, `spi rollback`, `spi uninstall`. Use `--bin-dir` if Pi's PATH directory is not writable or another spi command exists. No shell profile is edited. User preferences and Pi sessions survive uninstall. `pi remove` removes this package, not the independently installed desktop runtime.
12
16
 
13
17
  The installer requires Node.js 22.19+; the installed command can use its private Electron runtime's Node mode. Supported platforms are only those present in the verified Release manifest. Unsigned Windows/macOS binaries may trigger OS warnings; do not disable OS protections. Linux needs a glibc desktop environment.
package/dist/spi.cjs CHANGED
@@ -11,7 +11,7 @@ var __commonJS = (cb, mod) => function __require() {
11
11
  var define_SPI_RELEASE_default;
12
12
  var init_define_SPI_RELEASE = __esm({
13
13
  "<define:__SPI_RELEASE__>"() {
14
- define_SPI_RELEASE_default = { version: "0.1.4", repository: "DiamondGo/spi", packageName: "spi-agent-gui" };
14
+ define_SPI_RELEASE_default = { version: "0.2.0", repository: "DiamondGo/spi", packageName: "spi-agent-gui" };
15
15
  }
16
16
  });
17
17
 
@@ -4871,7 +4871,7 @@ var require_package = __commonJS({
4871
4871
  "package.json"(exports2, module2) {
4872
4872
  module2.exports = {
4873
4873
  name: "spi",
4874
- version: "0.1.4",
4874
+ version: "0.2.0",
4875
4875
  description: "sPi - Simple Pi Agent GUI",
4876
4876
  private: true,
4877
4877
  license: "UNLICENSED",
@@ -4900,11 +4900,19 @@ var require_package = __commonJS({
4900
4900
  typecheck: "tsc --noEmit -p tsconfig.node.json && tsc --noEmit -p tsconfig.web.json",
4901
4901
  "test:launch": "node scripts/launch.test.cjs && node scripts/pi-session.test.cjs",
4902
4902
  "test:sessions": "node scripts/sessions.test.cjs",
4903
+ "test:session-health": "node scripts/session-health.test.cjs",
4904
+ "test:workspace-actions": "node scripts/workspace-actions.test.cjs",
4905
+ "test:ai-naming": "node scripts/ai-naming.test.cjs",
4906
+ "test:session-actions-smoke": "electron-vite build && node scripts/with-display.cjs scripts/smoke.cjs --session-actions",
4907
+ "test:session-health-smoke": "electron-vite build && node scripts/with-display.cjs scripts/smoke.cjs --session-health",
4903
4908
  "test:terminal": "node scripts/terminal.test.cjs",
4909
+ "test:remote": "node scripts/remote.test.cjs",
4910
+ "test:remote-smoke": "electron-vite build && node scripts/with-display.cjs scripts/smoke.cjs --remote",
4911
+ "test:remote-live": "electron-vite build && node scripts/with-display.cjs scripts/smoke.cjs --remote --live",
4904
4912
  "test:terminal-smoke": "electron-vite build && node scripts/with-display.cjs scripts/smoke.cjs --terminal",
4905
4913
  "test:settings": "node scripts/settings.test.cjs",
4906
4914
  "test:settings-smoke": "electron-vite build && node scripts/with-display.cjs scripts/smoke.cjs --settings",
4907
- "test:yolo": "node scripts/yolo.test.cjs && node scripts/session-bridge.test.cjs",
4915
+ "test:yolo": "node scripts/yolo.test.cjs && node scripts/session-bridge.test.cjs && node scripts/ai-naming.test.cjs",
4908
4916
  "test:extension-ui": "node scripts/extension-ui.test.cjs",
4909
4917
  "test:workspace-ui": "node scripts/workspace-ui.test.cjs",
4910
4918
  "test:runtime-env-smoke": "electron-vite build && node scripts/with-display.cjs scripts/smoke.cjs --runtime-env",
@@ -4915,6 +4923,14 @@ var require_package = __commonJS({
4915
4923
  "test:advanced": "electron-vite build && node scripts/with-display.cjs scripts/smoke.cjs --advanced"
4916
4924
  },
4917
4925
  dependencies: {
4926
+ "@microsoft/dev-tunnels-connections": "1.3.62",
4927
+ "@microsoft/dev-tunnels-contracts": "1.3.62",
4928
+ "@microsoft/dev-tunnels-management": "1.3.62",
4929
+ "@microsoft/dev-tunnels-ssh": "3.12.42",
4930
+ "@microsoft/dev-tunnels-ssh-tcp": "3.12.42",
4931
+ "@noble/ciphers": "2.4.0",
4932
+ "@noble/curves": "2.4.0",
4933
+ "@noble/hashes": "2.4.0",
4918
4934
  "@xterm/addon-fit": "^0.11.0",
4919
4935
  "@xterm/xterm": "^6.0.0",
4920
4936
  "node-pty": "^1.1.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spi-agent-gui",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "sPi - Simple Pi Agent GUI installer and Pi launcher",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",