Enhancements and Features
/goal keeps pw code working until a condition is met
pw code gains /goal. Give it a completion condition such as "all tests in cmd/cli pass and go vet is clean", and the session keeps working toward it across turns, checking after each one and stopping when the condition is met, instead of handing control back every turn. The goal belongs to the session, so closing pw code leaves it working and reattaching picks it up mid-run. /goal shows progress, /goal clear stops it, and /goal pause or ctrl+c pauses without forgetting the condition.
Admins can limit which models a cloud AI provider offers to users
Platform administrators can now limit which models each cloud AI provider offers. Set the allowed model list per provider in the AI Providers Catalog; users only see and enable models on the list.
Choose how the platform verifies an AI integration's TLS certificate
Platform administrators can now choose how ACTIVATE verifies an AI integration's TLS certificate: against the public certificate authorities, against a CA certificate you supply, or skipped. Skipping lets you connect integrations that serve a certificate no public authority vouches for, such as a model endpoint hosted inside your own cluster.
Custom firewall rules for networks
Org admins can now define custom inbound firewall rules on networks (source CIDR, protocol, port range). Rules are applied to the security groups the platform provisions for the network and, on Azure, to nodes of newly provisioned clusters.
Organization bootstrap script for user workspaces
Organization admins can now set a bootstrap script that runs as root in every user workspace at startup, under Cloud > Workspace Bootstrap Script. It replaces the site-provided /usr/local/bin/preProcess file, which still runs with a deprecation warning in this release.
Owner avatars and organization column on the admin workspaces page
The admin workspaces page now shows each workspace's organization alongside the owner, and lets you filter or search by organization.
Policy to disable password login
Platform and organization admins can now disable password login, requiring users to sign in through SSO, LDAP, or CAC instead. Password resets are also turned off while the policy is active. The policy can only be enabled once another authentication method is configured, so it cannot lock everyone out.
pw workspace commands to start, restart, and check the user workspace
The pw CLI has a new workspace command group: check your user workspace with pw workspace status, start it with pw workspace start --wait, and restart it with pw workspace restart.
Workspace SSH keys are generated at 4096 bits
Workspace SSH keys are now generated at 4096 bits.
Address a running pw code subagent by @-mentioning it in the composer
You can now address a running pw code subagent directly from the composer by @-mentioning it (@task-2 take another look at auth.go) without switching windows. A child that is mid-task takes the message as course correction at its next step; an idle child runs it as a follow-up turn.
Azure providers run on Azure AI Foundry
Azure AI providers now run on Azure AI Foundry. New providers are provisioned as Foundry (AIServices) accounts and can deploy and use models from the full Foundry catalog — Azure-sold families like DeepSeek, Grok, and Phi, partner families like Mistral, and Anthropic Claude models — rather than only the Azure OpenAI model list. Deployments request the capacity Azure rates the model for, clamped to your subscription's available quota, and deployment failures now surface actionable messages instead of raw Azure errors.
Billing admins can view the admin resources table
Billing administrators can now view the admin resources table (cloud inventory) in read-only mode, including all resource tabs and the organization filter. Resource mutations remain restricted to platform administrators.
Change controller instance type while cluster is stopped
The controller node's instance type can now be changed while a cluster is stopped on AWS, Google Cloud, and Azure. The new type is applied automatically when the cluster is resumed.
Check out private GitHub repositories in a workflow
Workflows can now check out private GitHub repositories. Connect your GitHub account under Settings and uses: parallelworks/checkout will read a private repository through ACTIVATE, which fetches it as you and sends only the files to wherever your workflow runs. Your GitHub credentials never leave the platform, and only repositories your workflow actually names can be fetched.
Workflow steps that pull a subworkflow from GitHub with uses: github/OWNER/REPO can now reach private repositories. Connect your GitHub account under Settings and ACTIVATE fetches those steps as you, which also gives each user their own GitHub rate limit instead of sharing the much smaller unauthenticated one.
GitLab support
Organization admins can register GitLab servers under Organization > Settings > GitLab Servers, and every member can connect their account on each server under Settings > Connections.
Workflows can now live in GitLab. A remote workflow can point at a project on any GitLab server your organization has registered, another workflow can include it with uses: https://gitlab.example.com/group/project@main, and pw workflows run accepts the same URL. Private projects are read as you, through the account you connected under Settings.
Workflows can now check out private GitLab repositories. Once your organization has registered the GitLab server and you have connected your account under Settings, uses: parallelworks/checkout with the project URL reads the repository through ACTIVATE as you, sending only the files to wherever the workflow runs. Your GitLab credentials never leave the platform.
Cloud-specific allocation types
Allocations now have a managed or custom type, and managed allocations can be restricted to specific resource types (AWS, Azure, Google, Oracle, OpenStack, Kubernetes, AI). A new allocation details page shows an allocation's type, allowed resource types, budget usage, associated resource groups, and its usage events.
Edit a cluster, storage, workflow, or network from its right-click menu
Cluster, storage, workflow, and network rows now offer Edit in their right-click menu, so you can jump straight to the configuration form without opening the resource first.
Per-node running processes for cloud clusters
Cloud clusters can now record every node's running processes and what led up to a freeze. Turn on Running Processes in a cluster's Advanced Settings and each node's detail page shows a process table (CPU, memory and disk IO per process) plus a timeline of pressure alerts and kernel events such as OOM kills, for controller and compute nodes alike. The same tab charts the top five processes by CPU and by memory over the last few hours, so a spike that preceded a freeze is still visible after the fact. Anyone with access to the cluster can view it, and the record survives reboots and even the loss of the node itself.
Per-provider toggle for emulated tool calling
AI providers that use emulated tool calling now have a provider setting to turn it off. It stays enabled by default; disabling it makes the provider chat-only, and clients see the change immediately in the model list.
pw code shows the model's thinking
pw code now shows the model's thinking: reasoning streams into the transcript while the model works and folds to a "Thought for Ns" line once the answer starts, expandable with ctrl+o. Resumed sessions keep it.
pw browse
pw browse <resource> [url] opens a local browser whose traffic, including DNS, exits from a remote resource, so sites on the resource's network work with local smart card readers and hardware tokens. pw ssh and pw forward also gain OpenSSH-style -D SOCKS5 proxies.
./pw browse --direct "*.google.com" https://intranet.example.internal
# Expect: a new Chrome window opens; the site loads via the cluster;
# Close the window: the command exits and the tunnel closes.# Standalone SOCKS proxy with reconnect
./pw forward -D 1080 my-cluster
curl --socks5-hostname localhost:1080 http://internal-host/# SOCKS proxy alongside an interactive shell
./pw ssh -D 1080 my-clusterpw code drives the terminal's progress bar while it works
pw code now lights up your terminal's progress bar while it is working, so a glance at the window, even a background one, tells you a turn is still running. It clears as soon as the turn ends. Terminals without progress-bar support are unaffected.
Regional, dual-region, and multi-region Google bucket provisioning
Google bucket configurations now support a location type selection: regional, dual-region, or multi-region (US, EU, ASIA). Previously all Google buckets were provisioned in the US multi-region regardless of the selected region.
Unfavorite sessions to hide them from the dashboard widget
Sessions can now be unfavorited to hide them from the dashboard sessions widget — useful when sessions shared by other users clutter your dashboard. All sessions are favorited by default, and unfavoriting only affects your own view; the session stays available on the sessions page.
Bug Fixes
- AI connections show 0 models on the admin products pages
- AI provider catalog dropdowns are unstyled and name the wrong protocol
- Connecting GitHub shows "App not installed" and flashes loading when GitHub returns an error
- Downloading a file opens it in a browser tab instead of saving it
- Google credentials check fails a project whose access comes from a custom or inherited role
- Managed clusters show no partitions when the scheduler controller is not a registered node
- A bad ssh value stops a run before it can report anything
- A run finalized over REST leaves its tunnels open
- A session model rejecting a chat request looks like an empty successful reply
- Admins cannot edit a user's AI provider
- Azure bucket credentials fail with "Unknown error" when the cloud account lacks Graph permissions
- Changing a custom AI provider's endpoint does not update its mapped connections
- Clicking a log line number collapses the surrounding group
- pw commands fail on compute nodes when the login node's first interface is external
- pw vscode to a compute node through the login node fails on Windows
- Cluster node bootstrap waits on downloading both pw CLI architectures
- Compute worker restarts a finished job's desktop session
- Deleting a session leaves its worker's job in the scheduler queue
- Detaching storage fails when another attached filesystem is not shared with you
- Drawers cannot be resized with a keyboard or a screen reader
- Failed instance stays in the instance list forever
- Favoriting a resource says it worked even when the request failed
- Oracle clusters on a network that is not centralized-nat fail with subnet not found
- Launching Desktop on a macOS existing cluster fails with a TigerVNC download error
- Mounted bucket fails with invalid argument after credentials expire
- Non-streaming session model replies hide the model's reasoning
- Oracle cluster wizard shows an empty Settings step
- pw code agent switcher does not list newly started subagents
- pw code exits with an allocation error instead of letting the user pick one
- pw code prints the gateway's tool-emulation instructions instead of an answer
- pw code shows a 128K context window for models served through a custom AI connection
- pw code shows a raw JSON error frame when the AI gateway rejects a request
- pw code status line is cut off in a narrow terminal
- pw code wastes two rows on blank lines around every user message
- The select VM size panel covers part of the sidebar
- Tool-using chat turns show no duration when the model produced no reasoning text
- Typing in a form is interrupted when the terminal drawer is open
- User workspaces running on EKS with Karpenter disconnect for several minutes when Karpenter consolidates nodes
- Command palette scrolls away from the top while typing



