pi-studio 0.6.8 → 0.6.10
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 +10 -0
- package/README.md +1 -1
- package/client/studio-client.js +1 -1
- package/index.ts +7 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,16 @@ All notable changes to `pi-studio` are documented here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.6.10] — 2026-05-04
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- SSH tunnel hints now include the full tokenized Studio URL directly so the token remains visible even when the terminal only shows the latest notification.
|
|
11
|
+
|
|
12
|
+
## [0.6.9] — 2026-05-01
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- Blank Studio launches now open the right pane on **Response (Preview)** by default, while file-backed launches still open on **Editor (Preview)**.
|
|
16
|
+
|
|
7
17
|
## [0.6.8] — 2026-05-01
|
|
8
18
|
|
|
9
19
|
### Changed
|
package/README.md
CHANGED
|
@@ -75,7 +75,7 @@ pi -e https://github.com/omaclaren/pi-studio
|
|
|
75
75
|
## Notes
|
|
76
76
|
|
|
77
77
|
- Local-only server (`127.0.0.1`) with tokenized Studio URLs.
|
|
78
|
-
- For remote SSH sessions, keep Studio bound to localhost and use SSH local port forwarding; `/studio` and `/studio --status` print the full tokenized localhost URL. Open that URL through the tunnel, preserving the `?token=...` parameter.
|
|
78
|
+
- For remote SSH sessions, keep Studio bound to localhost and use SSH local port forwarding; `/studio` and `/studio --status` print the full tokenized localhost URL. The SSH hint repeats the full URL so it is visible even if your terminal only shows the latest notification. Open that URL through the tunnel, preserving the `?token=...` parameter.
|
|
79
79
|
- Full Studio is a singleton per Pi session: use `/studio` to open it, `/studio-replace` to explicitly replace it, and `/studio-editor-only` for extra editing/preview tabs that do not take over the full Studio session view.
|
|
80
80
|
- Studio is designed as a complement to terminal pi, not a replacement.
|
|
81
81
|
- Installing pi-studio makes the optional `pi-studio-dark` and `pi-studio-light` themes available in pi's theme selector; it does not change your active theme.
|
package/client/studio-client.js
CHANGED
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
let initialDocumentApplied = false;
|
|
177
177
|
function getInitialRightView(source) {
|
|
178
178
|
if (isEditorOnlyMode) return "editor-preview";
|
|
179
|
-
return String(source || "").trim() === "
|
|
179
|
+
return String(source || "").trim() === "file" ? "editor-preview" : "preview";
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
let editorView = "markdown";
|
package/index.ts
CHANGED
|
@@ -6088,9 +6088,9 @@ function isSshSession(): boolean {
|
|
|
6088
6088
|
);
|
|
6089
6089
|
}
|
|
6090
6090
|
|
|
6091
|
-
function buildStudioSshTunnelHint(port: number): string | null {
|
|
6091
|
+
function buildStudioSshTunnelHint(port: number, studioUrl: string): string | null {
|
|
6092
6092
|
if (!isSshSession()) return null;
|
|
6093
|
-
return `SSH detected.
|
|
6093
|
+
return `SSH detected. Full Studio URL: ${studioUrl}. Forward the remote Studio port with: ssh -L ${port}:127.0.0.1:${port} <remote-host>. Open the full URL locally through the tunnel, preserving its ?token=... parameter. If you choose a different local port, change only the port in the URL; keep the token.`;
|
|
6094
6094
|
}
|
|
6095
6095
|
|
|
6096
6096
|
function resolveRequestedStudioDocumentFromUrl(
|
|
@@ -9436,8 +9436,9 @@ export default function (pi: ExtensionAPI) {
|
|
|
9436
9436
|
} else {
|
|
9437
9437
|
ctx.ui.notify("A full pi Studio view is already open for this session. Close it first, use /studio-replace for a fresh full Studio view, or use /studio-editor-only for a concurrent editor-only Studio view.", "warning");
|
|
9438
9438
|
if (serverState) {
|
|
9439
|
-
|
|
9440
|
-
|
|
9439
|
+
const url = buildStudioUrl(serverState.port, serverState.token, "full");
|
|
9440
|
+
ctx.ui.notify(`Studio URL: ${url}`, "info");
|
|
9441
|
+
const sshTunnelHint = buildStudioSshTunnelHint(serverState.port, url);
|
|
9441
9442
|
if (sshTunnelHint) ctx.ui.notify(sshTunnelHint, "info");
|
|
9442
9443
|
}
|
|
9443
9444
|
return;
|
|
@@ -9464,7 +9465,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
9464
9465
|
|
|
9465
9466
|
const state = await ensureServer();
|
|
9466
9467
|
const url = buildStudioUrl(state.port, state.token, mode, selected);
|
|
9467
|
-
const sshTunnelHint = buildStudioSshTunnelHint(state.port);
|
|
9468
|
+
const sshTunnelHint = buildStudioSshTunnelHint(state.port, url);
|
|
9468
9469
|
const openedLabel = mode === "editor-only" ? "pi Studio editor-only view" : "pi Studio";
|
|
9469
9470
|
|
|
9470
9471
|
try {
|
|
@@ -9511,7 +9512,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
9511
9512
|
`Studio running at ${url} (busy: ${isStudioBusy() ? "yes" : "no"}; full views: ${counts.full}; editor-only views: ${counts.editorOnly})`,
|
|
9512
9513
|
"info",
|
|
9513
9514
|
);
|
|
9514
|
-
const sshTunnelHint = buildStudioSshTunnelHint(serverState.port);
|
|
9515
|
+
const sshTunnelHint = buildStudioSshTunnelHint(serverState.port, url);
|
|
9515
9516
|
if (sshTunnelHint) ctx.ui.notify(sshTunnelHint, "info");
|
|
9516
9517
|
return;
|
|
9517
9518
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-studio",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.10",
|
|
4
4
|
"description": "Two-pane browser workspace for pi with prompt/response editing, annotations, critiques, prompt/response history, and live Markdown/LaTeX/code preview",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|