# February 2026

{% updates format="full" %}
{% update date="2026-02-25" %}

## Improved reliability, clarity, and authentication flow

#### ⚡ Improvements

**Cloud import agent has a new look**

The agent's output panel in codification workflows now groups messages by step and state (working/success/failed). We also added collapsible code panels and clearer progress indicators to help review long-running jobs.

<figure><img src="https://1276391615-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTNb56y45UcGc1mYxzk2l%2Fuploads%2F18XRVpTx6z44MzjtcGd9%2Fimage.png?alt=media&#x26;token=2152f452-f976-4507-9f6e-59bc67bbc1e8" alt=""><figcaption></figcaption></figure>

**What does it mean for you?**

You get better visual organization and faster insight into job progress or errors during agent execution.

***

**Uninstall worker supports multiple deploy types**

Uninstall jobs now pass all deploy types correctly to the backend API, ensuring consistent behavior between environment TTL expirations and manual uninstall flows.

**What does it mean for you?**

Automated cleanup and lifecycle management for multi-deploy blueprints are now more predictable and reliable across environments.

***

**Blueprint publish validation for child outputs**

When publishing a parent blueprint, the system now validates that all referenced child outputs exist. Missing outputs trigger early, clear validation errors.

**What does it mean for you?**

You’ll catch missing dependencies during publishing instead of facing runtime failures during deployment.

***

**Clearer feedback when uninstall Is blocked**

When you try to uninstall while a run is still active, the modal now shows a clear inline banner instead of a generic toast message.

**What does it mean for you?**

You’ll immediately understand why an uninstall can’t proceed, reducing confusion during active environment changes.

***

**Cleaner runner logs and smarter retry logic**

Initialization now fails early for unsupported OpenTofu versions and stops retrying non-recoverable errors. We also removed unnecessary “No active git configuration” messages during runner startup.

**What does it mean for you?**

Runner logs are quieter and more actionable, helping you diagnose setup issues faster and avoid blind retries.

***

**Terminology and microcopy consistency updates**

Updated various interface labels and copy for consistency (e.g., “Target collection” → “Collection”, “Latest runs” → “Run history”). Improved capitalization and creation guidance for collections and account settings.

**What does it mean for you?**

A more consistent and polished experience across the interface, reducing naming confusion between flows.

***

**Blueprint creation terminology: “Artifact”**

We’ve standardized on the term **artifact** throughout the blueprint creation flow, replacing older “package” references.

**What does it mean for you?**

Terminology now aligns with the platform’s current object model, clarifying the relationship between blueprints and published artifacts.

***

**Azure tooltip link update**

The Azure connection tooltip now points to the correct (hidden) documentation page for guided setup.

**What does it mean for you?**

You’ll reach the right instructions faster when setting up or debugging Azure integrations.

***

#### 🐛 Bug fixes

**Fixed incorrect error during CLI uninstall**

Resolved a misleading error message shown when uninstalling environments via CLI. The uninstall now starts correctly or provides a relevant error prompt.

***

**Resolved allowed values type conversion issue**

Fixed a mismatch between default and allowed values (string vs. number) in the blueprint editor that caused publish failures during manual hydration.

***

**Fixed task controller race condition**

Addressed an orchestration race condition that triggered intermittent “object has been modified” errors and redundant alerting.
{% endupdate %}

{% update date="2026-02-18" %}

## More automated environments, fewer manual steps

#### ⚡ Improvements

**Improved run visibility across the plan page and environment API**

The plan page now displays run type indicators (incremental, auto-approve, auto-apply) and supports enhanced stage filtering. Environment detail responses also include execution flags for incremental and force installs.

**What this means for you:**\
You get clearer insight into how runs are being executed, both in the UI and through the API.

***

**More reliable retries for package downloads**

Package downloads now retry correctly on transient network failures, such as connection resets.

**What this means for you:**\
You’re less likely to experience failed runs due to intermittent network issues, especially in CI/CD environments.

***

**CLI terminology updated from deployment to environment**

The CLI now consistently uses “Environment” instead of “Deployment” across commands, models, and documentation.

**What this means for you:**\
Terminology is clearer and better aligned with the Bluebricks object model, reducing confusion across tools and APIs.

***

**Improved log readability in the UI**

We’ve upgraded the logs drawer and added support for UNIX color codes in the agent sidebar.

**What this means for you:**\
Logs are easier to scan and interpret, especially during complex runs with colored output.

***

**Cleaner Secrets tab experience when encryption keys are missing**

Opening the Secrets tab no longer shows an immediate error toast when no public key is configured. Guidance remains available via tooltip.

**What this means for you:**\
A less noisy UI while still clearly indicating what’s required for encrypted secrets.

***

**Blueprint creation CTA updated for clarity**

The primary action in the blueprint creation flow now reads “Create and publish.”

**What this means for you:**\
It’s clearer that creating a blueprint will immediately publish it as part of the workflow.

***

**Backend permissions aligned with Environment model**

Backend routes now rely on environment permissions instead of legacy deployment permissions.

**What this means for you:**\
Access control is more consistent with the current data model, helping reduce ambiguity as the platform evolves.

***

#### 🐛 Bug fixes

**Fixed CLI publish hang in non-interactive CI/CD workflows**

Resolved an issue where `blueprint publish --non-interactive` could hang indefinitely if the version already existed.

**What this means for you:**\
Your CI/CD pipelines no longer get blocked by stalled publish steps.

***

**Runner no longer loops endlessly on unauthorized Kubernetes access**

The Helm executor now detects Kubernetes authorization failures and exits appropriately instead of retrying indefinitely.

**What this means for you:**\
Kubernetes permission issues surface immediately instead of causing stuck jobs.

***

**Deployment creation no longer blocked by unused collection property validation**

Fixed an issue where deployments could fail due to validation of collection properties that were not actually referenced.

**What this means for you:**\
You won’t encounter incorrect missing-output errors when creating deployments.

***

**Auto-approve deployments now start with the correct run type**

Selecting auto-approve no longer triggers auto-apply behavior.

**What this means for you:**\
Deployments run with the intended approval mode, ensuring predictable execution.

***

**Azure Discovery details endpoint is more reliable for expandable resources**

Improved Azure resource detail lookups to handle inconsistent table mappings and ID casing.

**What this means for you:**\
You’ll see fewer errors when exploring expandable Azure resources in Discovery.

***

**Fixed occasional logout redirect to org selection screen**

Resolved an issue where users could be redirected to the org selection screen unexpectedly.

**What this means for you:**\
Session behavior is more stable and predictable.

***

**Blueprint page header spacing is now consistent**

Corrected a padding inconsistency in blueprint header blocks.

**What this means for you:**\
The blueprint page layout is cleaner and more visually consistent.
{% endupdate %}

{% update date="2026-02-11" %}

## Deployment & Discovery Enhancements

**🚀 New features**

**Azure discovery & Terraform integration**

We now support Azure Discovery end to end. You can connect Azure cloud accounts, see Azure resources directly in the Graph, and jump straight to Azure Terraform resources through direct hyperlinks.

**What does it mean for you?**\
You get a smoother multi-cloud experience, clearer visibility into your Azure infrastructure, and faster navigation between Bluebricks and your Terraform-managed resources.

***

**End-to-end auto-apply deployment mode**

We now support AutoApply deployments across the full stack. When policies allow, you can automatically apply changes, skipping the planning stages to substantially reduce runtime duration and enable faster, fire-and-forget workflows.

**What does it mean for you?**\
You spend less time waiting and dealing with manual approvals, making repeatable deployments significantly faster in trusted environments.

***

**Cron-based repeatable job scheduling**

We've added support for cron-based scheduled jobs, so you can automate recurring infrastructure and environment workflows.

**What does it mean for you?**\
You can easily schedule routine tasks like maintenance, drift detection, or timed environment actions without manual intervention.

***

**Environment scheduler APIs**

We introduced new APIs that allow environments to be scheduled, managed, and automated more effectively.

**What does it mean for you?**\
You get greater control and flexibility when integrating lifecycle automation into your workflows.

***

**⚡ Improvements**

**Simplified Graph canvas & resource filtering**

We've streamlined the Graph canvas with cleaner interactions, improved filtering, and a smoother collection creation flow.

**What does it mean for you?**\
You can explore and navigate complex infrastructure faster and with less friction.

***

**Improved Graph resource detail resolution**

We've improved how resource details are resolved in the Graph based on type and ARN values.

**What does it mean for you?**\
You see more accurate metadata and clearer context when inspecting resources.

***

**Deployment TTL visibility**

Deployments now clearly display their time-to-live (TTL), so you can see exactly when an environment is scheduled to expire.

**What does it mean for you?**\
You can better plan around temporary environments and avoid unexpected teardown.

***

**Improved logs for debugging and clarity**

We now preserve additional log fields and have cleaned up deployment output to reduce redundant messages and better reflect severity levels.

**What does it mean for you?**\
You get richer troubleshooting context with less noise.

***

**Stronger validation for configuration inputs**

We've tightened validation across configuration inputs. We now prevent invalid whitespace in subdirectory fields and reject invalid lowercase prefixes in output values.

**What does it mean for you?**\
You catch configuration mistakes earlier and avoid preventable deployment errors.

***

**Blueprint editing flexibility**

You can now edit more blueprint fields, with only package ID and technology remaining locked.

**What does it mean for you?**\
You have more flexibility when iterating on blueprint definitions without unnecessary restrictions.

***

**Environment flow UX polish**

We've refined the deployment creation flow so the "Environment name" field stays focused throughout the process.

**What does it mean for you?**\
You can move through environment setup more smoothly and with fewer interruptions.

***

**Improved Git credential handling for private repos**

We improved how we resolve and manage GitHub credentials for private repositories, including stronger org validation and credential handling.

**What does it mean for you?**\
You experience fewer authentication failures when working with private, source-based packages.

***

**Cloud Discovery reliability improvements**

We increased Cloud Discovery reliability with improved redundancy and availability protections.

**What does it mean for you?**\
You benefit from more stable discovery workflows with reduced downtime risk.

***

**Response structure alignment across agents**

We've standardized how agent responses are structured across workflows.

**What does it mean for you?**\
You get more predictable, readable outputs when working across different agents and automation flows.

***

**🐛 Bug fixes**

**Correct identity display in audit fields**

We fixed an issue where `created_by` showed a machine identity instead of the API key identity during deployment and environment creation.

**What does it mean for you?**\
You get clearer attribution and more accurate audit trails.

***

**Job scheduler stability fixes**

We resolved issues in the job scheduler APIs related to enabling and disabling schedulers.

**What does it mean for you?**\
Your scheduled automation runs more reliably with fewer interruptions.

***

**Execution and retry reliability**

We fixed multiple execution issues, including stale Terraform plan reuse after failed apply, log streaming timing mismatches, and uninstall handling for removed source-based artifacts.

**What does it mean for you?**\
Your deployments are more dependable, especially during retries and cleanup scenarios.

***

**Prevented recursive package directory creation**

We fixed an issue where invalid nested directory structures could be created during execution.

**What does it mean for you?**\
You get cleaner execution environments and fewer filesystem-related failures.

***

**Fixed Kubernetes unauthorized infinite loop in Helm deployments**

We resolved an issue where Helm deployments could enter an infinite loop after a Kubernetes authorization failure.

**What does it mean for you?**\
Failures surface faster and recovery is safer when cluster permissions are misconfigured.

***

**Graph drawer header visibility restored**

We fixed an issue where the Graph drawer header was not visible.

**What does it mean for you?**\
You get a consistent and fully usable Graph experience.

***

**"Deployments" are now called "environments"**

We fixed issues with semantic value references during deployment-to-environment renaming.

**What does it mean for you?**\
You avoid broken references and maintain stability when renaming infrastructure entities.

***

**Cleaner production logging output**

We removed unnecessary trace details from production CLI logs.

**What does it mean for you?**\
You see clearer, more actionable logs in production environments.
{% endupdate %}

{% update date="2026-02-04" %}

## Faster automation & graph usability improvements

**🚀 New features**

**Run AutoApply**

We introduced support for running deployments with `--auto-apply`, enabling a direct apply workflow. When appropriate, this skips the traditional plan and approval stages while keeping existing commands unchanged.

**What does it mean for you?**\
You can move from intent to execution much faster. For trusted workflows, you reduce runtime duration and eliminate unnecessary approval friction.

***

**⚡ Improvements**

**JSON references in inputs**

We now allow `$` references inside JSON-based inputs, so you can reuse outputs and resolved values directly within JSON payloads.

**What does it mean for you?**\
You gain more flexibility when composing inputs, with less duplication and cleaner configuration logic.

***

**Modernized job scheduling architecture**

We've improved job scheduling reliability and added support for cron-based repeatable jobs, including scheduled environment uninstalls.

**What does it mean for you?**\
You benefit from more reliable, observable, and scalable automation, especially in multi-instance environments.

***

**Increased resource limits for Generic Artifacts**

We increased resource limits for Generic Artifact executions to reduce failures during heavier workloads.

**What does it mean for you?**\
You experience fewer unexpected runtime failures during heavier deployments.

***

**More resilient uninstall flows**

We improved dependency handling to prevent uninstall deadlocks when some packages were not previously applied.

**What does it mean for you?**\
Uninstall operations are less likely to get stuck, even in partial or edge-case deployment states.

***

**Clearer Graph call to action**

We renamed the Resource Discovery CTA from "Create deployment" to "Import" to better reflect the codification flow.

**What does it mean for you?**\
The Graph workflow is clearer and more intuitive when importing discovered resources.

***

**Plan page simplification**

We removed the "View parent blueprints" option from package menus on the Plan page to streamline actions.

**What does it mean for you?**\
A cleaner Plan experience with fewer distracting or low-value actions.

***

**🐛 Bug fixes**

**Prevented webapp crash from null nodes**

We fixed a runtime crash that could occur when the UI received null node data.

**What does it mean for you?**\
You're less likely to encounter blank screens or unexpected errors.

***

**Improved resource selection behavior**

Clearing the search field in resource selection no longer resets your chosen resources.

**What does it mean for you?**\
You can refine your search without losing previous selections.

***

**Correct region validation in blueprint editor**

We fixed a validation issue where region inputs with allowed values were incorrectly marked as required in certain conflict scenarios.

**What does it mean for you?**\
Validation behaves correctly and avoids unnecessary friction in blueprint editing.

***

**Source package redeploy consistency**

We fixed an issue where updated props for source-based artifacts were not reflected properly after redeploy.

**What does it mean for you?**\
Schema updates, dependency ordering, and publishing behavior now remain consistent after redeployment.

***

**Deploy flow to existing deployment fixed**

We resolved an issue that prevented deploying a newly published blueprint version to an existing deployment without resetting the dropdown.

**What does it mean for you?**\
You can deploy new versions to existing environments more smoothly.
{% endupdate %}
{% endupdates %}
