diff --git a/.changeset/apps-screens-label.md b/.changeset/apps-screens-label.md deleted file mode 100644 index 2a8b363d0..000000000 --- a/.changeset/apps-screens-label.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": patch -"@internal/docs": patch -"@internal/website": patch ---- - -Name the dashboard entry point Apps & screens and its picker Open app or screen, with matching setup guidance and documentation. Keep API and MCP identifiers stable. Simplify the website demonstration and support private development hostnames through local environment settings. diff --git a/.changeset/betterdisplay-protocol-docs.md b/.changeset/betterdisplay-protocol-docs.md deleted file mode 100644 index c7b892e72..000000000 --- a/.changeset/betterdisplay-protocol-docs.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/docs": patch ---- - -Document the BetterDisplay CLI, helper socket protocol, and RFB transport, with a user-facing explanation of the macOS connection. - -Organize preview security by authorization, transport, VNC, macOS consent, and revocation, and clarify local-listener and capability-link risks. diff --git a/.changeset/codex-mcp-environment-guidance.md b/.changeset/codex-mcp-environment-guidance.md deleted file mode 100644 index be6b4ff5a..000000000 --- a/.changeset/codex-mcp-environment-guidance.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/docs": patch ---- - -Explain Codex MCP environment forwarding, missing-identity troubleshooting, and the boundaries of direct API fallbacks. diff --git a/.changeset/codex-mcp-forward-environment.md b/.changeset/codex-mcp-forward-environment.md deleted file mode 100644 index 3901082b5..000000000 --- a/.changeset/codex-mcp-forward-environment.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@subshell-ai/plugin-codex": patch -"@internal/server": patch ---- - -Forward pane identity explicitly to Codex MCP processes so Subshell tools can initialize. diff --git a/.changeset/compact-dialog-titles.md b/.changeset/compact-dialog-titles.md deleted file mode 100644 index f3a33b378..000000000 --- a/.changeset/compact-dialog-titles.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/server": patch ---- - -Reduce standard dialog titles to 18px and align the close button with the title. Reduce dialog padding to 18px on all sides. diff --git a/.changeset/compact-rows-one-grammar.md b/.changeset/compact-rows-one-grammar.md deleted file mode 100644 index 6e2d9f45a..000000000 --- a/.changeset/compact-rows-one-grammar.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/server": patch ---- - -Use 13px text, 2px vertical padding, and 28px minimum rows for action-menu items. diff --git a/.changeset/display-provider-abstraction.md b/.changeset/display-provider-abstraction.md deleted file mode 100644 index a7cc30b22..000000000 --- a/.changeset/display-provider-abstraction.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch -"@internal/docs": patch ---- - -Separate virtual display providers from viewer connections and launch settings. Allow node owners to enable multiple display providers and choose a default, with Xvfb + VNC as the initial option. Persist per-subshell provider choices for restart and preserve display requests in presets. Check requirements for the selected provider and preserve existing displays when the selection changes. - -Order provider allocation and cleanup per subshell, recheck permission after asynchronous prerequisites, and verify VNC listener ownership during allocation and recovery. Reserve viewer ports before probing to prevent concurrent displays from selecting the same port. diff --git a/.changeset/docs-preview-clarity.md b/.changeset/docs-preview-clarity.md deleted file mode 100644 index 0a4aee1e7..000000000 --- a/.changeset/docs-preview-clarity.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/docs": patch ---- - -Clarify preview and virtual-display setup, remove repeated implementation detail from the architecture overview, and correct macOS support, node protocol, and Codex MCP guidance. diff --git a/.changeset/explain-disabled-mcp-displays.md b/.changeset/explain-disabled-mcp-displays.md deleted file mode 100644 index 5531542e0..000000000 --- a/.changeset/explain-disabled-mcp-displays.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch ---- - -Explain when node settings disable a virtual display requested through MCP, and verify independent preview permissions for dashboard and agent access. diff --git a/.changeset/fix-action-menu-viewport-clamp.md b/.changeset/fix-action-menu-viewport-clamp.md deleted file mode 100644 index da8387352..000000000 --- a/.changeset/fix-action-menu-viewport-clamp.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/server": patch ---- - -Fix action menus running past the bottom of the screen. A menu taller than the space available (the subshell actions menu on a phone or short window) is now clamped to the viewport and scrolls within it, instead of its last items falling off the bottom where nothing could reach them. diff --git a/.changeset/grok-build-harness.md b/.changeset/grok-build-harness.md deleted file mode 100644 index 0d54cd03f..000000000 --- a/.changeset/grok-build-harness.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@subshell-ai/plugin-grok-build": minor -"@internal/server": minor -"@internal/desktop-server": minor -"@internal/docs": patch ---- - -Add the Grok Build harness with CLI detection, launch presets, and one-time MCP registration. Each subshell runs a dedicated Grok agent process so its MCP tools inherit the correct credentials. diff --git a/.changeset/macos-betterdisplay-helper.md b/.changeset/macos-betterdisplay-helper.md deleted file mode 100644 index 6f4afeae2..000000000 --- a/.changeset/macos-betterdisplay-helper.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -"@internal/server": minor -"@internal/node": minor -"@internal/desktop-client": minor -"@internal/desktop-server": minor -"@internal/docs": minor ---- - -Add the BetterDisplay virtual display provider for macOS. Bundle a shared native display helper in both desktop apps, disabled by default and managed through a separate native settings panel. Require explicit local consent and macOS permissions, support immediate disable, and keep activation outside first-run setup and remote node/MCP controls. - -Reuse the authenticated screen viewer with bounded native capture and input, retain verified display ownership for cleanup and recovery, and document activation and macOS shared-desktop limitations in node settings. - -Recheck consent and permissions after native capture startup and on input, and close new displays when node policy changes during allocation. - -Keep uncertain creation records separate so retries can proceed, explain vanished displays, share probe cleanup guards, and encode frames away from the helper's UI thread. Show platform-appropriate provider settings and prevent equal-version release bundles from replacing each other's helper. diff --git a/.changeset/mobile-key-bar-touch-scroll.md b/.changeset/mobile-key-bar-touch-scroll.md deleted file mode 100644 index 7ea40ba7f..000000000 --- a/.changeset/mobile-key-bar-touch-scroll.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/server": patch ---- - -Fix the mobile key bar's scroll, page up/down, byte, and paste keys doing nothing under a real finger on iPhone. The bar cancels the button's pointer-down to keep the terminal focused, and WebKit then skips the click it would otherwise synthesize, so the action that rode `click` never ran. Buttons now act on pointer-up (which every browser delivers), a tap that pans off the button sends nothing, and a browser that still clicks sends once, not twice. diff --git a/.changeset/node-feature-documentation-links.md b/.changeset/node-feature-documentation-links.md deleted file mode 100644 index ddca3ef63..000000000 --- a/.changeset/node-feature-documentation-links.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/docs": patch ---- - -Document independent node preview permissions in node management, architecture, MCP, and protocol references. diff --git a/.changeset/node-view-prerequisites.md b/.changeset/node-view-prerequisites.md deleted file mode 100644 index 5a4adf5a2..000000000 --- a/.changeset/node-view-prerequisites.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/server": patch ---- - -Show Apps & screens prerequisite checks in node settings, including missing virtual display programs, setup guidance, and a Recheck action. Explain platform limitations and make the disabled state visible beside the node's switch. diff --git a/.changeset/oh-my-pi-harness.md b/.changeset/oh-my-pi-harness.md deleted file mode 100644 index 4fc19ffe0..000000000 --- a/.changeset/oh-my-pi-harness.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@subshell-ai/plugin-oh-my-pi": minor -"@internal/server": minor -"@internal/node": patch -"@internal/desktop-server": patch -"@internal/desktop-client": patch -"@internal/docs": patch ---- - -Add Oh My Pi as a built-in harness, with omp detection, model/provider/thinking settings, and automatic per-launch MCP configuration. Document installation and the integration's session behavior. diff --git a/.changeset/pane-maximize-menu.md b/.changeset/pane-maximize-menu.md deleted file mode 100644 index 9547efc8b..000000000 --- a/.changeset/pane-maximize-menu.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/server": patch ---- - -Remove the terminal tab bar’s standalone maximize control and action menu. Keep Restore available for maximized groups. diff --git a/.changeset/pane-preview.md b/.changeset/pane-preview.md deleted file mode 100644 index 05e1b51b7..000000000 --- a/.changeset/pane-preview.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@internal/server": major -"@internal/node": major -"@internal/docs": patch ---- - -Add web previews, browser watching, saved web services, and virtual displays to subshell workspaces. Open each view in its own draggable tab beside the terminal, move it between splits, or use full screen. Closing a preview leaves its terminal and sibling views running. - -Node settings independently control web previews and virtual displays. Enabling web previews makes them available to the node’s subshells. Nodes can enable multiple display providers and choose a default. Virtual displays are requested at launch, use the default or a selected enabled provider, and check prerequisites before starting. Xvfb + VNC is the initial provider and requires Linux with Xvfb, x11vnc, and xauth. Presets can save a provider choice. Each subshell keeps its resolved provider and display size on restart, even when the node default changes. Disabling a provider prevents new displays and restarts without stopping existing displays. The server’s built-in node uses the same runtime as enrolled nodes. - -Expose feature permissions, display-provider selection, prerequisites, and view controls through MCP. The UI explains disabled features and links to setup documentation. Switching nodes clears incompatible agent and display selections, resets the working directory, and explains the corrections. Preview choices use compact rows with plain port numbers, and phone previews preserve the desktop workspace layout. - -Isolate web-preview scripts from dashboard credentials and browser storage, restrict viewers to authorized resources, and revoke views when access changes or subshells stop. Keep target cookies on the server, bound transport buffers and image dimensions, verify display process ownership before cleanup, and redact preview capability references from diagnostics. diff --git a/.changeset/preset-enable-disable.md b/.changeset/preset-enable-disable.md deleted file mode 100644 index 658f5fadd..000000000 --- a/.changeset/preset-enable-disable.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": minor -"@internal/node": minor -"@internal/docs": patch ---- - -Presets can now be switched off. A new toggle in the presets table parks a preset without deleting it: a switched-off preset disappears from every launch picker and from the MCP `list_presets` answer, and starting or restarting a subshell with one is refused until you switch it back on. Panes already running from it are untouched. diff --git a/.changeset/preview-allocation-authorization.md b/.changeset/preview-allocation-authorization.md deleted file mode 100644 index 6369beade..000000000 --- a/.changeset/preview-allocation-authorization.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch -"@internal/docs": patch ---- - -Close a preview permission-downgrade race, bound image decoding and retained -resources, and check transport backpressure before encryption. Verify display -process identity before cleanup and document the additional security review. diff --git a/.changeset/preview-guide-media.md b/.changeset/preview-guide-media.md deleted file mode 100644 index 1085daec9..000000000 --- a/.changeset/preview-guide-media.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/docs": patch ---- - -Document website previews, virtual displays, browser isolation, private preview links, and the preview architecture and protocol. Add screenshots captured from an isolated sample project. diff --git a/.changeset/preview-macos-guide.md b/.changeset/preview-macos-guide.md deleted file mode 100644 index 5a30dd9e0..000000000 --- a/.changeset/preview-macos-guide.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@internal/docs": patch ---- - -Explain how Mac users can use Preview with a Linux node, where to install -virtual-display prerequisites, and which macOS features are unavailable. diff --git a/.changeset/preview-mcp-capabilities.md b/.changeset/preview-mcp-capabilities.md deleted file mode 100644 index 13d653868..000000000 --- a/.changeset/preview-mcp-capabilities.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch -"@internal/docs": patch ---- - -Add MCP Preview discovery, private connections, browser watching, and virtual-display launches. Include harness health, SSH/Preview settings, and live display prerequisite checks in node discovery, with owner-only access preserved. Document the workflow and capability-link security boundary. diff --git a/.changeset/preview-review-fixes.md b/.changeset/preview-review-fixes.md deleted file mode 100644 index 9a4e475bf..000000000 --- a/.changeset/preview-review-fixes.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@internal/server": patch -"@internal/docs": patch ---- - -Require an authorized browser-watch registration before delivering frames and revoke watches that no longer meet view-only browser restrictions. Preserve virtual-display dimensions across restarts and refuse disabled displays before stopping a live subshell. Buffer early target greetings within bounded lane limits so virtual-display connections cannot lose their handshake. diff --git a/.changeset/preview-security-followup.md b/.changeset/preview-security-followup.md deleted file mode 100644 index 6216a6554..000000000 --- a/.changeset/preview-security-followup.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch -"@internal/docs": patch ---- - -Cancel pending preview opens when access is revoked, and recheck authorization before publishing them. Keep CDP discovery on its requested loopback endpoint. Bound proxy response buffers, fragmented WebSocket messages, and target cookies, and prevent preview targets from installing dashboard reporting policies. diff --git a/.changeset/preview-subscription-revocation.md b/.changeset/preview-subscription-revocation.md deleted file mode 100644 index 35c1e0537..000000000 --- a/.changeset/preview-subscription-revocation.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch -"@internal/docs": patch ---- - -Recheck live-screen subscriptions when revocation overtakes their permission check. Limit queued writes to preview targets that stop reading, and clean up node resources after uncertain preview-open replies. diff --git a/.changeset/quick-machine-launch.md b/.changeset/quick-machine-launch.md deleted file mode 100644 index 308d8b7bb..000000000 --- a/.changeset/quick-machine-launch.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": patch ---- - -Add a + menu beside sidebar machine groups to start a terminal with that machine's recent directory or open the new-subshell dialog with the node selected. - -Keep the working-directory default when reopening the launch dialog, and close the directory picker after choosing a folder, Recent path, or Favorite without reopening it when focus returns to the input. diff --git a/.changeset/rename-web-previews.md b/.changeset/rename-web-previews.md deleted file mode 100644 index 032d41615..000000000 --- a/.changeset/rename-web-previews.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch -"@internal/docs": patch ---- - -Rename apps and browsers to Web previews throughout the dashboard, API and MCP permission fields, node protocol, and documentation. diff --git a/.changeset/saved-browser-services.md b/.changeset/saved-browser-services.md deleted file mode 100644 index f9c5ce366..000000000 --- a/.changeset/saved-browser-services.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": minor -"@internal/node": minor -"@internal/docs": patch ---- - -Save HTTP or HTTPS services in Apps & screens, including services started outside a subshell. Open each in its own workspace tab, and remove saved connections without stopping their services. Manual connections work without a virtual display, including on macOS nodes. Node protocol 24 adds explicit destinations and certificate-verified HTTPS. diff --git a/.changeset/separate-node-preview-permissions.md b/.changeset/separate-node-preview-permissions.md deleted file mode 100644 index 6d05c9106..000000000 --- a/.changeset/separate-node-preview-permissions.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": minor -"@internal/node": minor -"@internal/docs": patch ---- - -Separate node permissions for apps and browsers from virtual displays. Apps and browser features apply to every subshell when enabled; virtual displays still require an explicit launch choice. Preserve existing grants, show feature-specific readiness, and enforce both switches on the server and node. diff --git a/.changeset/sidebar-picker-sizing.md b/.changeset/sidebar-picker-sizing.md deleted file mode 100644 index 13eaba0bf..000000000 --- a/.changeset/sidebar-picker-sizing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/server": patch ---- - -Match sidebar workspace and grouping dropdown rows to their compact triggers, using 28px rows and 13px text. diff --git a/.changeset/sticky-launch-actions.md b/.changeset/sticky-launch-actions.md deleted file mode 100644 index d373a4361..000000000 --- a/.changeset/sticky-launch-actions.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": patch ---- - -Keep Cancel and Start subshell visible while scrolling the new subshell form. Cancel and Close discard the draft before the dialog is reopened. - -Opening a new subshell no longer automatically reapplies the previous subshell’s preset. diff --git a/.changeset/subshell-view-api-names.md b/.changeset/subshell-view-api-names.md deleted file mode 100644 index 55f563aab..000000000 --- a/.changeset/subshell-view-api-names.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch -"@internal/docs": patch ---- - -Name the unreleased Apps & screens API resources views and expose MCP tools list_subshell_views, open_subshell_view, and watch_subshell_browser. Rename node readiness and enablement discovery, align viewer controls and permission labels, and document the persisted and protocol identifiers retained for compatibility. diff --git a/.changeset/update-zod-validation.md b/.changeset/update-zod-validation.md deleted file mode 100644 index ab2b4a1aa..000000000 --- a/.changeset/update-zod-validation.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch -"@internal/docs": patch -"@internal/website": patch ---- - -Update Zod to 4.6.7 and override Expo CLI’s older Zod dependency to remove the vulnerable version from the dependency tree. diff --git a/.changeset/view-review-lifecycle.md b/.changeset/view-review-lifecycle.md deleted file mode 100644 index e99919712..000000000 --- a/.changeset/view-review-lifecycle.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@internal/server": patch -"@internal/node": patch ---- - -Prevent late browser-watch requests from reactivating closed or changed views, preserve selected virtual displays during same-node rechecks, and clarify disabled settings and setup guidance. Reject conflicting MCP app/display arguments before creating a connection. diff --git a/.changeset/virtual-display-developer-guides.md b/.changeset/virtual-display-developer-guides.md deleted file mode 100644 index b2e033246..000000000 --- a/.changeset/virtual-display-developer-guides.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/docs": minor ---- - -Explain virtual display architecture and provide a runnable provider implementation guide with registration, recovery, security, and compiled-runtime validation. diff --git a/.changeset/virtual-display-explanation.md b/.changeset/virtual-display-explanation.md deleted file mode 100644 index 2fc75b852..000000000 --- a/.changeset/virtual-display-explanation.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/server": patch ---- - -Explain when a virtual display is useful and its resource cost beside the launch checkbox. diff --git a/.changeset/virtual-display-setup-link.md b/.changeset/virtual-display-setup-link.md deleted file mode 100644 index 4d0063deb..000000000 --- a/.changeset/virtual-display-setup-link.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@internal/server": patch -"@internal/docs": patch ---- - -Link missing virtual-display prerequisites to the setup guide instead of -listing installation instructions in the launch form. diff --git a/.changeset/web-preview-developer-guides.md b/.changeset/web-preview-developer-guides.md deleted file mode 100644 index 335072f88..000000000 --- a/.changeset/web-preview-developer-guides.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/docs": minor ---- - -Document web preview architecture and extension boundaries with a runnable HTTP/WebSocket target and validation guidance. diff --git a/.changeset/website-preview-demo.md b/.changeset/website-preview-demo.md deleted file mode 100644 index 0f3ff1348..000000000 --- a/.changeset/website-preview-demo.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@internal/website": patch ---- - -Add a website preview demonstration directly below the mobile video, showing a real coding agent fixing project filters and checking the result beside its terminal. diff --git a/apps/client/desktop/CHANGELOG.md b/apps/client/desktop/CHANGELOG.md index 08b138be7..e7734f765 100644 --- a/apps/client/desktop/CHANGELOG.md +++ b/apps/client/desktop/CHANGELOG.md @@ -1,5 +1,23 @@ # @internal/desktop-client +## 1.4.0 + +### Minor Changes + +- [#443](https://github.com/subshell-ai/subshell/pull/443) [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440) Thanks [@theogravity](https://github.com/theogravity)! - Add the BetterDisplay virtual display provider for macOS. Bundle a shared native display helper in both desktop apps, disabled by default and managed through a separate native settings panel. Require explicit local consent and macOS permissions, support immediate disable, and keep activation outside first-run setup and remote node/MCP controls. + + Reuse the authenticated screen viewer with bounded native capture and input, retain verified display ownership for cleanup and recovery, and document activation and macOS shared-desktop limitations in node settings. + + Recheck consent and permissions after native capture startup and on input, and close new displays when node policy changes during allocation. + + Keep uncertain creation records separate so retries can proceed, explain vanished displays, share probe cleanup guards, and encode frames away from the helper's UI thread. Show platform-appropriate provider settings and prevent equal-version release bundles from replacing each other's helper. + +### Patch Changes + +- [#446](https://github.com/subshell-ai/subshell/pull/446) [`a1adc0e`](https://github.com/subshell-ai/subshell/commit/a1adc0ebc3d0c137f84b92f08599ba2e3139a843) Thanks [@theogravity](https://github.com/theogravity)! - Add Oh My Pi as a built-in harness, with omp detection, model/provider/thinking settings, and automatic per-launch MCP configuration. Document installation and the integration's session behavior. +- Updated dependencies [[`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440), [`a1adc0e`](https://github.com/subshell-ai/subshell/commit/a1adc0ebc3d0c137f84b92f08599ba2e3139a843), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`f72a30b`](https://github.com/subshell-ai/subshell/commit/f72a30b2073dbd179e10680fdf31018a01b81c1d), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661)]: + - @internal/node@3.0.0 + ## 1.3.8 ### Patch Changes diff --git a/apps/client/desktop/package.json b/apps/client/desktop/package.json index a05c8359b..d2e69a400 100644 --- a/apps/client/desktop/package.json +++ b/apps/client/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@internal/desktop-client", "description": "Subshell Client: a Tauri shell that registers this machine as a subshell node and manages its node daemon", - "version": "1.3.8", + "version": "1.4.0", "license": "Apache-2.0", "type": "module", "private": true, diff --git a/apps/docs/CHANGELOG.md b/apps/docs/CHANGELOG.md index 27cb28c42..1a30ba61c 100644 --- a/apps/docs/CHANGELOG.md +++ b/apps/docs/CHANGELOG.md @@ -1,5 +1,83 @@ # @internal/docs +## 0.11.0 + +### Minor Changes + +- [#443](https://github.com/subshell-ai/subshell/pull/443) [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440) Thanks [@theogravity](https://github.com/theogravity)! - Add the BetterDisplay virtual display provider for macOS. Bundle a shared native display helper in both desktop apps, disabled by default and managed through a separate native settings panel. Require explicit local consent and macOS permissions, support immediate disable, and keep activation outside first-run setup and remote node/MCP controls. + + Reuse the authenticated screen viewer with bounded native capture and input, retain verified display ownership for cleanup and recovery, and document activation and macOS shared-desktop limitations in node settings. + + Recheck consent and permissions after native capture startup and on input, and close new displays when node policy changes during allocation. + + Keep uncertain creation records separate so retries can proceed, explain vanished displays, share probe cleanup guards, and encode frames away from the helper's UI thread. Show platform-appropriate provider settings and prevent equal-version release bundles from replacing each other's helper. + +- [#443](https://github.com/subshell-ai/subshell/pull/443) [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440) Thanks [@theogravity](https://github.com/theogravity)! - Explain virtual display architecture and provide a runnable provider implementation guide with registration, recovery, security, and compiled-runtime validation. + +- [#443](https://github.com/subshell-ai/subshell/pull/443) [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440) Thanks [@theogravity](https://github.com/theogravity)! - Document web preview architecture and extension boundaries with a runnable HTTP/WebSocket target and validation guidance. + +### Patch Changes + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Name the dashboard entry point Apps & screens and its picker Open app or screen, with matching setup guidance and documentation. Keep API and MCP identifiers stable. Simplify the website demonstration and support private development hostnames through local environment settings. + +- [#443](https://github.com/subshell-ai/subshell/pull/443) [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440) Thanks [@theogravity](https://github.com/theogravity)! - Document the BetterDisplay CLI, helper socket protocol, and RFB transport, with a user-facing explanation of the macOS connection. + + Organize preview security by authorization, transport, VNC, macOS consent, and revocation, and clarify local-listener and capability-link risks. + +- [#445](https://github.com/subshell-ai/subshell/pull/445) [`6d3ac61`](https://github.com/subshell-ai/subshell/commit/6d3ac61c90a4beafbf340c28bfc82a496dbf8a41) Thanks [@theogravity](https://github.com/theogravity)! - Explain Codex MCP environment forwarding, missing-identity troubleshooting, and the boundaries of direct API fallbacks. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Separate virtual display providers from viewer connections and launch settings. Allow node owners to enable multiple display providers and choose a default, with Xvfb + VNC as the initial option. Persist per-subshell provider choices for restart and preserve display requests in presets. Check requirements for the selected provider and preserve existing displays when the selection changes. + + Order provider allocation and cleanup per subshell, recheck permission after asynchronous prerequisites, and verify VNC listener ownership during allocation and recovery. Reserve viewer ports before probing to prevent concurrent displays from selecting the same port. + +- [#451](https://github.com/subshell-ai/subshell/pull/451) [`66a493b`](https://github.com/subshell-ai/subshell/commit/66a493b432010f470a3a5c4d820d79001cd1c61c) Thanks [@theogravity](https://github.com/theogravity)! - Clarify preview and virtual-display setup, remove repeated implementation detail from the architecture overview, and correct macOS support, node protocol, and Codex MCP guidance. + +- [#448](https://github.com/subshell-ai/subshell/pull/448) [`0c0691c`](https://github.com/subshell-ai/subshell/commit/0c0691c05ae8f1356ecd5ba265ad91f1793f307b) Thanks [@theogravity](https://github.com/theogravity)! - Add the Grok Build harness with CLI detection, launch presets, and one-time MCP registration. Each subshell runs a dedicated Grok agent process so its MCP tools inherit the correct credentials. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Document independent node preview permissions in node management, architecture, MCP, and protocol references. + +- [#446](https://github.com/subshell-ai/subshell/pull/446) [`a1adc0e`](https://github.com/subshell-ai/subshell/commit/a1adc0ebc3d0c137f84b92f08599ba2e3139a843) Thanks [@theogravity](https://github.com/theogravity)! - Add Oh My Pi as a built-in harness, with omp detection, model/provider/thinking settings, and automatic per-launch MCP configuration. Document installation and the integration's session behavior. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Add web previews, browser watching, saved web services, and virtual displays to subshell workspaces. Open each view in its own draggable tab beside the terminal, move it between splits, or use full screen. Closing a preview leaves its terminal and sibling views running. + + Node settings independently control web previews and virtual displays. Enabling web previews makes them available to the node’s subshells. Nodes can enable multiple display providers and choose a default. Virtual displays are requested at launch, use the default or a selected enabled provider, and check prerequisites before starting. Xvfb + VNC is the initial provider and requires Linux with Xvfb, x11vnc, and xauth. Presets can save a provider choice. Each subshell keeps its resolved provider and display size on restart, even when the node default changes. Disabling a provider prevents new displays and restarts without stopping existing displays. The server’s built-in node uses the same runtime as enrolled nodes. + + Expose feature permissions, display-provider selection, prerequisites, and view controls through MCP. The UI explains disabled features and links to setup documentation. Switching nodes clears incompatible agent and display selections, resets the working directory, and explains the corrections. Preview choices use compact rows with plain port numbers, and phone previews preserve the desktop workspace layout. + + Isolate web-preview scripts from dashboard credentials and browser storage, restrict viewers to authorized resources, and revoke views when access changes or subshells stop. Keep target cookies on the server, bound transport buffers and image dimensions, verify display process ownership before cleanup, and redact preview capability references from diagnostics. + +- [#447](https://github.com/subshell-ai/subshell/pull/447) [`f72a30b`](https://github.com/subshell-ai/subshell/commit/f72a30b2073dbd179e10680fdf31018a01b81c1d) Thanks [@theogravity](https://github.com/theogravity)! - Presets can now be switched off. A new toggle in the presets table parks a preset without deleting it: a switched-off preset disappears from every launch picker and from the MCP `list_presets` answer, and starting or restarting a subshell with one is refused until you switch it back on. Panes already running from it are untouched. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Close a preview permission-downgrade race, bound image decoding and retained + resources, and check transport backpressure before encryption. Verify display + process identity before cleanup and document the additional security review. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Document website previews, virtual displays, browser isolation, private preview links, and the preview architecture and protocol. Add screenshots captured from an isolated sample project. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Explain how Mac users can use Preview with a Linux node, where to install + virtual-display prerequisites, and which macOS features are unavailable. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Add MCP Preview discovery, private connections, browser watching, and virtual-display launches. Include harness health, SSH/Preview settings, and live display prerequisite checks in node discovery, with owner-only access preserved. Document the workflow and capability-link security boundary. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Require an authorized browser-watch registration before delivering frames and revoke watches that no longer meet view-only browser restrictions. Preserve virtual-display dimensions across restarts and refuse disabled displays before stopping a live subshell. Buffer early target greetings within bounded lane limits so virtual-display connections cannot lose their handshake. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Cancel pending preview opens when access is revoked, and recheck authorization before publishing them. Keep CDP discovery on its requested loopback endpoint. Bound proxy response buffers, fragmented WebSocket messages, and target cookies, and prevent preview targets from installing dashboard reporting policies. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Recheck live-screen subscriptions when revocation overtakes their permission check. Limit queued writes to preview targets that stop reading, and clean up node resources after uncertain preview-open replies. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Rename apps and browsers to Web previews throughout the dashboard, API and MCP permission fields, node protocol, and documentation. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Save HTTP or HTTPS services in Apps & screens, including services started outside a subshell. Open each in its own workspace tab, and remove saved connections without stopping their services. Manual connections work without a virtual display, including on macOS nodes. Node protocol 24 adds explicit destinations and certificate-verified HTTPS. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Separate node permissions for apps and browsers from virtual displays. Apps and browser features apply to every subshell when enabled; virtual displays still require an explicit launch choice. Preserve existing grants, show feature-specific readiness, and enforce both switches on the server and node. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Name the unreleased Apps & screens API resources views and expose MCP tools list_subshell_views, open_subshell_view, and watch_subshell_browser. Rename node readiness and enablement discovery, align viewer controls and permission labels, and document the persisted and protocol identifiers retained for compatibility. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Update Zod to 4.6.7 and override Expo CLI’s older Zod dependency to remove the vulnerable version from the dependency tree. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Link missing virtual-display prerequisites to the setup guide instead of + listing installation instructions in the launch form. + ## 0.10.5 ### Patch Changes diff --git a/apps/docs/package.json b/apps/docs/package.json index f72ace8af..cf1d60f78 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -1,7 +1,7 @@ { "name": "@internal/docs", "description": "Public documentation site for Subshell — Fumadocs, statically exported", - "version": "0.10.5", + "version": "0.11.0", "license": "Apache-2.0", "type": "module", "private": true, diff --git a/apps/node/agent/CHANGELOG.md b/apps/node/agent/CHANGELOG.md index 6f2b930a4..990af0fb1 100644 --- a/apps/node/agent/CHANGELOG.md +++ b/apps/node/agent/CHANGELOG.md @@ -1,5 +1,63 @@ # @internal/node +## 3.0.0 + +### Major Changes + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Add web previews, browser watching, saved web services, and virtual displays to subshell workspaces. Open each view in its own draggable tab beside the terminal, move it between splits, or use full screen. Closing a preview leaves its terminal and sibling views running. + + Node settings independently control web previews and virtual displays. Enabling web previews makes them available to the node’s subshells. Nodes can enable multiple display providers and choose a default. Virtual displays are requested at launch, use the default or a selected enabled provider, and check prerequisites before starting. Xvfb + VNC is the initial provider and requires Linux with Xvfb, x11vnc, and xauth. Presets can save a provider choice. Each subshell keeps its resolved provider and display size on restart, even when the node default changes. Disabling a provider prevents new displays and restarts without stopping existing displays. The server’s built-in node uses the same runtime as enrolled nodes. + + Expose feature permissions, display-provider selection, prerequisites, and view controls through MCP. The UI explains disabled features and links to setup documentation. Switching nodes clears incompatible agent and display selections, resets the working directory, and explains the corrections. Preview choices use compact rows with plain port numbers, and phone previews preserve the desktop workspace layout. + + Isolate web-preview scripts from dashboard credentials and browser storage, restrict viewers to authorized resources, and revoke views when access changes or subshells stop. Keep target cookies on the server, bound transport buffers and image dimensions, verify display process ownership before cleanup, and redact preview capability references from diagnostics. + +### Minor Changes + +- [#443](https://github.com/subshell-ai/subshell/pull/443) [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440) Thanks [@theogravity](https://github.com/theogravity)! - Add the BetterDisplay virtual display provider for macOS. Bundle a shared native display helper in both desktop apps, disabled by default and managed through a separate native settings panel. Require explicit local consent and macOS permissions, support immediate disable, and keep activation outside first-run setup and remote node/MCP controls. + + Reuse the authenticated screen viewer with bounded native capture and input, retain verified display ownership for cleanup and recovery, and document activation and macOS shared-desktop limitations in node settings. + + Recheck consent and permissions after native capture startup and on input, and close new displays when node policy changes during allocation. + + Keep uncertain creation records separate so retries can proceed, explain vanished displays, share probe cleanup guards, and encode frames away from the helper's UI thread. Show platform-appropriate provider settings and prevent equal-version release bundles from replacing each other's helper. + +- [#447](https://github.com/subshell-ai/subshell/pull/447) [`f72a30b`](https://github.com/subshell-ai/subshell/commit/f72a30b2073dbd179e10680fdf31018a01b81c1d) Thanks [@theogravity](https://github.com/theogravity)! - Presets can now be switched off. A new toggle in the presets table parks a preset without deleting it: a switched-off preset disappears from every launch picker and from the MCP `list_presets` answer, and starting or restarting a subshell with one is refused until you switch it back on. Panes already running from it are untouched. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Save HTTP or HTTPS services in Apps & screens, including services started outside a subshell. Open each in its own workspace tab, and remove saved connections without stopping their services. Manual connections work without a virtual display, including on macOS nodes. Node protocol 24 adds explicit destinations and certificate-verified HTTPS. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Separate node permissions for apps and browsers from virtual displays. Apps and browser features apply to every subshell when enabled; virtual displays still require an explicit launch choice. Preserve existing grants, show feature-specific readiness, and enforce both switches on the server and node. + +### Patch Changes + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Separate virtual display providers from viewer connections and launch settings. Allow node owners to enable multiple display providers and choose a default, with Xvfb + VNC as the initial option. Persist per-subshell provider choices for restart and preserve display requests in presets. Check requirements for the selected provider and preserve existing displays when the selection changes. + + Order provider allocation and cleanup per subshell, recheck permission after asynchronous prerequisites, and verify VNC listener ownership during allocation and recovery. Reserve viewer ports before probing to prevent concurrent displays from selecting the same port. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Explain when node settings disable a virtual display requested through MCP, and verify independent preview permissions for dashboard and agent access. + +- [#446](https://github.com/subshell-ai/subshell/pull/446) [`a1adc0e`](https://github.com/subshell-ai/subshell/commit/a1adc0ebc3d0c137f84b92f08599ba2e3139a843) Thanks [@theogravity](https://github.com/theogravity)! - Add Oh My Pi as a built-in harness, with omp detection, model/provider/thinking settings, and automatic per-launch MCP configuration. Document installation and the integration's session behavior. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Close a preview permission-downgrade race, bound image decoding and retained + resources, and check transport backpressure before encryption. Verify display + process identity before cleanup and document the additional security review. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Add MCP Preview discovery, private connections, browser watching, and virtual-display launches. Include harness health, SSH/Preview settings, and live display prerequisite checks in node discovery, with owner-only access preserved. Document the workflow and capability-link security boundary. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Cancel pending preview opens when access is revoked, and recheck authorization before publishing them. Keep CDP discovery on its requested loopback endpoint. Bound proxy response buffers, fragmented WebSocket messages, and target cookies, and prevent preview targets from installing dashboard reporting policies. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Recheck live-screen subscriptions when revocation overtakes their permission check. Limit queued writes to preview targets that stop reading, and clean up node resources after uncertain preview-open replies. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Rename apps and browsers to Web previews throughout the dashboard, API and MCP permission fields, node protocol, and documentation. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Name the unreleased Apps & screens API resources views and expose MCP tools list_subshell_views, open_subshell_view, and watch_subshell_browser. Rename node readiness and enablement discovery, align viewer controls and permission labels, and document the persisted and protocol identifiers retained for compatibility. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Update Zod to 4.6.7 and override Expo CLI’s older Zod dependency to remove the vulnerable version from the dependency tree. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Prevent late browser-watch requests from reactivating closed or changed views, preserve selected virtual displays during same-node rechecks, and clarify disabled settings and setup guidance. Reject conflicting MCP app/display arguments before creating a connection. +- Updated dependencies []: + - @internal/pane-runtime@1.0.0 + ## 2.3.3 ### Patch Changes diff --git a/apps/node/agent/package.json b/apps/node/agent/package.json index 5f2b60da9..811fa4fac 100644 --- a/apps/node/agent/package.json +++ b/apps/node/agent/package.json @@ -1,7 +1,7 @@ { "name": "@internal/node", "description": "subshell — node daemon: enrolls with the control plane and executes signed commands", - "version": "2.4.0", + "version": "3.0.0", "license": "Apache-2.0", "type": "module", "private": true, diff --git a/apps/server/api/CHANGELOG.md b/apps/server/api/CHANGELOG.md index f9c78749f..4c1c71ecd 100644 --- a/apps/server/api/CHANGELOG.md +++ b/apps/server/api/CHANGELOG.md @@ -1,5 +1,98 @@ # @internal/server +## 3.0.0 + +### Major Changes + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Add web previews, browser watching, saved web services, and virtual displays to subshell workspaces. Open each view in its own draggable tab beside the terminal, move it between splits, or use full screen. Closing a preview leaves its terminal and sibling views running. + + Node settings independently control web previews and virtual displays. Enabling web previews makes them available to the node’s subshells. Nodes can enable multiple display providers and choose a default. Virtual displays are requested at launch, use the default or a selected enabled provider, and check prerequisites before starting. Xvfb + VNC is the initial provider and requires Linux with Xvfb, x11vnc, and xauth. Presets can save a provider choice. Each subshell keeps its resolved provider and display size on restart, even when the node default changes. Disabling a provider prevents new displays and restarts without stopping existing displays. The server’s built-in node uses the same runtime as enrolled nodes. + + Expose feature permissions, display-provider selection, prerequisites, and view controls through MCP. The UI explains disabled features and links to setup documentation. Switching nodes clears incompatible agent and display selections, resets the working directory, and explains the corrections. Preview choices use compact rows with plain port numbers, and phone previews preserve the desktop workspace layout. + + Isolate web-preview scripts from dashboard credentials and browser storage, restrict viewers to authorized resources, and revoke views when access changes or subshells stop. Keep target cookies on the server, bound transport buffers and image dimensions, verify display process ownership before cleanup, and redact preview capability references from diagnostics. + +### Minor Changes + +- [#448](https://github.com/subshell-ai/subshell/pull/448) [`0c0691c`](https://github.com/subshell-ai/subshell/commit/0c0691c05ae8f1356ecd5ba265ad91f1793f307b) Thanks [@theogravity](https://github.com/theogravity)! - Add the Grok Build harness with CLI detection, launch presets, and one-time MCP registration. Each subshell runs a dedicated Grok agent process so its MCP tools inherit the correct credentials. + +- [#443](https://github.com/subshell-ai/subshell/pull/443) [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440) Thanks [@theogravity](https://github.com/theogravity)! - Add the BetterDisplay virtual display provider for macOS. Bundle a shared native display helper in both desktop apps, disabled by default and managed through a separate native settings panel. Require explicit local consent and macOS permissions, support immediate disable, and keep activation outside first-run setup and remote node/MCP controls. + + Reuse the authenticated screen viewer with bounded native capture and input, retain verified display ownership for cleanup and recovery, and document activation and macOS shared-desktop limitations in node settings. + + Recheck consent and permissions after native capture startup and on input, and close new displays when node policy changes during allocation. + + Keep uncertain creation records separate so retries can proceed, explain vanished displays, share probe cleanup guards, and encode frames away from the helper's UI thread. Show platform-appropriate provider settings and prevent equal-version release bundles from replacing each other's helper. + +- [#446](https://github.com/subshell-ai/subshell/pull/446) [`a1adc0e`](https://github.com/subshell-ai/subshell/commit/a1adc0ebc3d0c137f84b92f08599ba2e3139a843) Thanks [@theogravity](https://github.com/theogravity)! - Add Oh My Pi as a built-in harness, with omp detection, model/provider/thinking settings, and automatic per-launch MCP configuration. Document installation and the integration's session behavior. + +- [#447](https://github.com/subshell-ai/subshell/pull/447) [`f72a30b`](https://github.com/subshell-ai/subshell/commit/f72a30b2073dbd179e10680fdf31018a01b81c1d) Thanks [@theogravity](https://github.com/theogravity)! - Presets can now be switched off. A new toggle in the presets table parks a preset without deleting it: a switched-off preset disappears from every launch picker and from the MCP `list_presets` answer, and starting or restarting a subshell with one is refused until you switch it back on. Panes already running from it are untouched. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Save HTTP or HTTPS services in Apps & screens, including services started outside a subshell. Open each in its own workspace tab, and remove saved connections without stopping their services. Manual connections work without a virtual display, including on macOS nodes. Node protocol 24 adds explicit destinations and certificate-verified HTTPS. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Separate node permissions for apps and browsers from virtual displays. Apps and browser features apply to every subshell when enabled; virtual displays still require an explicit launch choice. Preserve existing grants, show feature-specific readiness, and enforce both switches on the server and node. + +### Patch Changes + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Name the dashboard entry point Apps & screens and its picker Open app or screen, with matching setup guidance and documentation. Keep API and MCP identifiers stable. Simplify the website demonstration and support private development hostnames through local environment settings. + +- [#445](https://github.com/subshell-ai/subshell/pull/445) [`6d3ac61`](https://github.com/subshell-ai/subshell/commit/6d3ac61c90a4beafbf340c28bfc82a496dbf8a41) Thanks [@theogravity](https://github.com/theogravity)! - Forward pane identity explicitly to Codex MCP processes so Subshell tools can initialize. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Reduce standard dialog titles to 18px and align the close button with the title. Reduce dialog padding to 18px on all sides. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Use 13px text, 2px vertical padding, and 28px minimum rows for action-menu items. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Separate virtual display providers from viewer connections and launch settings. Allow node owners to enable multiple display providers and choose a default, with Xvfb + VNC as the initial option. Persist per-subshell provider choices for restart and preserve display requests in presets. Check requirements for the selected provider and preserve existing displays when the selection changes. + + Order provider allocation and cleanup per subshell, recheck permission after asynchronous prerequisites, and verify VNC listener ownership during allocation and recovery. Reserve viewer ports before probing to prevent concurrent displays from selecting the same port. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Explain when node settings disable a virtual display requested through MCP, and verify independent preview permissions for dashboard and agent access. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Fix action menus running past the bottom of the screen. A menu taller than the space available (the subshell actions menu on a phone or short window) is now clamped to the viewport and scrolls within it, instead of its last items falling off the bottom where nothing could reach them. + +- [#444](https://github.com/subshell-ai/subshell/pull/444) [`7a7f9b4`](https://github.com/subshell-ai/subshell/commit/7a7f9b4fe59ce531f92325f7b8ab75810ab33530) Thanks [@theogravity](https://github.com/theogravity)! - Fix the mobile key bar's scroll, page up/down, byte, and paste keys doing nothing under a real finger on iPhone. The bar cancels the button's pointer-down to keep the terminal focused, and WebKit then skips the click it would otherwise synthesize, so the action that rode `click` never ran. Buttons now act on pointer-up (which every browser delivers), a tap that pans off the button sends nothing, and a browser that still clicks sends once, not twice. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Show Apps & screens prerequisite checks in node settings, including missing virtual display programs, setup guidance, and a Recheck action. Explain platform limitations and make the disabled state visible beside the node's switch. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Remove the terminal tab bar’s standalone maximize control and action menu. Keep Restore available for maximized groups. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Close a preview permission-downgrade race, bound image decoding and retained + resources, and check transport backpressure before encryption. Verify display + process identity before cleanup and document the additional security review. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Add MCP Preview discovery, private connections, browser watching, and virtual-display launches. Include harness health, SSH/Preview settings, and live display prerequisite checks in node discovery, with owner-only access preserved. Document the workflow and capability-link security boundary. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Require an authorized browser-watch registration before delivering frames and revoke watches that no longer meet view-only browser restrictions. Preserve virtual-display dimensions across restarts and refuse disabled displays before stopping a live subshell. Buffer early target greetings within bounded lane limits so virtual-display connections cannot lose their handshake. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Cancel pending preview opens when access is revoked, and recheck authorization before publishing them. Keep CDP discovery on its requested loopback endpoint. Bound proxy response buffers, fragmented WebSocket messages, and target cookies, and prevent preview targets from installing dashboard reporting policies. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Recheck live-screen subscriptions when revocation overtakes their permission check. Limit queued writes to preview targets that stop reading, and clean up node resources after uncertain preview-open replies. + +- [#450](https://github.com/subshell-ai/subshell/pull/450) [`3de3f67`](https://github.com/subshell-ai/subshell/commit/3de3f67d2664705a1eb93e90da2046334b58f396) Thanks [@theogravity](https://github.com/theogravity)! - Add a + menu beside sidebar machine groups to start a terminal with that machine's recent directory or open the new-subshell dialog with the node selected. + + Keep the working-directory default when reopening the launch dialog, and close the directory picker after choosing a folder, Recent path, or Favorite without reopening it when focus returns to the input. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Rename apps and browsers to Web previews throughout the dashboard, API and MCP permission fields, node protocol, and documentation. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Match sidebar workspace and grouping dropdown rows to their compact triggers, using 28px rows and 13px text. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Keep Cancel and Start subshell visible while scrolling the new subshell form. Cancel and Close discard the draft before the dialog is reopened. + + Opening a new subshell no longer automatically reapplies the previous subshell’s preset. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Name the unreleased Apps & screens API resources views and expose MCP tools list_subshell_views, open_subshell_view, and watch_subshell_browser. Rename node readiness and enablement discovery, align viewer controls and permission labels, and document the persisted and protocol identifiers retained for compatibility. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Update Zod to 4.6.7 and override Expo CLI’s older Zod dependency to remove the vulnerable version from the dependency tree. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Prevent late browser-watch requests from reactivating closed or changed views, preserve selected virtual displays during same-node rechecks, and clarify disabled settings and setup guidance. Reject conflicting MCP app/display arguments before creating a connection. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Explain when a virtual display is useful and its resource cost beside the launch checkbox. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Link missing virtual-display prerequisites to the setup guide instead of + listing installation instructions in the launch form. +- Updated dependencies []: + - @internal/pane-runtime@1.0.0 + ## 2.6.5 ### Patch Changes diff --git a/apps/server/api/package.json b/apps/server/api/package.json index 215465e45..eeeb4843c 100644 --- a/apps/server/api/package.json +++ b/apps/server/api/package.json @@ -1,7 +1,7 @@ { "name": "@internal/server", "description": "", - "version": "2.6.5", + "version": "3.0.0", "license": "AGPL-3.0-only", "type": "module", "private": true, diff --git a/apps/server/desktop/CHANGELOG.md b/apps/server/desktop/CHANGELOG.md index b6ce6febd..41a167a7d 100644 --- a/apps/server/desktop/CHANGELOG.md +++ b/apps/server/desktop/CHANGELOG.md @@ -1,5 +1,25 @@ # @internal/desktop-server +## 1.6.0 + +### Minor Changes + +- [#448](https://github.com/subshell-ai/subshell/pull/448) [`0c0691c`](https://github.com/subshell-ai/subshell/commit/0c0691c05ae8f1356ecd5ba265ad91f1793f307b) Thanks [@theogravity](https://github.com/theogravity)! - Add the Grok Build harness with CLI detection, launch presets, and one-time MCP registration. Each subshell runs a dedicated Grok agent process so its MCP tools inherit the correct credentials. + +- [#443](https://github.com/subshell-ai/subshell/pull/443) [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440) Thanks [@theogravity](https://github.com/theogravity)! - Add the BetterDisplay virtual display provider for macOS. Bundle a shared native display helper in both desktop apps, disabled by default and managed through a separate native settings panel. Require explicit local consent and macOS permissions, support immediate disable, and keep activation outside first-run setup and remote node/MCP controls. + + Reuse the authenticated screen viewer with bounded native capture and input, retain verified display ownership for cleanup and recovery, and document activation and macOS shared-desktop limitations in node settings. + + Recheck consent and permissions after native capture startup and on input, and close new displays when node policy changes during allocation. + + Keep uncertain creation records separate so retries can proceed, explain vanished displays, share probe cleanup guards, and encode frames away from the helper's UI thread. Show platform-appropriate provider settings and prevent equal-version release bundles from replacing each other's helper. + +### Patch Changes + +- [#446](https://github.com/subshell-ai/subshell/pull/446) [`a1adc0e`](https://github.com/subshell-ai/subshell/commit/a1adc0ebc3d0c137f84b92f08599ba2e3139a843) Thanks [@theogravity](https://github.com/theogravity)! - Add Oh My Pi as a built-in harness, with omp detection, model/provider/thinking settings, and automatic per-launch MCP configuration. Document installation and the integration's session behavior. +- Updated dependencies [[`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`6d3ac61`](https://github.com/subshell-ai/subshell/commit/6d3ac61c90a4beafbf340c28bfc82a496dbf8a41), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`0c0691c`](https://github.com/subshell-ai/subshell/commit/0c0691c05ae8f1356ecd5ba265ad91f1793f307b), [`7c8fd34`](https://github.com/subshell-ai/subshell/commit/7c8fd34efccdb51b202939aa462756c55a69a440), [`7a7f9b4`](https://github.com/subshell-ai/subshell/commit/7a7f9b4fe59ce531f92325f7b8ab75810ab33530), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`a1adc0e`](https://github.com/subshell-ai/subshell/commit/a1adc0ebc3d0c137f84b92f08599ba2e3139a843), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`f72a30b`](https://github.com/subshell-ai/subshell/commit/f72a30b2073dbd179e10680fdf31018a01b81c1d), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`3de3f67`](https://github.com/subshell-ai/subshell/commit/3de3f67d2664705a1eb93e90da2046334b58f396), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661), [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661)]: + - @internal/server@3.0.0 + ## 1.5.13 ### Patch Changes diff --git a/apps/server/desktop/package.json b/apps/server/desktop/package.json index 59f1f5fd7..5590b7fe4 100644 --- a/apps/server/desktop/package.json +++ b/apps/server/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@internal/desktop-server", "description": "Subshell Server — a Tauri shell that installs, runs and manages a local subshell-server", - "version": "1.5.13", + "version": "1.6.0", "license": "AGPL-3.0-only", "type": "module", "private": true, diff --git a/apps/website/CHANGELOG.md b/apps/website/CHANGELOG.md index d4e2f08fe..20ca3a38f 100644 --- a/apps/website/CHANGELOG.md +++ b/apps/website/CHANGELOG.md @@ -1,5 +1,15 @@ # @internal/website +## 0.2.19 + +### Patch Changes + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Name the dashboard entry point Apps & screens and its picker Open app or screen, with matching setup guidance and documentation. Keep API and MCP identifiers stable. Simplify the website demonstration and support private development hostnames through local environment settings. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Update Zod to 4.6.7 and override Expo CLI’s older Zod dependency to remove the vulnerable version from the dependency tree. + +- [#426](https://github.com/subshell-ai/subshell/pull/426) [`cec0b06`](https://github.com/subshell-ai/subshell/commit/cec0b06e3943cf3ef9270e0b6ae651ec2717d661) Thanks [@theogravity](https://github.com/theogravity)! - Add a website preview demonstration directly below the mobile video, showing a real coding agent fixing project filters and checking the result beside its terminal. + ## 0.2.18 ### Patch Changes diff --git a/apps/website/package.json b/apps/website/package.json index 7807413af..0071b735f 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -1,7 +1,7 @@ { "name": "@internal/website", "description": "Public marketing site for Subshell: static export at subshell.sh", - "version": "0.2.18", + "version": "0.2.19", "license": "Apache-2.0", "type": "module", "private": true, diff --git a/bun.lock b/bun.lock index ff6cf2a85..e83954410 100644 --- a/bun.lock +++ b/bun.lock @@ -31,7 +31,7 @@ }, "apps/client/desktop": { "name": "@internal/desktop-client", - "version": "1.3.8", + "version": "1.4.0", "dependencies": { "@base-ui/react": "1.7.0", "@internal/assistant": "workspace:*", @@ -104,7 +104,7 @@ }, "apps/docs": { "name": "@internal/docs", - "version": "0.10.5", + "version": "0.11.0", "dependencies": { "beautiful-mermaid": "1.1.3", "fumadocs-core": "16.15.11", @@ -127,7 +127,7 @@ }, "apps/node/agent": { "name": "@internal/node", - "version": "2.4.0", + "version": "3.0.0", "dependencies": { "@clack/prompts": "1.8.1", "@internal/backend-errors": "workspace:*", @@ -180,7 +180,7 @@ }, "apps/server/api": { "name": "@internal/server", - "version": "2.6.5", + "version": "3.0.0", "dependencies": { "@better-auth/api-key": "1.7.1", "@better-auth/passkey": "1.7.1", @@ -228,7 +228,7 @@ }, "apps/server/desktop": { "name": "@internal/desktop-server", - "version": "1.5.13", + "version": "1.6.0", "dependencies": { "@base-ui/react": "1.7.0", "@internal/assistant": "workspace:*", @@ -318,7 +318,7 @@ }, "apps/website": { "name": "@internal/website", - "version": "0.2.18", + "version": "0.2.19", "dependencies": { "@internal/subshell-protocol": "workspace:*", "class-variance-authority": "0.7.1", @@ -530,7 +530,7 @@ }, "packages/plugins/codex": { "name": "@subshell-ai/plugin-codex", - "version": "1.0.1", + "version": "1.0.2", "devDependencies": { "@internal/tsconfig": "workspace:*", "@subshell-ai/plugin-api": "workspace:*", @@ -542,7 +542,7 @@ }, "packages/plugins/grok-build": { "name": "@subshell-ai/plugin-grok-build", - "version": "1.0.0", + "version": "1.1.0", "devDependencies": { "@internal/tsconfig": "workspace:*", "@subshell-ai/plugin-api": "workspace:*", @@ -590,7 +590,7 @@ }, "packages/plugins/oh-my-pi": { "name": "@subshell-ai/plugin-oh-my-pi", - "version": "0.1.0", + "version": "0.2.0", "devDependencies": { "@internal/tsconfig": "workspace:*", "@subshell-ai/plugin-api": "workspace:*", diff --git a/packages/plugins/codex/CHANGELOG.md b/packages/plugins/codex/CHANGELOG.md index a0e101aac..3b2bd3505 100644 --- a/packages/plugins/codex/CHANGELOG.md +++ b/packages/plugins/codex/CHANGELOG.md @@ -1,5 +1,11 @@ # @subshell-ai/plugin-codex +## 1.0.2 + +### Patch Changes + +- [#445](https://github.com/subshell-ai/subshell/pull/445) [`6d3ac61`](https://github.com/subshell-ai/subshell/commit/6d3ac61c90a4beafbf340c28bfc82a496dbf8a41) Thanks [@theogravity](https://github.com/theogravity)! - Forward pane identity explicitly to Codex MCP processes so Subshell tools can initialize. + ## 1.0.1 ### Patch Changes diff --git a/packages/plugins/codex/package.json b/packages/plugins/codex/package.json index 8c3dd2522..457e622e9 100644 --- a/packages/plugins/codex/package.json +++ b/packages/plugins/codex/package.json @@ -1,7 +1,7 @@ { "name": "@subshell-ai/plugin-codex", "description": "Codex harness plugin for Subshell", - "version": "1.0.1", + "version": "1.0.2", "license": "Apache-2.0", "type": "module", "main": "dist/index.js", diff --git a/packages/plugins/grok-build/CHANGELOG.md b/packages/plugins/grok-build/CHANGELOG.md new file mode 100644 index 000000000..edb36fc12 --- /dev/null +++ b/packages/plugins/grok-build/CHANGELOG.md @@ -0,0 +1,7 @@ +# @subshell-ai/plugin-grok-build + +## 1.1.0 + +### Minor Changes + +- [#448](https://github.com/subshell-ai/subshell/pull/448) [`0c0691c`](https://github.com/subshell-ai/subshell/commit/0c0691c05ae8f1356ecd5ba265ad91f1793f307b) Thanks [@theogravity](https://github.com/theogravity)! - Add the Grok Build harness with CLI detection, launch presets, and one-time MCP registration. Each subshell runs a dedicated Grok agent process so its MCP tools inherit the correct credentials. diff --git a/packages/plugins/grok-build/package.json b/packages/plugins/grok-build/package.json index 9f5a64489..3f54d9157 100644 --- a/packages/plugins/grok-build/package.json +++ b/packages/plugins/grok-build/package.json @@ -1,7 +1,7 @@ { "name": "@subshell-ai/plugin-grok-build", "description": "Grok Build harness plugin for Subshell", - "version": "1.0.0", + "version": "1.1.0", "license": "Apache-2.0", "type": "module", "main": "dist/index.js", diff --git a/packages/plugins/oh-my-pi/CHANGELOG.md b/packages/plugins/oh-my-pi/CHANGELOG.md new file mode 100644 index 000000000..3aff22f3e --- /dev/null +++ b/packages/plugins/oh-my-pi/CHANGELOG.md @@ -0,0 +1,7 @@ +# @subshell-ai/plugin-oh-my-pi + +## 0.2.0 + +### Minor Changes + +- [#446](https://github.com/subshell-ai/subshell/pull/446) [`a1adc0e`](https://github.com/subshell-ai/subshell/commit/a1adc0ebc3d0c137f84b92f08599ba2e3139a843) Thanks [@theogravity](https://github.com/theogravity)! - Add Oh My Pi as a built-in harness, with omp detection, model/provider/thinking settings, and automatic per-launch MCP configuration. Document installation and the integration's session behavior. diff --git a/packages/plugins/oh-my-pi/package.json b/packages/plugins/oh-my-pi/package.json index 9e1301aae..fb7e7ee64 100644 --- a/packages/plugins/oh-my-pi/package.json +++ b/packages/plugins/oh-my-pi/package.json @@ -1,7 +1,7 @@ { "name": "@subshell-ai/plugin-oh-my-pi", "description": "Oh My Pi harness plugin for Subshell", - "version": "0.1.0", + "version": "0.2.0", "license": "Apache-2.0", "type": "module", "main": "dist/index.js",