v3.260.0

emcie-co/parlantv3.260.0Aug 28, 2026by github-actions[bot]

Upgrading?

AI Summary

Enhances deployment settings rendering with environment variable details, adds a state promotion command, and fixes numerous issues with CLI, SDKs, and program generation.

Key Highlights

  • New `pulumi state promote` command for stateful snippets
  • Enhanced deployment settings rendering with environment variable objects
  • Fixes for serialization of typed objects and secret unknowns

New Features

  • Make `pulumi deployment settings get` render every source kind
  • Support Go 1.27
  • Add `pulumi state promote` to turn stateful snippets into code
  • Cancel task interrupts running local tool call
  • Access schema properties with hyphens as attributes
  • Serialize typed object stack outputs with camelCase
  • Mock transforms for SDKs
  • Allow hyphens in member segment of tokens
  • Print secret provider information with stack info
  • Rich diffs for refresh/preview operations
  • Cache provider mapping results on disk
  • Improve stack traces for providers
  • Upgrade dotnet and java versions

Full Release Notes

## 3.260.0 (2026-08-28)

### Features

- [cli/deployment] Make `pulumi deployment settings get` render every source kind and show environment variable values, changing the `--output=json` shape of `environmentVariables` from a list of names to a list of objects [#24284](https://github.com/pulumi/pulumi/pull/24284)
- [sdk/go] Support Go 1.27 [#24401](https://github.com/pulumi/pulumi/pull/24401)
- [cli/state] Add `pulumi state promote` to turn stateful snippets into Pulumi program code [#24453](https://github.com/pulumi/pulumi/pull/24453)

### Bug Fixes

- [engine] Replace resources whose deletedWith target is being replaced, instead of leaving them orphaned in state [#23818](https://github.com/pulumi/pulumi/pull/23818)
- [sdk/python] Serialize typed object stack outputs with their wire-format (camelCase) property names, matching other language SDKs [#24246](https://github.com/pulumi/pulumi/pull/24246)
- [cli/neo] Cancelling a task now interrupts a running local tool call instead of waiting for it to finish [#24268](https://github.com/pulumi/pulumi/pull/24268)
- [programgen/python] Access schema properties whose names contain hyphens as attributes under their Python names instead of subscripting [#24300](https://github.com/pulumi/pulumi/pull/24300)
- [programgen/go] Generate valid struct field names for properties whose names contain hyphens [#24300](https://github.com/pulumi/pulumi/pull/24300)
- [sdkgen/nodejs] Quote property names that are not legal identifiers (e.g. kebab-case) in generated declarations and use bracket access for them [#24300](https://github.com/pulumi/pulumi/pull/24300)
- [cli/neo] Cancelling a local tool call no longer leaves the TUI stuck on "Thinking..." with input blocked [#24318](https://github.com/pulumi/pulumi/pull/24318)
- [sdk/go] Use resolved environment names when evaluating ESC imports [#24375](https://github.com/pulumi/pulumi/pull/24375)
- [codegen/pcl] Allow output-typed values for the id attribute of a read resource [#24386](https://github.com/pulumi/pulumi/pull/24386)
- [sdkgen/nodejs] Register resolvers for output-only properties in generated Resource.get so they resolve as unknown during preview when the id is unknown [#24386](https://github.com/pulumi/pulumi/pull/24386)
- [engine] Avoid replacing imported resources when an input changes from plain to a secret or output-wrapped value with the same inner value [#24387](https://github.com/pulumi/pulumi/pull/24387)
- [backend/diy] Keep DIY backend stacks readable when checkpoint compression transitions fail [#24383](https://github.com/pulumi/pulumi/pull/24383)
- [cli/stack] Give a clearer error message when selecting a stack by name outside a directory with a Pulumi.yaml project file [#24394](https://github.com/pulumi/pulumi/pull/24394)
- [sdk/python] Propagate runtime context across thread boundaries [#24403](https://github.com/pulumi/pulumi/pull/24403)
- [programgen/python] Name plain function input object types without the Args suffix, matching the name the generated SDK exports [#24440](https://github.com/pulumi/pulumi/pull/24440)
- [cli/new] Reject zip template entries that resolve outside the extraction directory [#24447](https://github.com/pulumi/pulumi/pull/24447)
- [cli/package] Keep a package's pluginDownloadURL in SDKs regenerated by `pulumi install` [#24432](https://github.com/pulumi/pulumi/pull/24432)
- [sdk/python] Preserve all providers passed to remote components in Python programs [#24443](https://github.com/pulumi/pulumi/pull/24443)
- [sdkgen] Apply schema defaults to generated Python and Node.js function inputs [#24452](https://github.com/pulumi/pulumi/pull/24452)
- [programgen/python] Mark required component inputs as required in generated Python TypedDicts [#24459](https://github.com/pulumi/pulumi/pull/24459)
- [programgen/python] Add type annotations for config variables default values coming from invokes [#24464](https://github.com/pulumi/pulumi/pull/24464)
- [programgen/python] Generate valid Python when a component with inputs instantiates another component [#24466](https://github.com/pulumi/pulumi/pull/24466)
- [cli/neo] Stop the running local tool immediately when a Neo task is cancelled and report it as cancelled [#24470](https://github.com/pulumi/pulumi/pull/24470)
- [programgen/python] Support final argument expansion for min and max in Python programs [#24471](https://github.com/pulumi/pulumi/pull/24471)

### Improvements

- [cli] Treat adjacent character swaps as a single typo when suggesting commands [#23899](https://github.com/pulumi/pulumi/pull/23899)
- [sdk/python] Correctly resolve discriminated unions by their tag [#24352](https://github.com/pulumi/pulumi/pull/24352)
- [sdk/python] Allow transforms to be mocked [#24406](https://github.com/pulumi/pulumi/pull/24406)
- [sdk/nodejs] Allow transforms to be mocked [#24415](https://github.com/pulumi/pulumi/pull/24415)
- [sdk/go] Allow transforms to be mocked [#24416](https://github.com/pulumi/pulumi/pull/24416)
- [sdkgen] Allow hyphens in the member segment of tokens, so resource, object type and function names can be kebab-case [#24440](https://github.com/pulumi/pulumi/pull/24440)
- [cli] Print secret provider information with other stack information [#24430](https://github.com/pulumi/pulumi/pull/24430)
- [auto/python] Allow `refresh`, `preview_refresh`, and `preview_destroy` to request rich diffs [#24445](https://github.com/pulumi/pulumi/pull/24445)
- [engine] Cache provider mapping results on disk so repeated plans do not boot a provider to re-fetch an unchanged mapping [#24462](https://github.com/pulumi/pulumi/pull/24462)
- [sdk/python] Improve stack traces for providers [#24465](https://github.com/pulumi/pulumi/pull/24465)

### Miscellaneous

- [sdk/dotnet] Upgrade dotnet to v3.113.0 [#24441](https://github.com/pulumi/pulumi/pull/24441)
- [java] Upgrade java to v1.36.2 [#24441](https://github.com/pulumi/pulumi/pull/24441)
- [yaml] Upgrade yaml to v1.38.4 [#24441](https://github.com/pulumi/pulumi/pull/24441)

Related Repositories