unstale

npm / @pulumi/pulumi

@pulumi/pulumi

What changed in @pulumi/pulumi 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

78 breaking11 security3 deprecations277 new APIs and options13 performance165 behavior and defaults47 tooling289 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.0 on npm

@pulumi/pulumi 3883 changes

Breaking changes 78

  • pulumi logs now errors by default ahead of its removal.

    3.269.0release notes

  • pulumi watch now errors by default ahead of its removal.

    3.269.0release notes

  • Schemas defining a root-module resource named provider are rejected during SDK generation instead of causing a panic.

    3.268.0release notes

  • Go and Python SDK resources from extension packages now use an explicit provider instead of falling back to a default provider.

    3.266.0release notes

  • workspace.Credentials.AccessTokens was removed; stored logins are now read only from the accounts object of credentials.json.

    3.266.0release notes

  • PCL reports a type mismatch when a resource input property is not also declared as an output.

    3.265.0release notes

  • PCL reports errors when number or bool literals are not admitted by a property's schema constant or enum.

    3.265.0release notes

  • Go policy remediations now run only at the remediate enforcement level.

    3.264.0release notes

  • policyx.ResourceValidationArgs.DryRun has been removed because it was never correctly set.

    3.264.0release notes

  • Accepts --path-filter once per filter instead of splitting filter values on commas.

    3.263.0release notes

  • Errors sooner when string values cannot be cast to numeric or boolean inputs.

    3.263.0release notes

  • The branch and commit settings now replace one another instead of being combined.

    3.262.0release notes

  • The command now rejects --oidc-*-clear=false instead of silently ignoring it.

    3.262.0release notes

  • pulumi new now errors on ambiguous template names instead of failing silently.

    3.262.0release notes

  • Templates downloaded from URLs outside the configured service now have their TLS certificates verified.

    3.262.0release notes

  • The --output=json value changes from a list of names to objects containing environment variable values.

    3.260.0release notes

  • Generated Python names plain function input object types without the Args suffix, matching exported SDK names.

    3.260.0release notes

  • Typed object stack outputs now use camelCase wire-format property names, matching other language SDKs.

    3.260.0release notes

  • Zip template entries resolving outside the extraction directory are rejected.

    3.260.0release notes

  • pulumi import now rejects files that contain unknown values.

    3.258.0release notes

  • Repeated header values with the same name are all sent instead of silently overwriting the last value.

    3.257.0release notes

  • The DIY backend deprecation warning became an error, and the environment variable was renamed accordingly.

    3.257.0release notes

  • Generated SDKs now require pulumi SDK v3.255.0 or later because output-form invoke arguments are passed without resolving them first.

    3.257.0release notes

  • A Python resource depending on its own parent now reports an error instead of hanging.

    3.257.0release notes

  • Extension-parameterized packages namespace resource and function tokens under their own package name instead of the base provider's.

    3.257.0release notes

  • Now exits non-zero when the deployment fails.

    3.256.0release notes

  • Now errors when run in a Pulumi HCL project.

    3.256.0release notes

  • The Pulumi AI mode and its --ai flag are retired because the backing service has been shut down; use pulumi neo instead.

    3.256.0release notes

  • The --language flag associated with Pulumi AI mode is retired because the backing service has been shut down; use pulumi neo instead.

    3.256.0release notes

  • Now exits non-zero when the remote deployment fails.

    3.256.0release notes

  • Unknown or missing subcommands now produce a non-zero exit code.

    3.252.0release notes

  • Failed resource registrations now return faulted outputs instead of unknown outputs.

    3.252.0release notes

  • The deployment settings configuration file flag was removed.

    3.251.0release notes

  • SDK helpers that read the deployment settings file were removed.

    3.251.0release notes

  • The experimental init, pull, configure, and env subcommands were removed, and settings commands no longer write the local deployment settings file.

    3.251.0release notes

  • The experimental push command and its update/up aliases were removed.

    3.251.0release notes

  • The deployment settings file was removed; manage settings directly in Pulumi Cloud.

    3.251.0release notes

  • The Node.js SDK now requires Node.js 22 or later.

    3.249.0release notes

  • Diffs in Output values are no longer ignored.

    3.249.0release notes

  • Converting a Terraform program to the hcl language now produces an error.

    3.249.0release notes

  • Callers must pass an explicit schema loader when binding PCL programs and package schemas.

    3.248.0release notes

  • Schema modules can no longer be nested under the index module; such nesting is now a strict bind error.

    3.247.0release notes

  • plugin.Host is stateless regarding workspaces; plugin.Context carries workspace state and closing it no longer closes a constructed host.

    3.247.0release notes

  • Logging out now deletes all backend configuration.

    3.246.0release notes

  • Removes the experimental pulumi ai web command.

    3.246.0release notes

  • Adds --stateless; create, patch, and delete require it for existing direct-provider behavior while stateful engine-driven behavior is planned as the future default.

    3.246.0release notes

  • Schema names containing whitespace or control characters are rejected.

    3.246.0release notes

  • Go Configure calls now require Type.

    3.245.0release notes

  • Go DiffConfig calls now require Type.

    3.245.0release notes

  • The Go SDK no longer accepts name in plugin loading functions.

    3.245.0release notes

  • The stack initialization command is renamed from pulumi stack init to pulumi stack new.

    3.245.0release notes

  • PCL no longer silently ignores ... in function arguments.

    3.243.0release notes

  • The plugin ls command is renamed to pulumi plugin list.

    3.243.0release notes

  • The plugin rm command is renamed to pulumi plugin remove.

    3.243.0release notes

  • Non-interactive destructive commands now require --yes for confirmation.

    3.243.0release notes

  • Shows a clear error when --all targets a non-paginatable endpoint instead of emitting an empty array.

    3.241.0release notes

  • Deployments now fail when an after hook fails.

    3.238.0release notes

  • Renames the --format flag to --output on pulumi api and its subcommands.

    3.238.0release notes

  • Renames the pulumi cloud api command to pulumi api.

    3.238.0release notes

  • Schema generation now reports errors eagerly for schemas containing unconstructable types.

    3.237.0release notes

  • Generated Go option helpers now omit the With prefix to match existing optXxx package naming.

    3.233.0release notes

  • Changes verbosity checks to require calling Enabled() on the result of logging.V(x).

    3.232.0release notes

  • Rejects id in state inputs with an error.

    3.232.0release notes

  • The PCL element builtin now accepts integer parameters rather than number parameters.

    3.231.0release notes

  • PCL list and tuple indices are now typed as integers rather than numbers.

    3.231.0release notes

  • The PCL range builtin now accepts integer parameters rather than number parameters.

    3.231.0release notes

  • mimeType is removed from PCL in program generation.

    3.230.0release notes

  • readDir is removed from PCL in program generation.

    3.230.0release notes

  • PCL now types integer literals as integers rather than numbers.

    3.229.0release notes

  • PCL programs now typecheck component inputs.

    3.228.0release notes

  • Generated Go SDK go.mod files now target Go 1.25 instead of Go 1.20.

    3.226.0release notes

  • Invoke outputs are automatically marked secret when they have a secret input and the invoke provider lacks secret support.

    3.224.0release notesrelease notes

  • pulumiVersionRange was renamed to requiredPulumiVersion in PulumiPlugin.yaml.

    3.221.0release notes

  • PulumiPlugin.yaml now uses requiredPulumiVersion instead of pulumiVersionRange.

    3.221.0release notes

  • At verbosity level 1 or higher, the logfile location is written to stderr instead of stdout.

    3.220.0release notes

  • ProviderHandshakeResponse no longer includes pulumi_version_range.

    3.216.0release notes

  • Python 3.14 now requires grpcio version 1.75.1 or newer.

    3.210.0release notes

  • The import command now returns errors when an import fails.

    3.207.0release notes

Security 11

  • Secrets carried on output values are redacted in plaintext logs and shared logs.

    3.269.0release notes

  • Windows CLI and language host binaries are now Authenticode-signed.

    3.265.0release notes

  • Secret property values are redacted in violates-plan errors unless --show-secrets is passed.

    3.262.0release notes

  • Adds opt-in encryption for stored credentials using a key protected by the operating system.

    3.258.0release notes

  • Property values in CLI logs now redact secrets.

    3.254.0release notes

  • Rejects archive entries containing path traversal components during extraction.

    3.246.0release notes

  • Logging out now deletes shared temporary agent credentials.

    3.245.0release notes

  • Encrypted logging can be enabled for logs stored under ~/.pulumi/logs using this feature flag.

    3.233.0release notes

  • The about command no longer displays the access token in plain text.

    3.228.0release notes

  • Node.js resource hooks now receive secret values as Output objects, preserving their secretness.

    3.204.0release notes

  • Python resource hooks now receive secret values as Output objects, preserving their secretness.

    3.204.0release notes

Deprecations 3

  • Non-project mode for DIY backends is beginning its deprecation process.

    3.228.0release notes

  • Labels on package blocks are deprecated.

    3.227.0release notes

  • The .NET codegen package is deprecated in favor of the pulumi-language-dotnet package and will be removed soon.

    3.220.0release notes

New APIs and options 277

  • Generated Node.js, Python, and Go automation APIs now expose about commands.

    3.269.0release notes

  • Generated Node.js, Python, and Go automation APIs now expose config commands.

    3.269.0release notes

  • Generated Node.js, Python, and Go automation APIs now expose convert operations.

    3.269.0release notes

  • OPA policy packs run through the language plugin, which the CLI downloads on demand.

    3.269.0release notes

  • pulumi env commands supporting --draft can set the change request description with --reason.

    3.269.0release notes

  • The PCL interpreter can recover from failed function calls with recover.

    3.269.0release notes

  • Generated Node.js, Python, and Go automation APIs now expose refresh operations.

    3.269.0release notes

  • Go, Node.js, and Python SDKs can check whether a resource ID exists without adopting the resource into the stack.

    3.269.0release notes

  • Invoke can negotiate dependency-carrying OutputValues in arguments and responses when the provider accepts the new handshake capability.

    3.268.0release notes

  • Generated NodeJS, Python, and Go automation APIs now expose install.

    3.268.0release notes

  • Generated NodeJS, Python, and Go automation APIs now expose version.

    3.268.0release notes

  • Generated NodeJS, Python, and Go automation APIs now expose whoami.

    3.268.0release notes

  • Schema descriptions now support #/provider documentation references.

    3.266.0release notes

  • Adds an option to delete the key encrypting stored credentials from the OS credential store.

    3.265.0release notes

  • Adds the range built-in to the PCL interpreter.

    3.265.0release notes

  • The command can configure git authentication, dependency caching, template sources and drift remediation.

    3.264.0release notes

  • The command can configure tag triggers, review stack labels and the version control integration.

    3.264.0release notes

  • Python ResourceOptions now support component state migration callbacks.

    3.264.0release notes

  • Go resource options now support component state migration callbacks.

    3.264.0release notes

  • Node.js resource options now support component state migration callbacks.

    3.264.0release notes

  • Provider schemas can specify a configuration documentation URL used during credential warnings in interactive pulumi new.

    3.262.0release notes

  • pulumi api list now supports filtering endpoints by keyword.

    3.262.0release notes

  • The engine now supports importing a Stash resource, adopting the given ID and applying the configured program input as an update.

    3.262.0release notes

  • The Node.js SDK adds helper methods for transforming ResourceOptions into InvokeOptions.

    3.262.0release notes

  • Provider schemas can opt interactive pulumi new into cloud credential validation.

    3.262.0release notes

  • Adds a command to configure cloud OIDC trust and create ESC environments for AWS, Azure, or GCP.

    3.261.0release notes

  • Python adds helper methods for transforming ResourceOptions into InvokeOptions.

    3.261.0release notes

  • Providers can opt into receiving previously persisted outputs during Check on update through a new handshake capability.

    3.261.0release notes

  • Resource registrations can support state migration callbacks.

    3.261.0release notes

  • Python Automation API preview_destroy can request rich diffs.

    3.260.0release notes

  • Python Automation API preview_refresh can request rich diffs.

    3.260.0release notes

  • Adds a command that turns stateful snippets into Pulumi program code.

    3.260.0release notes

  • Python Automation API refresh can request rich diffs.

    3.260.0release notes

  • Python transforms can be mocked.

    3.260.0release notes

  • Sets the default organization used by Pulumi CLI operations.

    3.259.0release notes

  • Supports parallel plugin installation through the new --parallel flag.

    3.259.0release notes

  • Adds a Go policy helper and connects stack analysis so policy packs can validate the full stack.

    3.258.0release notes

  • Python stack method preview_destroy now includes the missing program argument.

    3.258.0release notes

  • Python stack method preview_refresh now includes the missing program argument.

    3.258.0release notes

  • Existing stack resources in pulumi do input expressions receive automatic identifiers, which can be listed with show-resources.

    3.257.0release notes

  • Adds a command to show individual resources from state.

    3.257.0release notes

  • PCL now provides an ID type.

    3.256.0release notes

  • Stateful operations support the --provider argument, allowing provider selection for those operations.

    3.256.0release notes

  • Can also set standard SDK environment variables referencing login outputs; the option also applies to Azure and GCP login commands.

    3.256.0release notes

  • Skips package resolution and uses the supplied URL as the plugin download URL; also applies to related package, schema, and SDK commands.

    3.256.0release notes

  • Allows deleting protected resources without unprotecting them in state first; also available on preview and destroy.

    3.256.0release notes

  • Can register their own provider resources based on provider inputs supplied on the command line.

    3.256.0release notes

  • OTel traces can be sent over HTTPS.

    3.255.0release notes

  • Policy packs can point to executable binaries as well as script folders.

    3.255.0release notes

  • The do command can refer to existing resources in state from input expressions.

    3.255.0release notes

  • Package commands accept extension-parameterized packages, which are reinstalled from Pulumi.yaml during pulumi install.

    3.255.0release notes

  • Past update events can be reduced to the summary shape used by live pulumi up --output json, including diagnostics and failed-resource markers.

    3.255.0release notes

  • State converters can declare explicit providers and attach imported resources to them.

    3.254.0release notes

  • Resources in import files can supply inputs and outputs, allowing direct state import without a provider read when outputs are provided.

    3.254.0release notes

  • Generated Go, NodeJS, and Python programs and the PCL runtime support resource hooks that retry failed operations after successful hook commands.

    3.254.0release notes

  • Allows imported environments to be substituted for one run without editing stack configuration.

    3.254.0release notes

  • Import files can declare named explicit providers in the resources section and reference them by name.

    3.254.0release notes

  • Adds a command for sharing Pulumi logs with Pulumi.

    3.254.0release notes

  • Runs Neo as an Agent Client Protocol agent over stdio, with read-only and plan modes exposed as session options.

    3.254.0release notes

  • Adds session resumption with chat history and retries transient stream and message-send failures.

    3.254.0release notes

  • Adds runtime options to policy pack creation.

    3.254.0release notes

  • Allows imported environments to be substituted for one run without editing stack configuration.

    3.254.0release notes

  • Allows imported environments to be substituted for one run without editing stack configuration.

    3.254.0release notes

  • Migrates a stack between backends and re-encrypts configuration secrets and state for the target secrets provider.

    3.254.0release notes

  • Allows imported environments to be substituted for one run without editing stack configuration.

    3.254.0release notes

  • Adds natively awaited Python program entrypoints that can return stack outputs.

    3.254.0release notes

  • Adds parent information so state converters can express resource hierarchy.

    3.254.0release notes

  • Adds property filters for state converter resource imports.

    3.254.0release notes

  • Do supports stateful resource creation.

    3.254.0release notes

  • Do supports stateful resource deletion.

    3.254.0release notes

  • Adds stateful creation or updating of resources in a stack.

    3.254.0release notes

  • Go Automation API refresh and preview refresh operations support importing pending creates.

    3.253.0release notes

  • The pulumi command gains --version, which prints the version like pulumi version.

    3.253.0release notes

  • Generated automation APIs for NodeJS, Python, and Go now include import support.

    3.252.0release notes

  • Hooks can now be bound to a resource's onError option.

    3.252.0release notes

  • Adds a flag to explain an environment change request to approvers.

    3.252.0release notes

  • A production runtime option makes installation skip development dependencies for npm, pnpm, and yarn.

    3.252.0release notes

  • Converter mapping requests can specify the ecosystem whose mappings they consume.

    3.251.0release notes

  • Resources under parameterized providers can now be imported from a converter or import file.

    3.251.0release notes

  • Adds a flag to investigate a failed preview.

    3.251.0release notes

  • Adds a flag to investigate a failed update.

    3.251.0release notes

  • Deployment options can target snippets by UUID.

    3.251.0release notes

  • Configuration environment listing supports selecting an output format.

    3.249.0release notes

  • Plugin listing supports selecting an output format.

    3.249.0release notes

  • Policy analysis can analyze an exported state file without requiring a stack or backend login.

    3.249.0release notes

  • Policy group listing supports selecting an output format.

    3.249.0release notes

  • Policy listing supports selecting an output format.

    3.249.0release notes

  • Project listing supports selecting an output format.

    3.249.0release notes

  • Stack history supports selecting an output format.

    3.249.0release notes

  • Stack listing supports selecting an output format.

    3.249.0release notes

  • Stack tag listing supports selecting an output format.

    3.249.0release notes

  • Preview, up, refresh, and destroy can skip stack configuration validation against the project configuration schema.

    3.249.0release notes

  • Resource providers receive the address of a package resolver service during the provider handshake.

    3.248.0release notes

  • Adds the --output flag to the about command.

    3.248.0release notes

  • Adds options to pulumi stack get for parity with the bare pulumi stack command.

    3.248.0release notes

  • Adds the --output flag to the whoami command.

    3.248.0release notes

  • Resource providers receive the address of a schema loader service during the provider handshake.

    3.248.0release notes

  • Supports blocks of PCL kept in state to track ad-hoc resources.

    3.248.0release notes

  • pulumi neo can run tasks without integration credentials.

    3.247.0release notes

  • The package schema model supports extension parameterization.

    3.247.0release notes

  • Generated Go and Python functions can use multiArgumentInputs.

    3.247.0release notes

  • Adds Output.recover to catch and recover from exceptions in outputs.

    3.247.0release notesrelease notes

  • pulumi do can use provider configuration pulled from existing provider state.

    3.247.0release notes

  • Resource providers receive the active login API address and access token through PULUMI_API and PULUMI_ACCESS_TOKEN.

    3.247.0release notes

  • pulumi config set can preserve newlines from stdin when --raw is used.

    3.247.0release notes

  • Schema markdown descriptions can use language-agnostic cross references to other schema components.

    3.247.0release notes

  • Registered resources can be retrieved from the Node.js mock monitor for test assertions.

    3.247.0release notes

  • Adds a read timeout setting for resource read operations.

    3.246.0release notes

  • Adds a command to list automatic log files.

    3.246.0release notes

  • Adds a command to remove automatic log files.

    3.246.0release notes

  • PCL input files can access the selected stack's organization and short name when running pulumi do inside a project.

    3.245.0release notes

  • Coding agents can create claimable temporary accounts when unauthenticated.

    3.243.0release notes

  • The Go plugin.Provider interface now exposes List through the streaming ResourceProvider.List RPC.

    3.243.0release notes

  • The pulumi do command now supports resources.

    3.243.0release notes

  • Adds dedicated command-line flags for each deployment setting.

    3.242.0release notes

  • Adds a command to retrieve details for a specific deployment.

    3.242.0release notes

  • Introduces the initial pulumi do command.

    3.242.0release notes

  • Adds a command to show the full workflow run for one Insights scan.

    3.242.0release notes

  • Adds a command to discover recent Insights scan IDs.

    3.242.0release notes

  • Adds non-interactive single-prompt execution and prints the agent's final response to stdout.

    3.242.0release notes

  • Adds a command to edit organization members.

    3.242.0release notes

  • Adds a command to remove organization members.

    3.242.0release notes

  • Adds a command to export audit logs.

    3.241.0release notes

  • Terminates an in-progress deployment.

    3.241.0release notes

  • Adds JSON output for a structured summary of the destroy operation result.

    3.241.0release notes

  • Lists Insights accounts in an organization.

    3.241.0release notes

  • Creates a Pulumi Insights account.

    3.241.0release notes

  • Triggers a resource discovery scan for an Insights account.

    3.241.0release notes

  • Fetches log output for a Pulumi Insights scan.

    3.241.0release notes

  • Supports selecting specific versions when using registry-backed templates.

    3.241.0release notes

  • Adds a command to list organization audit logs.

    3.241.0release notes

  • Lists the members of an organization.

    3.241.0release notes

  • Assigns a custom role to a team.

    3.241.0release notes

  • Updates a custom role's name, description, or permission tree.

    3.241.0release notes

  • Lists custom roles for an organization.

    3.241.0release notes

  • Creates a custom role from a permission descriptor JSON file.

    3.241.0release notes

  • Deletes a custom role from an organization.

    3.241.0release notes

  • Fetches the resources-under-management summary for an organization.

    3.241.0release notes

  • Lists recent deliveries for an organization webhook.

    3.241.0release notes

  • Updates an organization webhook.

    3.241.0release notes

  • Lists all webhooks configured for an organization.

    3.241.0release notes

  • Creates a new organization webhook.

    3.241.0release notes

  • Sends a test ping to an organization webhook.

    3.241.0release notes

  • Deletes an organization webhook.

    3.241.0release notes

  • Lists compliance results grouped by entity.

    3.241.0release notes

  • Edits policy groups.

    3.241.0release notes

  • Retrieves a policy group.

    3.241.0release notes

  • Creates new policy groups.

    3.241.0release notes

  • Removes policies.

    3.241.0release notes

  • Adds a command to retrieve a policy issue.

    3.241.0release notes

  • Adds a command to list policy issues.

    3.241.0release notes

  • Adds JSON output for a structured summary of the preview operation result.

    3.241.0release notes

  • Adds JSON output for a structured summary of the refresh operation result.

    3.241.0release notes

  • Lists drift detection runs for a stack.

    3.241.0release notes

  • Shows drift detection status for a stack.

    3.241.0release notes

  • Retrieves engine events for a Pulumi Cloud update.

    3.241.0release notes

  • Updates an existing scheduled deployment action.

    3.241.0release notes

  • Retrieves the configuration of a scheduled action.

    3.241.0release notes

  • Lists all scheduled actions configured for a stack.

    3.241.0release notes

  • Creates a raw, drift, or TTL deployment schedule for a stack.

    3.241.0release notes

  • Deletes a scheduled deployment action.

    3.241.0release notes

  • Lists recent deliveries for a stack webhook.

    3.241.0release notes

  • Redelivers a webhook event.

    3.241.0release notes

  • Updates an existing stack webhook.

    3.241.0release notes

  • Creates a new stack webhook.

    3.241.0release notes

  • Deletes a stack webhook.

    3.241.0release notes

  • Adds a command to list deployment executions for a stack.

    3.239.0release notes

  • Adds structured JSON output summarizing the import operation.

    3.239.0release notes

  • Adds a command to retrieve detailed information about a stack.

    3.239.0release notes

  • Adds a command to inspect a single stack webhook.

    3.239.0release notes

  • Adds a command to send a test ping to a stack webhook.

    3.239.0release notes

  • Adds a command to look up a single resource discovered by Pulumi Insights.

    3.238.0release notes

  • Adds a command to search for resources discovered by Pulumi Insights.

    3.238.0release notes

  • Adds an approval-mode flag and supports switching modes mid-session with Ctrl+A.

    3.238.0release notes

  • Adds a permission-mode flag and supports switching modes mid-session with Ctrl+R.

    3.238.0release notes

  • Adds a language flag so the command can run outside a Pulumi project or plugin.

    3.238.0release notes

  • Adds a command to list all webhooks configured for a stack.

    3.238.0release notes

  • Adds a command to list registry-backed templates.

    3.238.0release notes

  • Adds structured JSON output containing a summary of the operation result.

    3.238.0release notes

  • Adds an option to skip up-front plugin installation.

    3.238.0release notes

  • Python provides register_package to cache package references per deployment.

    3.238.0release notesrelease notes

  • Adds a command that bootstraps a Pulumi package from a template.

    3.237.0release notes

  • Summary engine events now include a result field.

    3.237.0release notes

  • Bundles the HCL language host so HCL programs can be used with Pulumi.

    3.235.0release notes

  • Adds progress events on stderr for paginated API requests.

    3.235.0release notes

  • Adds pagination that follows continuation cursors and combines items into one JSON envelope.

    3.235.0release notes

  • Adds a command for calling any Pulumi Cloud API endpoint with field, header, input, body, format, and dry-run handling.

    3.235.0release notes

  • Adds a command for viewing decrypted Pulumi logs.

    3.235.0release notes

  • PCL can read resources by ID and query without registering them.

    3.235.0release notes

  • Adds a command to inspect parameters, request bodies, and response schemas for Pulumi Cloud API operations in text, markdown, or JSON.

    3.234.0release notes

  • Adds a command to browse every endpoint in the Pulumi Cloud OpenAPI specification with table or JSON output.

    3.234.0release notes

  • pulumi neo gains a local literal multi-file replacement tool with file_pattern filtering and dry_run preview support.

    3.233.0release notes

  • pulumi neo gains a local regex-search tool with optional include filtering, while skipping binary files, hidden directories, and node_modules.

    3.233.0release notes

  • The provider protocol and schema now support List for provider integrations.

    3.233.0release notes

  • The experimental pulumi neo agent gains a local pulumi_preview operation tool with streamed resource changes, diagnostics, and operation summaries.

    3.233.0release notes

  • The experimental pulumi neo agent gains a local pulumi_up operation tool with streamed resource changes, diagnostics, and operation summaries.

    3.233.0release notes

  • The auto-generated Pulumi CLI interface is exposed through workspace.cli_api for Python automation users.

    3.233.0release notes

  • Adds an experimental command that creates a Pulumi Neo agent task and runs the local tool loop.

    3.232.0release notes

  • Adds terminal approval handling for sensitive agent actions and forwards responses to the Pulumi Console.

    3.232.0release notes

  • Adds an interactive terminal UI that renders agent messages, tool calls, and streaming output alongside the Pulumi Console session.

    3.232.0release notes

  • Adds a Shift+Tab plan-mode toggle that prevents file writes, pulumi up, and PR creation until a plan is approved.

    3.232.0release notes

  • Automation API destroy now supports --diff.

    3.231.0release notes

  • Local policy packs now support ESC environments.

    3.231.0release notes

  • Python adds decorator variants for resource and error hooks.

    3.231.0release notes

  • Adds deployment information retrieval to the resource monitor service.

    3.231.0release notes

  • Import files may now define providers alongside the resources that use them.

    3.231.0release notes

  • Adds the New command to the Automation API.

    3.231.0release notes

  • Adds the new command to the Python Automation API.

    3.231.0release notes

  • PCL now supports resource hooks.

    3.231.0release notes

  • Inline programs now support --run-program with preview_refresh and destroy in the Node.js and Python Automation APIs.

    3.231.0release notes

  • Python and Node.js providers gain a Cancel handler for cancellation handling.

    3.230.0release notes

  • Policy packs can resolve ESC environments.

    3.230.0release notes

  • The Node.js Automation API adds the new command to its auto-generated interface.

    3.230.0release notes

  • The Node.js Automation API adds the org search command.

    3.230.0release notes

  • The Node.js Automation API adds the org search ai command.

    3.230.0release notes

  • PCL now supports parameterized providers.

    3.229.0release notes

  • Adds a command to run a policy pack against existing state.

    3.229.0release notes

  • The Node.js Automation API adds the org get-default command.

    3.229.0release notesrelease notes

  • The Node.js Automation API adds the org set-default command.

    3.229.0release notesrelease notes

  • Adds --urns to display full resource URNs instead of short names in several CLI operations.

    3.229.0release notes

  • Adds a bidirectional streaming RPC to the LanguageRuntime protobuf.

    3.229.0release notes

  • CLI invocations can use TRACEPARENT to parent Pulumi spans under an existing span.

    3.229.0release notes

  • The auto-generated Node.js interface exposes a low-level cancel command.

    3.228.0release notes

  • Performance tests can use a configured GRPC endpoint.

    3.228.0release notes

  • Pulumi reads resource attributes from the OTEL_RESOURCE_ATTRIBUTES environment variable.

    3.228.0release notes

  • The OTLP exporter supports grpcs endpoints and header authentication.

    3.228.0release notes

  • The command accepts multiple resource URNs and deletes them in dependency-safe order.

    3.228.0release notes

  • Policy packs can now run with bun.

    3.227.0release notes

  • Runs continue after errors when this option is enabled.

    3.227.0release notes

  • Bun is supported as a runtime for Pulumi programs.

    3.226.0release notes

  • Bun is supported as a plugin runtime.

    3.226.0release notes

  • Adds a CLI flag for writing OpenTelemetry traces to a file or directly to a gRPC interface.

    3.226.0release notes

  • PCL supports resource ranges.

    3.226.0release notes

  • Preview or up failures can automatically open a Neo task.

    3.225.0release notes

  • Implements GetProgramDependencies for Bun and pnpm projects.

    3.225.0release notes

  • PCL can express that configuration values should be read as secrets.

    3.225.0release notes

  • DIY backend state files now support zstd compression.

    3.224.0release notes

  • Component schema inference now supports the Partial<T> utility type.

    3.221.0release notes

  • Node.js and Python SDKs use new policy plugin support to run policy packs.

    3.221.0release notes

  • Component schema inference now supports the Required<T> utility type.

    3.221.0release notes

  • RunPluginRequest now includes loader_target.

    3.221.0release notes

  • Provider resources can remap environment variables before passing them to the provider.

    3.220.0release notes

  • Python supports the OnError resource hook.

    3.219.0release notes

  • Adds a command for installing policy packs.

    3.219.0release notes

  • Pulumi.yaml can specify the required Pulumi CLI version.

    3.219.0release notes

  • The .NET program generator now emits RequirePulumiVersion.

    3.219.0release notes

  • The Node.js SDK now supports the OnError resource hook.

    3.218.0release notes

  • The Go SDK now supports the OnError resource hook.

    3.217.1release notes

  • Implements About in the Python automation API server.

    3.217.0release notes

  • Adds CheckPulumiVersion to the Go SDK.

    3.217.0release notes

  • Adds a resource hook for implementing custom retry policies.

    3.217.0release notes

  • Adds the --plan flag to pulumi up.

    3.217.0release notes

  • Adds require_pulumi_version to the Python SDK.

    3.217.0release notes

  • Adds requirePulumiVersion to the Node.js SDK.

    3.217.0release notes

  • The Node.js SDK now supports serializing async generators.

    3.216.0release notes

  • The engine now exposes a CheckPulumiVersion RPC.

    3.216.0release notes

  • Plugins can specify which CLI version range they support.

    3.215.0release notes

  • Adds an sdkgen flag that prevents functions from emitting their plain variants, allowing generated SDK output to be restricted.

    3.214.0release notes

  • Adds the --config option to destroy so developers can select configuration values during resource destruction.

    3.214.0release notes

  • Adds the --config-path option to destroy so developers can specify the configuration file used during destruction.

    3.214.0release notes

  • Adds the --config option to refresh so developers can select configuration values during resource refresh.

    3.214.0release notes

  • Adds the --config-path option to refresh so developers can specify the configuration file used during refresh.

    3.214.0release notes

  • Adds replacement_trigger support to the Python SDK so Python programs can configure replacement-trigger behavior.

    3.214.0release notes

  • Python component providers can now have their version set.

    3.211.0release notes

  • The Node.js SDK now supports replacement triggers for resource replacement behavior.

    3.211.0release notes

  • DIY backends support stack tags, including CRUD operations, system tags, filtering, and compatibility with existing stacks.

    3.211.0release notes

  • A command was added to delete package versions from the Pulumi Registry.

    3.210.0release notes

  • Pulumi Cloud login supports native OIDC token exchange.

    3.209.0release notes

  • The protobuf RPC surface now includes Language.Template.

    3.208.0release notes

  • CLI command flags can now be set through corresponding environment variables, including PULUMI_OPTION_REFRESH for --refresh.

    3.208.0release notes

  • Resources can use replacement_trigger so changing its value between program runs triggers resource replacement, with Go SDK support.

    3.208.0release notes

  • A builtin resource can now save a value to state.

    3.208.0release notes

  • Adds a resource option allowing one resource's replacement operations to trigger replacement of another resource.

    3.207.0release notes

  • Invokes receive a preview flag so they can determine whether they are being called during a preview.

    3.206.0release notes

  • This environment variable skips sending component inputs to the engine for diffing and state storage.

    3.206.0release notes

  • An environment variable can add --refresh to preview, update, and destroy operations.

    3.206.0release notes

  • Policy violation severity can now be overridden.

    3.204.0release notes

Performance 13

  • All commands now start slightly faster.

    3.264.0release notes

  • Pulumi Cloud startup performance has improved.

    3.264.0release notes

  • Provider mapping results are cached on disk so repeated plans avoid booting a provider to fetch unchanged mappings.

    3.260.0release notes

  • Generated code deduplicates identical apply arguments, avoiding unnecessary Promise.all, pulumi.all, and Output.All calls.

    3.252.0release notes

  • Caches type metadata and class references to reduce serialization CPU overhead.

    3.229.0release notes

  • Avoids unnecessary S3 bucket HEAD calls, improving DIY backend performance.

    3.229.0release notes

  • contains_unknowns is faster for large objects.

    3.224.0release notes

  • Plugin downloads use fewer GitHub API requests.

    3.221.0release notes

  • Analyzer calls now run in parallel.

    3.219.0release notes

  • Required policy packs install in parallel with plugins.

    3.219.0release notes

  • StackReference performance was optimized.

    3.216.0release notes

  • Startup performance improves when using the service as a backend.

    3.211.0release notes

  • Improves the performance of StackReference secrets handling.

    3.207.0release notes

Behavior and default changes 165

  • IDInput now satisfies StringInput, allowing it to be used where StringInput is expected.

    3.269.0release notes

  • The Java language runtime is downloaded on demand instead of bundled with the CLI.

    3.269.0release notes

  • lookup accepts defaults of any type and types its result as the unification of the element type and default.

    3.269.0release notes

  • SDKs receive per-value return dependencies from Call operations.

    3.269.0release notes

  • Agent mode now logs in through the browser instead of creating a new agent account.

    3.269.0release notes

  • npm is marked as the recommended package manager when pulumi new prompts for one.

    3.269.0release notes

  • Tuple literals containing outputs are accepted where functions or properties expect input tuples.

    3.269.0release notes

  • URNInput now satisfies StringInput, allowing it to be used where StringInput is expected.

    3.269.0release notes

  • Plugins can now be downloaded from Git repositories whose version tags omit the v prefix.

    3.268.0release notes

  • Pulumi Cloud API calls now include the W3C traceparent header when OpenTelemetry tracing is enabled.

    3.268.0release notes

  • Cross-process install waits can now be cancelled with Ctrl-C.

    3.265.0release notes

  • Quoted strings without interpolation are typed as constants for bind-time string constant and enum validation.

    3.265.0release notes

  • Resources can be assigned to plain properties typed as references to their resource type.

    3.265.0release notes

  • Boolean schemas serialize as equivalent object forms so schema-carrying payloads are valid OpenAPI model instances.

    3.264.0release notes

  • The default plugin version is set when the schema specifies a Go language option.

    3.264.0release notes

  • Interactive login no longer prompts to create a first project.

    3.264.0release notes

  • Skipped reads now return last-known outputs when the resource is already present in state.

    3.264.0release notes

  • A stack configured against a repository URL can be moved onto a version control integration.

    3.264.0release notes

  • Output no longer includes padding for labels that are not printed.

    3.264.0release notes

  • The redundant preview step is skipped when pulumi neo runs the pulumi_up tool.

    3.264.0release notes

  • The credentials preflight now runs for parameterized providers.

    3.264.0release notes

  • Planned and applied state migrations are now reported through user-facing diagnostics.

    3.264.0release notes

  • Python plugin discovery now includes dependencies from the current uv workspace member.

    3.264.0release notes

  • Forwards caller error hooks to remote component providers.

    3.263.0release notes

  • Prompts for ESC project and environment names, asks how to authenticate before access level, and reports successful completion.

    3.263.0release notes

  • Automation API project settings can now use any language runtime.

    3.262.0release notes

  • Component state migrations can split managed state using compatible existing resource identities.

    3.262.0release notes

  • Outputs and prompt values can now be marshalled into fields typed as input interfaces such as pulumi.StringInput.

    3.262.0release notes

  • Stack references use the Pulumi Cloud stack outputs endpoint when advertised instead of exporting the whole deployment.

    3.262.0release notes

  • State migrations now run for aliased remote components.

    3.262.0release notes

  • Generated output types can be used where classes-and-dicts inputs accept an Args class or TypedDict.

    3.261.0release notes

  • Update plan generation and checking now ignore property keys beginning with an underscore.

    3.261.0release notes

  • Command suggestions treat adjacent character swaps as a single typo.

    3.260.0release notes

  • Generated Python accesses hyphenated schema properties through Python attribute names instead of subscripting.

    3.260.0release notes

  • The id attribute of a read resource accepts output-typed values.

    3.260.0release notes

  • Resource, object type, and function names in tokens may contain hyphens.

    3.260.0release notes

  • Python programs support final argument expansion for min and max.

    3.260.0release notes

  • Renders every source kind and shows environment variable values.

    3.260.0release notes

  • Generated Python and Node.js function inputs apply schema defaults.

    3.260.0release notes

  • Stack information output includes secret provider information.

    3.260.0release notes

  • Cancelling a task interrupts a running local tool call instead of waiting for it to finish.

    3.260.0release notes

  • The Node.js Automation API no longer limits captured output buffer size.

    3.259.0release notes

  • Importing local components now generates a component resource definition.

    3.259.0release notes

  • Interactive pulumi new shows one confirmation for project, stack, and config defaults instead of prompting separately.

    3.259.0release notes

  • Creating a stack against the Pulumi Cloud backend now announces that the stack was created.

    3.259.0release notes

  • Interactive pulumi new now asks for a cloud provider and language instead of listing every template.

    3.258.0release notes

  • The CLI offers to create a first project after logging in to an account with no stacks.

    3.257.0release notes

  • Go program generation now emits for expressions as Go loops.

    3.257.0release notes

  • When invoked outside a Pulumi project, pulumi do falls back to an auto-created project and stack under PULUMI_HOME.

    3.257.0release notes

  • Diff display shows secrets when --show-secrets is passed.

    3.257.0release notes

  • The summary output now reports program errors from the language host.

    3.257.0release notes

  • Diff display now shows the value being added when refresh or a provider diff reports an added property.

    3.257.0release notes

  • No longer writes a new environment revision when the resulting definition is unchanged.

    3.256.0release notes

  • Invokes depending on pending resources are deferred or resolve as unknown during previews, and their results carry inferred resource dependencies.

    3.256.0release notes

  • Import files now generate explicit providers in their resources.

    3.256.0release notes

  • Resolves and installs packages required by the program during project creation, as pulumi install does.

    3.256.0release notes

  • Remote operations no longer require a Pulumi.yaml file to be present.

    3.256.0release notes

  • Third-party S3-compatible backends with custom endpoints default checksum calculation to when_required, fixing 403 write errors.

    3.256.0release notes

  • State converters can supply resource inputs and outputs in ConvertState responses.

    3.255.0release notes

  • Project files are written to disk and their paths are exposed as environment variables for every output format.

    3.255.0release notes

  • Strings containing non-UTF8 bytes can flow between providers, the engine, state, and opted-in languages.

    3.255.0release notes

  • Provider servers can run Construct and Call methods concurrently.

    3.255.0release notes

  • A component block's providers option now applies to the resources and invokes it declares.

    3.255.0release notes

  • Neo diagnostics now suggest debug-update or debug-preview commands for investigating failed operations.

    3.255.0release notes

  • When uv is used, UV_PROJECT_ENVIRONMENT can override the virtualenv path.

    3.255.0release notes

  • Do now accepts expressions for boolean inputs.

    3.254.0release notes

  • Do now accepts expressions for number inputs.

    3.254.0release notes

  • list, remove and move are canonical env subcommands; ls, rm, delete and mv remain aliases.

    3.253.0release notes

  • The command now reports the TypeScript version for Node.js projects.

    3.252.0release notes

  • Using Pulumi ESC with a DIY backend now suggests logging into Pulumi Cloud in the error message.

    3.252.0release notes

  • Commands that list logs now show the command name, and current-command logs are excluded.

    3.252.0release notes

  • Missing resource URNs now produce suggestions for close matches and instructions for listing stack URNs.

    3.252.0release notes

  • Reading non-secret stack outputs no longer requires the passphrase for passphrase-encrypted stacks.

    3.252.0release notes

  • Diff output now marks resources configured to be retained on deletion.

    3.251.0release notes

  • Resources under extension-parameterized providers can now be imported.

    3.251.0release notes

  • Environment definition updates now report the new revision number.

    3.251.0release notes

  • Automatic logging is now enabled for every command by default.

    3.249.0release notes

  • Policy violation output now uses display resource type names.

    3.249.0release notes

  • pulumi login warns when the provided login differs from PULUMI_BACKEND_URL.

    3.249.0release notes

  • Generated Python and NodeJS programs represent map range resource collections as key-indexed maps.

    3.248.0release notes

  • Resource providers receive the mapper service address during the provider handshake.

    3.247.0release notes

  • The CLI refreshes expired access tokens on 401 and retries once when credentials.json contains an OAuth refresh token.

    3.247.0release notes

  • Plugin tarballs containing symlinks are now accepted.

    3.247.0release notes

  • Replies such as ok, approve, and go ahead are accepted as approvals at pulumi neo prompts.

    3.246.0release notes

  • JSON output now includes affected resources and their URN, type, name, operation, and parent.

    3.246.0release notes

  • Provider object outputs may now use string enumerations.

    3.246.0release notes

  • Ctrl+Z suspends a running session and restores its transcript when resumed with fg.

    3.246.0release notes

  • Projects without a runtime are supported across CLI operations and Automation API project settings.

    3.246.0release notes

  • Provider plugins are resolved through the Pulumi Registry when converting from a third-party source.

    3.246.0release notes

  • The HCL language runtime is downloaded on demand instead of being bundled.

    3.245.0release notes

  • The command now suggests similar tokens when an unknown token is provided.

    3.245.0release notes

  • Prompt history can now be scrolled with the up and down arrow keys.

    3.245.0release notes

  • All provider errors are now forwarded to error hooks, enabling retry behavior.

    3.244.0release notes

  • Installation now distinguishes multiple packages that use the same plugin.

    3.244.0release notes

  • When using uv without a project section, requirements.txt is merged into pyproject.toml.

    3.244.0release notes

  • When both are available, pulumi api now prefers text/markdown over JSON.

    3.243.0release notes

  • Preview and update diagnostics now suggest pulumi neo.

    3.243.0release notes

  • Esc clears non-empty input; with an empty box, it still cancels the agent's current turn.

    3.243.0release notes

  • With -y and no template, the command writes a minimal project file.

    3.243.0release notes

  • Neo is visible by default because the experimental gate was removed.

    3.241.0release notes

  • Supports multiline input through several key combinations and a trailing backslash.

    3.241.0release notes

  • integration.ProgramTest now recognizes the hcl runtime.

    3.238.0release notes

  • integration.ProgramTest now recognizes the pcl runtime.

    3.238.0release notes

  • GET and HEAD requests automatically receive lang and os query parameters when declared by the matched OpenAPI operation.

    3.237.0release notes

  • Pulumi Cloud API requests now identify the running command and detected AI agent when present.

    3.237.0release notes

  • Automatically installs the HCL converter when converting from HCL.

    3.235.0release notes

  • The engine caches schemas in PULUMI_HOME/schemas, including schemas for parameterised packages.

    3.235.0release notes

  • Node.js program generation now awaits plain call results and uses an async export wrapper when required by the runtime Promise type.

    3.233.0release notes

  • Adds local execution of the edit filesystem tool with exact replacement validation and empty-file creation support.

    3.232.0release notes

  • Gates the experimental pulumi neo functionality behind an environment variable.

    3.232.0release notes

  • Keeps the thinking spinner active until final events and lets users press Esc to request cancellation.

    3.232.0release notes

  • Node.js and Python component provider hosts warn when components contains a non-ComponentResource class.

    3.231.0release notes

  • The Python runtime now supports unwrapping Input[Optional[T]] types.

    3.231.0release notes

  • Automatically detects Mercurial repository metadata for updates, matching existing Git support.

    3.231.0release notes

  • Resource options are now passed to hooks through the engine.

    3.231.0release notes

  • Destroy and import preview-only operations no longer retain a state lock for the DIY backend.

    3.231.0release notes

  • PCL permits key indexing into a map of resources created by range.

    3.230.0release notes

  • Wires the Cancel RPC to language host Run across supported SDKs.

    3.229.0release notes

  • Adds update metadata to the OpenTelemetry root span.

    3.229.0release notes

  • PCL applies default values defined by resource schemas.

    3.229.0release notes

  • Uses nodenext for the module setting in the Node.js SDK configuration.

    3.229.0release notes

  • Uses nodenext for module resolution in the Node.js SDK configuration.

    3.229.0release notes

  • Additional OpenTelemetry interceptors are added for GRPC clients.

    3.228.0release notes

  • Provider OpenTracing spans are bridged into OpenTelemetry traces.

    3.228.0release notes

  • The tracing option now accepts relative file paths.

    3.228.0release notes

  • Pulumi package publishing now supports Azure DevOps git URLs.

    3.227.0release notes

  • The CLI now uses distinct exit codes for different error types.

    3.227.0release notes

  • The CLI now automatically installs missing policy analyzer plugins.

    3.227.0release notes

  • Python toolchain selection now detects lock files.

    3.227.0release notes

  • Generated Go program go.mod files now target Go 1.25 instead of Go 1.23.

    3.226.0release notes

  • Python program dependency detection reads Poetry and uv lockfiles.

    3.226.0release notes

  • pulumi about now displays Bun information.

    3.226.0release notes

  • Refreshing a stack's config now includes environments used by that configuration.

    3.226.0release notes

  • The engine uses provider references from __self__ arguments to calls.

    3.226.0release notes

  • Resource registrations now inherit the provider option automatically.

    3.225.0release notes

  • Journaling is enabled by default and can be disabled with PULUMI_DISABLE_JOURNALING.

    3.225.0release notes

  • The engine now reports policy pack installation errors, making installation failures visible to developers.

    3.223.0release notes

  • Component schema inference now supports enums.

    3.221.0release notes

  • Plugin URLs can now contain underscores in their paths.

    3.221.0release notes

  • Package name resolution now uses the Pulumi Cloud Registry by default.

    3.220.0release notes

  • The Python SDK relaxes its pip version constraint.

    3.219.0release notes

  • Components can use private packages as local dependencies.

    3.219.0release notes

  • The Python SDK supports protobuf 6.

    3.219.0release notes

  • Login extracts organization, team, and user from OIDC JWT claims.

    3.217.0release notes

  • Node.js and Python dynamic providers can return inputs from read(), enabling accurate diffs after refresh.

    3.216.0release notes

  • Login defaults to Pulumi Cloud when an OIDC token is used.

    3.216.0release notes

  • Pulumi no longer sets PULUMI_ROOT when using mise.

    3.216.0release notes

  • Boolean configuration values accept different spellings instead of only lowercase true.

    3.215.0release notes

  • Multiple components from the same repository can now be referenced.

    3.211.0release notes

  • The command now prints Node.js package manager information.

    3.211.0release notes

  • Update metadata now includes language runtime metadata.

    3.211.0release notes

  • The command now always prints the schema before any binding errors.

    3.210.0release notes

  • The command now prints Python toolchain information.

    3.210.0release notes

  • The Python SDK allows older grpcio dependencies.

    3.209.0release notes

  • The Python SDK adds runtime validation checks for PropertyValue.

    3.209.0release notes

  • The Python SDK allows older protobuf dependencies.

    3.209.0release notes

  • The --generate-only workflow now creates pyproject.toml for uv and poetry projects.

    3.209.0release notes

  • pulumi new --generate-only creates pyproject.toml for uv and poetry projects.

    3.209.0release notes

  • Resources marked as Delete can now be targeted and are included in dependency calculation.

    3.208.0release notes

  • pulumi install now recursively installs dependencies in local packages.

    3.208.0release notes

  • Python SDK generation now accepts all PEP440 version specifiers.

    3.207.0release notes

  • Automation APIs retrieve the event log over gRPC instead of reading it from a text file.

    3.206.0release notes

  • The command now includes PULUMI_* environment variables in its output.

    3.206.0release notes

  • Resource state now supports floating-point NaN and Inf values.

    3.206.0release notes

  • The CLI prints replace diffs when replacement is blocked because a resource still has an import ID.

    3.204.0release notes

Tooling 47

  • pulumi_preview and pulumi_up tool results now report the console URL and update identifiers.

    3.266.0release notes

  • Messages and help text now reference pulumi env instead of the retired standalone esc CLI.

    3.264.0release notes

  • Generated Python SDKs now use packaging instead of parver.

    3.262.0release notes

  • Generated Python output types are now precise for discriminated unions instead of using broad Any-based types.

    3.261.0release notes

  • Generated Python adds type annotations for config variable defaults supplied by invokes.

    3.260.0release notes

  • The Go SDK supports Go 1.27.

    3.260.0release notes

  • Node.js transforms can be mocked.

    3.260.0release notes

  • Go transforms can be mocked.

    3.260.0release notes

  • Generated Python type definitions represent constant properties with Literal[value] instead of their primitive type.

    3.259.0release notes

  • Generated Go code uses known map types instead of map[string]interface{} for better typing.

    3.256.0release notes

  • SDKs and programs can now be generated for extension-parameterized packages.

    3.251.0release notes

  • OpenTelemetry spans now identify slow snapshot fetches, deserialization, or secret decryption during StackReference reads.

    3.251.0release notes

  • list and remove are the canonical command names; ls and rm remain aliases.

    3.247.0release notes

  • The CLI now shows download and unpack progress while installing provider plugins.

    3.245.0release notes

  • The package name input is reserved for internal use by sdkgen.

    3.243.0release notes

  • The package name pulumi is reserved for internal use by sdkgen.

    3.243.0release notes

  • pulumi new is now an alias for pulumi project new.

    3.243.0release notes

  • Adds a pulumi package for npx support.

    3.242.0release notes

  • Shows tool call arguments and results through a ctrl+o overlay.

    3.241.0release notes

  • Help now recommends pulumi cloud api describe for verifying operation parameters before calling.

    3.238.0release notes

  • When invoked by an AI coding agent, prints pulumi api pointers after the command completes.

    3.238.0release notes

  • When invoked by an AI coding agent, prints pulumi api pointers after the command completes.

    3.238.0release notes

  • Generated Node.js and Python optional input types now accept undefined or None values.

    3.233.0release notes

  • Node.js codegen now emits unqualified Provider references for a package's own provider resource inside that package.

    3.233.0release notes

  • Generates command methods for the Go Automation API.

    3.232.0release notes

  • Node.js projects using pnpm can now use package.yaml.

    3.231.0release notes

  • The CLI detects AI agents and includes that information in update metadata.

    3.230.0release notes

  • Generated TypeScript configuration is modernized to align with TypeScript defaults.

    3.229.0release notes

  • Allows TypeScript 6 as a Node.js SDK peer dependency.

    3.229.0release notes

  • Plugin installation emits spans, and dependency installation exposes more attributes.

    3.228.0release notes

  • The CLI root span includes CLI metadata.

    3.228.0release notes

  • Debugger support is available for the Bun runtime.

    3.226.0release notes

  • pulumi schema check now supports source-based packages in addition to schema files.

    3.224.0release notesrelease notes

  • Go program generation now generates Call requests.

    3.222.0release notes

  • Go 1.26 is supported.

    3.221.0release notes

  • SDK generation now supports type references to parameterized and third-party packages.

    3.221.0release notes

  • The CLI now shows environment variables that were set when a snapshot integrity error occurs.

    3.220.0release notes

  • Codegen creates namespace aliases to avoid Pulumi namespace collisions.

    3.214.1release notes

  • Go SDK generation now supports three-level nested builtin output types.

    3.213.0release notes

  • Language runtimes for .NET, Java, and YAML are bumped.

    3.211.0release notes

  • The Java toolchain was updated to v1.18.

    3.210.0release notes

  • Generated SDKs now include a .gitattributes file.

    3.209.0release notes

  • Generated SDKs now include a .gitignore file.

    3.209.0release notes

  • The CLI now logs gRPC requests before invoking them, improving visibility when debugging CLI operations.

    3.207.0release notes

  • The CLI improves how policy violation severity is displayed.

    3.205.0release notes

  • The command now shows functions exposed by a package.

    3.203.0release notes

  • CLI output now displays the severity associated with policy violations.

    3.203.0release notes

Fixes and other changes 289

  • Agent previews honor optional refresh settings without persisting refreshed state.

    3.269.0release notes

  • The PCL entries built-in no longer panics on empty maps or maps whose values have different shapes.

    3.269.0release notes

  • Missing lookup defaults are now reported at bind time instead of when the program runs.

    3.269.0release notes

  • Output.recover now catches faults arriving through apply or after the program body returns.

    3.269.0release notes

  • The command now correctly adds and removes stacks, Policy Packs, and Insights accounts.

    3.269.0release notes

  • Elided asset contents are restored from prior state when providers echo assets during refresh or update.

    3.268.0release notes

  • Plugin checksum verification no longer rejects valid HTTP/1.1 downloads or ignores trailing archive data.

    3.268.0release notes

  • Project settings now work correctly for projects located in symlinked directories.

    3.268.0release notes

  • The pulumi new credentials check no longer has a timeout or produces spurious premature provider exit errors.

    3.268.0release notes

  • Dynamic providers fall back to Read inputs when properties is empty, keeping Get working after engine state changes.

    3.268.0release notes

  • Equivalent recursive object types and object maps now resolve consistently to the same finite type without stack overflow.

    3.268.0release notes

  • Ancestor component resource transforms now apply to resources parented under a resource read.

    3.268.0release notes

  • Snapshot integrity errors are fixed when untargeted steps change dependencies in the program.

    3.268.0release notes

  • pulumi install now works for Python plugins and policy packs using uv with a [build-system] table.

    3.267.0release notes

  • Concurrent pulumi new runs no longer fail when cloning the templates repository.

    3.267.0release notes

  • The credentials warning no longer prints the provider documentation link twice.

    3.266.0release notes

  • Union members are ordered structurally rather than by printed form, making recursive object output complete and diagnostics consistent.

    3.266.0release notes

  • Encrypted credentials in other PULUMI_HOME directories remain readable after logout or login in one directory.

    3.265.0release notes

  • The PCL length built-in now accepts objects and maps.

    3.265.0release notes

  • Generated programs now handle length on output values and count keys of maps and objects in Node.js.

    3.265.0release notes

  • min and max are typed as numbers when any argument is a non-integer literal.

    3.265.0release notes

  • The CLI recovers from partial installs and waits for parallel installs.

    3.265.0release notes

  • Go policy analyzer configuration schemas are now serialized correctly.

    3.265.0release notes

  • Generated Python for output-dependent resource ranges is now valid.

    3.265.0release notes

  • Generated Node.js programs now fill the lists produced by range.

    3.265.0release notes

  • Skipped reads now report Unknown=true after dependency failure during --continue-on-error updates.

    3.265.0release notes

  • Skipped imports now report Unknown=true after dependency failure during --continue-on-error updates.

    3.265.0release notes

  • Generated Node.js SDKs now compile when resource inputs reference themselves.

    3.265.0release notes

  • Informational messages no longer trigger the Neo diagnostic help prompt.

    3.264.0release notes

  • An OnError retry updates the partially created resource instead of creating another resource.

    3.264.0release notes

  • Resources marked PendingReplacement are no longer incorrectly targeted for deletion.

    3.264.0release notes

  • The command no longer leaks package processes.

    3.264.0release notes

  • PCL read blocks now propagate the dependsOn resource option.

    3.264.0release notes

  • Go ReadResource calls now propagate the dependsOn resource option.

    3.264.0release notes

  • Prevents a panic when pnpm config get allowBuilds prints null.

    3.263.0release notes

  • Stops overwriting stack sources for stacks using providers other than GitHub.

    3.263.0release notes

  • Reports an unconfigured stack instead of failing.

    3.263.0release notes

  • Protects retained resources from deletion during a subsequent update before generated code is added.

    3.263.0release notes

  • Applies remote component provider state migrations when the caller also supplies migrations.

    3.263.0release notes

  • An agent account claim marked unavailable is re-validated instead of trusting the stale marker indefinitely.

    3.262.0release notes

  • Automation API error predicates now match wrapped errors and unwrap the underlying cause.

    3.262.0release notes

  • disableSSL no longer overrides explicitly specified protocols.

    3.262.0release notes

  • Errors now report the source position of user code calling a generated resource getter instead of the getter body.

    3.262.0release notes

  • The exclude-dependents option is now propagated through resources read with .get().

    3.262.0release notes

  • The target-dependents option is now propagated through resources read with .get().

    3.262.0release notes

  • Packages required by a local plugin directory are installed before the plugin is installed and run.

    3.262.0release notes

  • Provider configuration runs during provider creation, associating configuration errors with the provider resource.

    3.262.0release notes

  • A resource provider attached through PULUMI_DEBUG_PROVIDERS is treated as installed, preventing an unnecessary download.

    3.262.0release notes

  • pulumi install now works for projects requiring a provider attached through PULUMI_DEBUG_PROVIDERS.

    3.262.0release notes

  • Relative plugin and package paths are resolved against the project directory when starting from a project subdirectory.

    3.262.0release notes

  • Resources are sorted deterministically when repairing a snapshot.

    3.262.0release notes

  • State migration ordering is corrected for components interleaved with other resources.

    3.262.0release notes

  • Successor references are normalized between chained component state migration callbacks.

    3.262.0release notes

  • Ephemeral agent credentials now show the agent account's claim URL instead of an inaccessible View Live link.

    3.261.0release notes

  • Stacks containing a custom resource with no ID now produce a clear error instead of panicking.

    3.261.0release notes

  • Binding a schema property with an integer constant value no longer crashes.

    3.261.0release notes

  • Policy operations no longer hang when a policy pack fails to start up.

    3.261.0release notes

  • Serialization of secret unknowns is corrected in NodeJS, Python, and PCL.

    3.261.0release notes

  • Union values are resolved by wire shape so members without constant properties serialize and translate with the correct property names.

    3.261.0release notes

  • Generated Python remains valid when a component with inputs instantiates another component.

    3.260.0release notes

  • Resources whose deletedWith target is replaced are replaced too, instead of being left orphaned in state.

    3.260.0release notes

  • Python discriminated unions are resolved correctly by their tag.

    3.260.0release notes

  • DIY backend stacks remain readable when checkpoint compression transitions fail.

    3.260.0release notes

  • Go SDK ESC imports use resolved environment names when evaluated.

    3.260.0release notes

  • Generated Node.js declarations quote illegal property identifiers and use bracket access, including for kebab-case names.

    3.260.0release notes

  • Generated Go uses valid struct field names for schema properties whose names contain hyphens.

    3.260.0release notes

  • Imported resources are not replaced when an input becomes secret or output-wrapped without changing its inner value.

    3.260.0release notes

  • Cancelling a local tool call no longer leaves the TUI stuck on Thinking with input blocked.

    3.260.0release notes

  • Cancelling a Neo task immediately stops its local tool and reports the task as cancelled.

    3.260.0release notes

  • pulumi install preserves a package's pluginDownloadURL in regenerated SDKs.

    3.260.0release notes

  • Python provider stack traces are improved.

    3.260.0release notes

  • Python programs preserve all providers passed to remote components.

    3.260.0release notes

  • Generated Python TypedDicts mark required component inputs as required.

    3.260.0release notes

  • Generated Resource.get resolves output-only properties as unknown during preview when the id is unknown.

    3.260.0release notes

  • Python runtime context is propagated across thread boundaries.

    3.260.0release notes

  • Selecting a stack by name outside a Pulumi project directory now produces a clearer error.

    3.260.0release notes

  • Approval replies are no longer silently dropped when the outbound event queue is full.

    3.259.0release notes

  • Serialization always emits the required value and environment keys defined by the ESC OpenAPI contract.

    3.259.0release notes

  • Serialization always emits the required value and environment keys defined by the ESC OpenAPI contract.

    3.259.0release notes

  • The engine no longer returns extension package references for non-parameterised packages sharing the same base.

    3.259.0release notes

  • Generated Go program code is deterministic for objects mixing null and typed properties.

    3.259.0release notes

  • Generated Python code now uses the correct casing for local component outputs.

    3.259.0release notes

  • Mode changes are no longer silently dropped when the outbound event queue is full.

    3.259.0release notes

  • Uses the configured default organization when listing policy groups.

    3.259.0release notes

  • Snippets are retained when deletion fails so the delete operation can be retried.

    3.259.0release notes

  • Login failures explain which state backend failed, where it was configured, and how to change it.

    3.259.0release notes

  • Cancellation requests rejected by the service are retried, keeping Esc responsive instead of leaving the CLI stuck on cancelling.

    3.259.0release notes

  • Reports every schema validation error when package schema binding fails.

    3.259.0release notes

  • Progress bars now render correctly for parallel plugin installations.

    3.259.0release notes

  • DIY backend errors report the configured URL, resolved URL when normalization changed it, and identify local paths as state directories.

    3.259.0release notes

  • Generated Go package clauses are now valid when schema module names contain hyphens.

    3.258.0release notes

  • Fixes global project lookup for pulumi do.

    3.258.0release notes

  • Template and repository cloning now works in paths containing symlinks with absolute targets.

    3.258.0release notes

  • pulumi preview --import-file no longer emits unknown values.

    3.258.0release notes

  • The Python SDK now uses the resource monitor's advertised feature set consistently.

    3.258.0release notes

  • Node.js schema modules with hyphens now export under valid sanitized identifiers, including type namespaces.

    3.258.0release notes

  • Commands now exit promptly when cancelled during a retried HTTP request.

    3.257.0release notes

  • Panics in hooks no longer crash the entire process.

    3.257.0release notes

  • The patch command works in stateful mode and overlays supplied inputs onto the existing snippet.

    3.257.0release notes

  • The --server value is preserved when adding a package to the packages section of Pulumi.yaml.

    3.257.0release notes

  • Plugin last-used times are tracked accurately on all platforms.

    3.257.0release notes

  • Go program generation renames properties colliding with reserved names, preventing uncompilable output.

    3.257.0release notes

  • Generated Go input types now include deeply nested collections of object types.

    3.257.0release notes

  • The SDK provides an improved error message when resource registrations remain pending as pulumi exits.

    3.257.0release notes

  • Current stack selection is scoped to the active backend, preventing stale stack errors after switching backends.

    3.256.0release notes

  • No longer leaks --stack into converter arguments and works when GenerateCode(false) is set.

    3.256.0release notes

  • The insecure login setting is now reflected in stack service secrets manager state, fixing TLS verification failures with self-signed self-hosted backends.

    3.256.0release notes

  • Invokes written inside a component are parented to that component so they resolve its providers.

    3.255.0release notes

  • An invoke resolves its provider from the providers option of its parent named in the request.

    3.255.0release notes

  • Parallel pulumi install processes sharing PULUMI_HOME no longer intermittently fail with a missing provider executable error.

    3.255.0release notes

  • Import file generation works correctly when parent resources share names.

    3.255.0release notes

  • Fixes generated Go code for plain properties nested inside non-plain objects.

    3.254.0release notes

  • Generated Go programs now compile when discriminated union members are used as array or list elements.

    3.254.0release notes

  • Ctrl+C clears typed text while Ctrl+A and Ctrl+E line navigation are preserved.

    3.254.0release notes

  • Ignore-pattern matching on macOS precomposes filenames to NFC, so composed patterns match decomposed filenames like Git.

    3.253.0release notes

  • Provider resources declared inside PCL components are now generated correctly for Node.js, Python and Go.

    3.253.0release notes

  • Without -v, only warnings and errors are written to stderr again.

    3.253.0release notes

  • Strings containing non-UTF8 bytes are rendered as base64 in diffs and JSON output.

    3.252.0release notes

  • Resources whose import identifier differs from the canonical ID are no longer deleted on a subsequent update.

    3.252.0release notes

  • PCL invokes functions declared with multi-argument inputs using positional arguments.

    3.251.0release notes

  • Function serialization no longer includes the package version in module paths when using pnpm.

    3.251.0release notes

  • Fixes recursive property log marshaling in the CLI engine.

    3.250.0release notes

  • The deletedWith resource option now works correctly in Python component resource providers.

    3.249.0release notes

  • Nested FileArchive entries in AssetArchive no longer use backslashes on Windows.

    3.249.0release notes

  • Operations no longer fail solely because logging fails.

    3.249.0release notes

  • Generated Node.js numeric range loops use per-iteration bindings so deferred applies observe the correct index.

    3.249.0release notes

  • Removing the last tag now works on self-managed (DIY) backends.

    3.249.0release notes

  • The replaceWith resource option now works correctly in Python component resource providers.

    3.249.0release notes

  • Generated Python and NodeJS programs guard references to boolean range resources so the generated code type-checks.

    3.248.0release notes

  • Prevents a panic when binding a schema that references an uninstalled plugin.

    3.248.0release notes

  • Local Node.js SDKs can run their postinstall script under npm 12.

    3.247.0release notes

  • pulumi logout now clears the current tokenless backend in coding agent environments.

    3.247.0release notes

  • pulumi package add no longer fails with pnpm for generated SDKs using scoped package names.

    3.247.0release notes

  • The CLI respects PULUMI_SKIP_CONFIRMATIONS for every confirmation prompt.

    3.247.0release notes

  • Local SDKs added with pulumi package add are built correctly with pnpm 10.34.2 or newer.

    3.246.0release notes

  • Applying a resource transformation no longer drops the resource parent from RegisterResource.

    3.246.0release notes

  • Node.js SDK mergeOptions no longer drops onError hooks from ResourceOptions.

    3.245.0release notes

  • Top-level flags such as --logtostderr are now recognized when using pulumi do.

    3.244.0release notes

  • Fixes a snapshot integrity issue when running up with --refresh.

    3.244.0release notes

  • Closes gzip.Writer so archiveTarGZIP produces valid tar.gz output.

    3.242.0release notes

  • Fixes ArgsDict usage in Python typed dictionaries.

    3.242.0release notes

  • Makes --all follow the server's pagination cursor through the end of the log.

    3.242.0release notes

  • Renders --job/--step mode as structured lines instead of an empty raw-string blob.

    3.242.0release notes

  • Editing deployment settings no longer clears settings that were not requested for change.

    3.241.0release notesrelease notes

  • Preserves map entries whose values match enum members in union input element types.

    3.241.0release notes

  • Generates PCL for asset and archive inputs when importing resources instead of returning a NYI error.

    3.241.0release notes

  • Preserves asset, archive, and resource-reference values in maps and arrays and escapes template sequences in map keys.

    3.241.0release notes

  • Batch encryption and decryption errors are no longer silently dropped.

    3.239.0release notes

  • Schema names are validated against module paths to prevent conflicts.

    3.239.0release notes

  • Map values with union element types made of Input-wrapped types are no longer dropped during HCL2 import.

    3.238.0release notes

  • Imported resource state generation now preserves provider-defined keys prefixed with double underscores.

    3.237.0release notes

  • Code generation no longer reports false circular references for several resource option entries sharing top-level node names.

    3.237.0release notes

  • Every assistant message now remains visible in TUI scrollback across tool calls.

    3.237.0release notes

  • Neo TUI conversation blocks now have blank-line gaps for clearer separation.

    3.237.0release notes

  • Cancelling a Neo session no longer causes a panic.

    3.237.0release notes

  • Tool results now return the bare stack name and canonical project name instead of raw input values.

    3.237.0release notes

  • PCL binding no longer panics when a conditional mixes a Promise-typed branch with a try branch.

    3.237.0release notes

  • Component resource argument types now support NotRequired, Required, and total=False TypedDict declarations.

    3.237.0release notes

  • Neo clarifying questions are rendered as questions rather than approval prompts.

    3.237.0release notes

  • Node.js and Python program generation now emits the correct length check for string length.

    3.235.0release notes

  • The Neo shell tool now honors agent-supplied timeouts and terminates the whole process tree when deadlines fire.

    3.235.0release notes

  • Neo now surfaces task-creation errors and exits instead of leaving the TUI stuck.

    3.235.0release notes

  • Pressing Ctrl+C twice now exits Neo cleanly instead of requiring a third press.

    3.235.0release notes

  • Go code generation now correctly generates slices of pulumi.Asset and pulumi.Archive.

    3.235.0release notes

  • Python RPC deserialization now preserves double-underscore-prefixed keys such as type discriminators.

    3.235.0release notes

  • Reverts parsing changes that caused errors for property paths that were previously valid.

    3.234.0release notes

  • Installed plugins claiming the same default provider package name now produce a clear error instead of a panic.

    3.233.0release notes

  • PCL no longer wraps plain method call returns in Output<T>, preventing broken generated apply traversals.

    3.233.0release notes

  • Go codegen now emits unqualified Provider references for a package's own provider resource so generated identifiers compile.

    3.233.0release notes

  • Node.js codegen now imports the Provider class name instead of using the title-cased package name.

    3.233.0release notes

  • Python codegen avoids self-imports when referencing a package's own provider resource, preventing circular imports at runtime.

    3.233.0release notes

  • Uses the default organization name instead of the username when listing policies.

    3.232.0release notes

  • Fixes a race condition during parallel delete-before-replace operations.

    3.232.0release notes

  • Signals providers to cancel before closing them during replacement.

    3.232.0release notes

  • Generated Node.js and Python programs now correctly import camelCase modules.

    3.231.0release notes

  • Generated Go, Node.js, and Python programs now handle some name conflicts correctly.

    3.231.0release notes

  • Generated Node.js programs now include necessary casts between types.

    3.231.0release notes

  • Fixes snapshot integrity errors involving component and provider resources during refresh with --run-program.

    3.231.0release notes

  • Node.js component schemas now include inherited input properties from extended args interfaces.

    3.230.0release notes

  • Python component schemas now include inherited input properties from base classes.

    3.230.0release notes

  • Go predeclared identifiers are added to reserved words during generation.

    3.230.0release notes

  • The Go Automation API places --non-interactive before -- so it is not misinterpreted as a positional argument.

    3.230.0release notes

  • Go union type code generation now handles optional list types.

    3.230.0release notes

  • state upgrade checks for Pulumi.yaml projects and the backend option.

    3.230.0release notes

  • Go program generation now handles ternary expressions inside apply callbacks.

    3.230.0release notes

  • unmarshalOutput now handles known outputs with null elements.

    3.230.0release notes

  • Closure serialization now works for cached modules wrapped with __importStar.

    3.229.0release notesrelease notes

  • Fixes a deadlock when cancelling an operation.

    3.229.0release notes

  • Fixes OpenTelemetry flushing when providers shut down.

    3.229.0release notes

  • Fixes variable lookup in parent scopes.

    3.229.0release notes

  • DIY backend refresh --preview-only no longer leaves a state lock.

    3.229.0release notes

  • Fixes --include and --exclude for program-based refresh.

    3.229.0release notes

  • Detailed diffs no longer visually nest changed resources under unrelated visible resources when unchanged parents are hidden.

    3.228.0release notes

  • Tracing spans for GRPC streams now end correctly.

    3.228.0release notes

  • Import code generation correctly creates references to non-standard names.

    3.228.0release notes

  • Generated Node.js and Python code correctly converts literals when calling local components.

    3.228.0release notes

  • The CLI no longer applies the secrets filter to boolean values true and false, regardless of case.

    3.228.0release notes

  • Bun execution now checks for an SDK version compatible with bun.

    3.227.0release notes

  • Node.js program generation now correctly generates for expressions.

    3.227.0release notes

  • Python program generation now correctly generates list and dictionary comprehensions.

    3.227.0release notes

  • Refresh no longer encounters a snapshot integrity error when parents change.

    3.227.0release notes

  • The engine now fills in Name and Type for ResourceReference values sent over the wire protocol.

    3.227.0release notes

  • The error message shown during SAML SSO reauthorization has been improved.

    3.227.0release notes

  • Known output values are serialized correctly in snapshots instead of always being recorded as computed.

    3.226.0release notes

  • Package URLs containing .git are parsed correctly.

    3.226.0release notes

  • pulumi destroy now displays the parent resource hierarchy.

    3.226.0release notes

  • package get-schema works correctly for binary providers at relative paths.

    3.226.0release notes

  • Installed packages' pulumi-plugin.json files are located using importlib.

    3.226.0release notes

  • State moves avoid integrity errors when copied providers depend on resources left in the source stack.

    3.226.0release notes

  • ReplacementTrigger no longer fires incorrectly because of dependency changes.

    3.226.0release notes

  • Snapshot integrity issues are automatically repaired, with an error event sent to the backend for diagnosis.

    3.226.0release notes

  • Automation StepEventMetadata JSON parsing handles null detailedDiff values.

    3.226.0release notes

  • Default provider inheritance now works across resources from different packages.

    3.225.1release notes

  • Go code generation no longer panics when schemas contain digit-prefixed properties.

    3.225.1release notes

  • Python code generation now correctly generates entries calls.

    3.225.1release notes

  • Go code generation now lifts plain values to input/output values when required.

    3.225.1release notes

  • Python code generation now correctly generates lookup calls.

    3.225.1release notes

  • Fixes a panic when importing a service stack into a DIY backend.

    3.225.0release notes

  • The Python Automation API no longer crashes in forked processes.

    3.224.0release notes

  • Integer component inputs are converted to int.

    3.224.0release notes

  • Fixes a panic when a new component resource in the program is not targeted.

    3.224.0release notesrelease notes

  • from_json now reads resourceUrn correctly instead of the snake_case name, preventing the field from being None.

    3.224.0release notes

  • The StackReference schema is corrected.

    3.224.0release notes

  • Generated files now implement singleOrNone semantics correctly.

    3.224.0release notes

  • Loading policy packs using policy SDK v1.18.1 or older no longer hangs.

    3.222.0release notes

  • Go program generation now handles import paths for nested modules correctly.

    3.221.0release notes

  • The command no longer panics for non-absolute paths when PulumiPlugin.yaml has a packages section.

    3.221.0release notes

  • A Pulumi project is now linked only once.

    3.221.0release notes

  • Refresh with --run-program no longer produces snapshot integrity errors with component resources.

    3.221.0release notes

  • A race condition in refresh with --run-program was fixed.

    3.221.0release notes

  • Errors from uv, poetry, or pip during dependency installation are always surfaced.

    3.221.0release notes

  • Errors from uv, poetry, or pip during linking are now surfaced.

    3.221.0release notes

  • Stack graph output is now deterministic.

    3.221.0release notes

  • Python package linking with uv now runs in the correct location.

    3.221.0release notes

  • _LazyModule no longer triggers a full module load for introspection attributes.

    3.220.0release notes

  • Remote components now work correctly when PULUMI_NODEJS_SKIP_COMPONENT_INPUTS is set.

    3.220.0release notes

  • Replacement triggers are now passed through to Construct.

    3.220.0release notes

  • Failed yarn install commands are now retried, including during pulumi install.

    3.220.0release notes

  • Generic subclasses of dynamic.Resource now work correctly.

    3.219.0release notes

  • Correctly installs packages that depend on other packages.

    3.219.0release notes

  • Correctly installs packages that depend on other packages.

    3.219.0release notes

  • Python code generation no longer panics when ranging over resource outputs that are arrays of objects.

    3.219.0release notes

  • Package names are now correctly determined for Python and NodeJS packages.

    3.218.0release notes

  • Positional arguments can be passed to pulumi convert again.

    3.218.0release notesrelease notes

  • SDK generation now correctly includes git forge organizations as schema namespaces.

    3.218.0release notes

  • The CLI now copies files when linking, improving robustness across file partitions.

    3.217.1release notes

  • The CLI no longer installs plugins twice when explicit parameterizations are used.

    3.217.1release notes

  • Fixes alias options being passed to Construct for remote components.

    3.217.0release notes

  • Reconfigures the service-backed secret manager for the target stack when importing state if required.

    3.217.0release notes

  • Fixes an issue with serialized async generators.

    3.217.0release notes

  • The Node.js SDK avoids a RangeError when error objects are large.

    3.216.0release notes

  • The message renderer now works correctly on Windows.

    3.216.0release notes

  • Internal properties such as __defaults are filtered from diff display.

    3.215.0release notes

  • Fixes import_resources with a converter failing because of --stack argument placement.

    3.215.0release notes

  • Preserves existing behavior when adding a local provider with pulumi package add.

    3.214.1release notes

  • No-diff updates that resolve initErrors now pass ignoreChanges, preserving configured change-ignoring behavior.

    3.214.0release notes

  • Fixes programgen bindings for invokes from parameterized packages, allowing generated programs to bind those calls correctly.

    3.214.0release notes

  • Fixes plugin download URL overrides when the fallback mechanism is used.

    3.214.0release notes

  • Updates pulumi-yaml to v1.26.1, incorporating bug fixes for users of Pulumi YAML.

    3.212.0release notes

  • Plugin dependencies are no longer reinstalled after load failure for Git plugins with nested paths.

    3.211.0release notes

  • Parameterized SDKs now generate lifted single-value calls correctly.

    3.211.0release notes

  • The command now correctly identifies the innermost Project or Plugin.

    3.211.0release notes

  • Cancellation handling is fixed in several places in the Python language host.

    3.211.0release notes

  • Generated Go resource creation functions now account for name conflicts.

    3.211.0release notes

  • ComponentResources no longer incorrectly transfers input arguments to output properties automatically.

    3.210.0release notes

  • Local components now use the version from package.json instead of 0.0.0.

    3.210.0release notes

  • The CLI now correctly installs non-standard plugins.

    3.209.0release notes

  • Node.js SDK serialization errors caused by side-by-side SDK copies are fixed.

    3.209.0release notes

  • Resource snapshots no longer encounter duplicate integrity issues when aliases are present.

    3.208.0release notes

  • Bind errors now include invalid property names.

    3.208.0release notes

  • Previewing an imported resource that deletes and replaces due to diffs no longer panics.

    3.208.0release notes

  • Python resource arguments now accept typeddicts when no language information is specified.

    3.208.0release notes

  • Looking up a nonexistent stack reference output no longer raises an exception in Python.

    3.208.0release notes

  • Avoids cancellations caused by slow request processing in the Python callbacks server.

    3.207.0release notes

  • Fixes closure serialization on Node.js v25.2.0.

    3.207.0release notes

  • Fixes resource parenting in some refresh operations that run a program.

    3.207.0release notes

  • Avoids cancellations caused by slow processing of requests in the SDK.

    3.207.0release notes

  • Rewriting type-invalid PCL no longer causes a panic.

    3.207.0release notes

  • Fixes duplicate resource snapshot integrity issues during pulumi up --refresh --run-program when a PendingReplacement exists.

    3.206.0release notes

  • Fixes an issue where refresh with --run-program could potentially run forever.

    3.205.0release notes

  • Import errors now include the import ID for non-existent resources.

    3.204.0release notes

  • The Node.js and Python scalar return protocol now allows returning secret maps.

    3.204.0release notes

  • Go code generation for scalar return SDK functions is corrected.

    3.204.0release notes

  • Prevents a potential snapshot integrity error when a dependency fails to be destroyed with destroy --run-program.

    3.204.0release notes

  • Converting parameterized packages for .NET and Node.js now propagates local dependencies to GenerateProject.

    3.203.0release notes

  • Errors from the journaler are no longer displayed to users.

    3.203.0release notes

  • The required flag for resource inputs is now reported correctly.

    3.203.0release notes

  • Python invokes now work correctly for functions returning map types.

    3.203.0release notes

  • Stack imports now use the correct casing for the stack/latest path in the DIY backend.

    3.203.0release notes