Skip to content

Fix retired PULUMI_COPILOT env var names on CLI reference page - #20642

Open
workprentice[bot] wants to merge 1 commit into
masterfrom
fix_issue_20641_neo_env_var_rename
Open

Fix retired PULUMI_COPILOT env var names on CLI reference page#20642
workprentice[bot] wants to merge 1 commit into
masterfrom
fix_issue_20641_neo_env_var_rename

Conversation

@workprentice

@workprentice workprentice Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

What

Fixes #20641.

content/docs/iac/cli/environment-variables.md listed PULUMI_COPILOT and PULUMI_SUPPRESS_COPILOT_LINK as the canonical names for the CLI's Neo integration toggles, even though the surrounding prose already talked about "Neo" throughout — a half-finished Copilot-to-Neo rename artifact.

sdk/go/common/env/env.go in pulumi/pulumi confirms the current canonical names are PULUMI_NEO and PULUMI_SUPPRESS_NEO_LINK; the COPILOT spellings are retained only as legacy aliases via env.Alternative.

Changes

  • Renamed the canonical <dt> entries to PULUMI_NEO / PULUMI_SUPPRESS_NEO_LINK, moved into their correct alphabetical position in the <dl>.
  • Added a note in each <dd> that the former PULUMI_COPILOT / PULUMI_SUPPRESS_COPILOT_LINK names are still accepted as legacy aliases, so readers searching for the old name still find the entry.
  • Added the previously-undocumented PULUMI_API variable (overrides the Pulumi Cloud API endpoint the CLI talks to; distinct from PULUMI_BACKEND_URL, which selects the backend type), verified against its usage in pkg/backend/httpstate/backend.go.

Out of scope

A follow-up audit of the remaining ~two dozen undocumented PULUMI_* variables in env.go is tracked separately in #20641; several are internal debugging knobs that need individual judgment before being added, and the soft-release PULUMI_NEO_SUMMARY_MODEL / PULUMI_NEO_SUMMARY_MAXLEN vars are deliberately excluded since they sit behind pulumi/pulumi#19065.

Verification

  • Confirmed via a fresh fetch of sdk/go/common/env/env.go and pkg/backend/httpstate/backend.go from pulumi/pulumi's default branch.
  • Verified <dt>/<dd> tag balance (49/49) and alphabetical placement of all entries after the edit.
  • No other file in the repo besides this page and a dated blog post references PULUMI_COPILOT; the blog post is a historical artifact and intentionally left untouched.
  • Front matter and all unrelated entries are untouched (diff is limited to the four edited regions).

🧠 This PR was created by workprentice on behalf of the automation identity behind Pulumi's Docs Groundskeeper agent, running an autonomous docs-freshness audit. No specific human requester triggered this run.

Rename the canonical PULUMI_COPILOT / PULUMI_SUPPRESS_COPILOT_LINK
entries to PULUMI_NEO / PULUMI_SUPPRESS_NEO_LINK per
sdk/go/common/env/env.go in pulumi/pulumi, which declares these as the
current names with the COPILOT spellings retained only as legacy
aliases via env.Alternative. Note the legacy aliases in the dd prose
so readers searching for the old names still find the entry. Also add
the previously-undocumented PULUMI_API variable.

Fixes #20641
@github-actions github-actions Bot added review:triaging Claude Triage is currently classifying the PR domain:docs PR touches technical docs review:in-progress Claude review is currently running and removed review:triaging Claude Triage is currently classifying the PR labels Aug 2, 2026
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Pre-merge Review — Last updated 2026-08-02T14:20:56Z

Tip

Summary: This is a reference-docs correction to the Pulumi CLI environment variables page: it renames PULUMI_COPILOTPULUMI_NEO and PULUMI_SUPPRESS_COPILOT_LINKPULUMI_SUPPRESS_NEO_LINK (noting the legacy names as still-accepted aliases) and adds a missing PULUMI_API entry. On a page like this the failure mode that matters is a reader exporting a variable name the CLI doesn't read, so the review focused on whether each name, alias, and example value matches the CLI source of truth, and on whether the entries landed in the page's alphabetical order. Passes run: claim extraction + external verification against pulumi/pulumi source, a cited-URL spot-check, a frontmatter/alias sweep, and a cross-sibling read of the other four content/docs/iac/cli/ pages. All three variable names, both aliases, and the boolean example values check out against sdk/go/common/env/env.go; the new entries are alphabetically placed; no other page in this repo still documents the retired names. No blocking findings.

Review confidence:

Dimension Level Notes
mechanics HIGH
facts HIGH
cross-sibling consistency HIGH
Investigation log
  • Cross-sibling reads: 4 of 4 siblings
  • External claim verification: 9 of 10 claims verified (0 unverifiable, 0 contradicted) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 9 Pass 1, 1 Pass 2 (verified 0, contradicted 0, unverifiable 1), 0 Pass 3.
  • Cited-claim spot-checks: 1 of 1 cited claims fetched and compared
  • Frontmatter sweep: ran on body + meta_desc
  • Temporal-trigger sweep: not run (no trigger words)
  • Code execution: not run (no static/programs/ change)
  • Code-examples checks: not run (no fenced code blocks in content files)
  • Editorial-balance pass: not run (not under content/blog/)
🚨 Outstanding ⚠️ Low-confidence 💡 Pre-existing ✅ Resolved
0 0 0 0

🔍 Verification trail

10 claims extracted · 9 verified · 0 unverifiable · 0 contradicted
  • L55-64 in content/docs/iac/cli/environment-variables.md "The PULUMI_API environment variable overrides the URL of the Pulumi Cloud API that the CLI communicates with when using the Pulumi Cloud backend." → ✅ verified (evidence: pkg/backend/httpstate/backend.go contains: "DefaultURL returns the default cloud URL. This may be overridden using the PULUMI_API environment" variable, and "Otherwise, respect the PULUMI_API override." This is in the httpstate backend whi…; source: gh search code PULUMI_API --repo pulumi/pulumi (pkg/backend/httpstate/backend.go))
  • L55-64 in content/docs/iac/cli/environment-variables.md "Most users should set PULUMI_BACKEND_URL instead of PULUMI_API, because PULUMI_BACKEND_URL selects the backend itself." → ✅ verified (evidence: Pulumi CLI source (pkg/cmd/pulumi/cloud/resolve.go) contains the comment: "honor PULUMI_BACKEND_URL, then PULUMI_API, then the [default]" — confirming PULUMI_BACKEND_URL is checked first and used to select the backend, while PULUMI_API is…; source: gh search code --owner pulumi PULUMI_API (pulumi/pulumi:pkg/cmd/pulumi/cloud/resolve.go); repo:content/docs/iac/cli/environment-variables.md L61-64)
  • L64 in content/docs/iac/cli/environment-variables.md "The default/example value of the PULUMI_API environment variable is 'https://api.pulumi.com'." → ➖ not-a-claim (evidence: The cited URL "https://api.pulumi.com" is an API endpoint hostname, not a browsable documentation page, so a 404 on direct browser fetch is expected and doesn't contradict its use as the default value for PULUMI_API. This is a faithful doc…; source: https://api.pulumi.com; intuition: API endpoints commonly return 404/empty on GET to root path; this is not evidence the default value is wrong.)
  • L453-463 in content/docs/iac/cli/environment-variables.md "The PULUMI_NEO environment variable enables Neo help and links in the CLI output, regardless of the Neo settings for the given Pulumi organization." → ✅ verified (evidence: In pulumi/pulumi's sdk/go/common/env/env.go: var NeoEnabled = env.Bool("NEO", "Enable Pulumi Neo's assistance for improved CLI experience and insights.", env.Alternative("COPILOT")). This is read directly via env.NeoEnabled.Value() in…; source: gh api repos/pulumi/pulumi/contents/sdk/go/common/env/env.go; gh search code --owner pulumi "PULUMI_NEO" --repo pulumi/pulumi)
  • L453-463 in content/docs/iac/cli/environment-variables.md "The legacy environment variable name PULUMI_COPILOT is still accepted as an alias for PULUMI_NEO." → ✅ verified (evidence: Source in pulumi/pulumi sdk/go/common/env/env.go defines: var NeoEnabled = env.Bool(\"NEO\", \"Enable Pulumi Neo's assistance for improved CLI experience and insights.\", env.Alternative(\"COPILOT\")) — i.e. PULUMI_NEO is the primary env…; source: gh api repos/pulumi/pulumi/contents/sdk/go/common/env/env.go (NeoEnabled var); gh api repos/pulumi/pulumi/contents/pkg/cmd/pulumi/operations/io.go)
  • L462 in content/docs/iac/cli/environment-variables.md "The PULUMI_NEO environment variable is set via a boolean-style value, e.g. PULUMI_NEO=true." → ✅ verified (evidence: Pulumi source defines var NeoEnabled = env.Bool("NEO", ...) in sdk/go/common/env/env.go, which combined with the PULUMI_ prefix produces PULUMI_NEO as a boolean env var (parsed via env.NeoEnabled.Value() returning a bool). CLI help…; source: gh search code --owner pulumi "NeoEnabled" (sdk/go/common/env/env.go: var NeoEnabled = env.Bool("NEO", ...); pkg/cmd/pulumi/operations/io.go: env.NeoEnabled.Value()))
  • L570-577 in content/docs/iac/cli/environment-variables.md "The PULUMI_SUPPRESS_NEO_LINK environment variable suppresses showing the 'explainFailure' link to Neo in the CLI output, regardless of the Neo settings for the…" → ✅ verified (framing: Source states the flag suppresses the link; claim adds "regardless of org Neo settings" which is a natural entailment of a client-side override flag, not contr…; evidence: Source code in sdk/go/common/env/env.go defines: var SuppressNeoLink = env.Bool("SUPPRESS_NEO_LINK", "Suppress showing the 'explainFailure' link to Neo in the CLI output.", env.Alternative("SUPPRESS_COPILOT_LINK")). This confirms the PUL…; source: gh api repos/pulumi/pulumi/contents/sdk/go/common/env/env.go)
  • L570-577 in content/docs/iac/cli/environment-variables.md "The legacy environment variable name PULUMI_SUPPRESS_COPILOT_LINK is still accepted as an alias for PULUMI_SUPPRESS_NEO_LINK." → ✅ verified (evidence: In pulumi/pulumi's sdk/go/common/env/env.go: var SuppressNeoLink = env.Bool("SUPPRESS_NEO_LINK", "Suppress showing the 'explainFailure' link to Neo in the CLI output.", env.Alternative("SUPPRESS_COPILOT_LINK")). This registers PULUMI_SUP…; source: gh api repos/pulumi/pulumi/contents/sdk/go/common/env/env.go)
  • L575 in content/docs/iac/cli/environment-variables.md "The PULUMI_SUPPRESS_NEO_LINK environment variable suppresses showing the 'explainFailure' link to Neo in the CLI output, regardless of the Neo settings for the…" → ✅ verified (evidence: Source code in pkg/backend/httpstate/backend.go references the continuation string "...but the environment variable PULUMI_SUPPRESS_NEO_LINK" tied to suppressing the Neo/explainFailure link, and it's read via env.SuppressNeoLink in pkg/cmd…; source: gh_query search code --owner pulumi PULUMI_SUPPRESS_NEO_LINK; gh_query search commits --repo pulumi/pulumi PULUMI_SUPPRESS_NEO_LINK (PR #23326))
  • L577 in content/docs/iac/cli/environment-variables.md "The example/default usage for PULUMI_SUPPRESS_NEO_LINK is 'PULUMI_SUPPRESS_NEO_LINK=true'." → ✅ verified (evidence: Source confirms PULUMI_SUPPRESS_NEO_LINK is a boolean env var: pulumi/pulumi/sdk/go/common/env/env.go defines var SuppressNeoLink = env.Bool("SUPPRESS_NEO_LINK", ...), and it's read via env.SuppressNeoLink.Value() to gate `ShowLink…; source: gh search code --owner pulumi "SuppressNeoLink" (pulumi/pulumi:sdk/go/common/env/env.go, pkg/cmd/pulumi/operations/up.go))

🚨 Outstanding in this PR

No outstanding findings in this PR.

⚠️ Low-confidence

No low-confidence findings.

💡 Pre-existing issues in touched files (optional)

No pre-existing issues in touched files.

✅ Resolved since last review

No items resolved since the last review.

📜 Review history

  • 2026-08-02T14:20:56Z — No blockers: PULUMI_NEO / PULUMI_SUPPRESS_NEO_LINK names, legacy aliases, and the new PULUMI_API entry all verified against CLI source; alphabetical placement and sibling pages clean. (08c2220)

  • Refresh this review — comment @claude #update-review. Say what you fixed, or which finding you dispute and why; both work in the same mention.
  • Ask for anything else — comment @claude with no hashtag (questions, one-off fixes). Leaves this review untouched.

Important

Please don't hide, resolve, or delete this comment! It breaks things!

📖 How pre-merge review works — the full lifecycle, short-circuits, and escape hatches.

@github-actions github-actions Bot added review:no-blockers Claude review completed cleanly; outstanding is empty and removed review:in-progress Claude review is currently running labels Aug 2, 2026
@pulumi-bot

Copy link
Copy Markdown
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:docs PR touches technical docs impact/no-changelog-required review:no-blockers Claude review completed cleanly; outstanding is empty

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CLI environment-variables page still documents retired PULUMI_COPILOT / PULUMI_SUPPRESS_COPILOT_LINK names

2 participants