News
Backstage v1.52.0 ships June 16 with a new discovery API default and the experimental connections service, v1.51.2 patches a msgraph user-drop, and a June 11 Roadie post examines why AI-augmented teams keep rebuilding services that already exist.

Backstage v1.52.0 ships
v1.52.0 landed June 16 with two breaking changes to address before upgrading. The discovery API default is now FrontendHostDiscovery, which honours per-plugin endpoint overrides from discovery.endpoints - if you route internal and external Backstage traffic to separate URLs, add a target.internal field to your config or all traffic routes to the external target. Immediate-mode catalog stitching is also removed. Drop stitchingStrategy: 'immediate' from your catalog config if it's still there.
The main new addition is @backstage/connections (BEP-0014): a centralised system for plugins to declare and access credentials to external services, with runtime enforcement preventing access to undeclared connection types. It's experimental in v1.52.
v1.51.2 (June 10) patches a silent user-drop in the msgraph module when userSelect is empty.
From the Roadie blog
We published Why AI-Augmented Squads Keep Building the Same Thing Twice on June 11. We respond to a DX Annual panel (where speakers noted that AI-augmented teams were generating more duplication and tech debt even as they shipped faster) and argues the root cause is an infrastructure gap that reorganising squads doesn't close.
AI coding agents have no queryable access to what already exists in the system. An agent asked to help build a notifications service will build one, with no knowledge that three already exist. The post's core claim is that this is a context infrastructure problem - agents produce duplicates because there's no structured, queryable record of what's already in the system.
The practical argument is about catalog design. Most service catalogs are built for human browsing, but for agent query a catalog needs to be accurate, current, and structured enough that an agent can check what already exists before suggesting a new build. Most organisations haven't made that distinction, and the post walks through what it requires.
Community
š§ PR #34036 by polasudo (reviewed by Rugvip) adds a GraphQL fallback for scaffolder git push operations. In environments where a proxy with deep packet inspection blocks the git binary protocol, the scaffolder now falls back to GitHub's createCommitOnBranch GraphQL mutation - one API call regardless of file count. Fixes a production blocker in corporate networks with active deep packet inspection policies.
š PR #34572 by 04kash makes hasLabel.apply and hasAnnotation.apply case insensitive in catalog filtering. Labels and annotations with mixed casing can now be matched without requiring exact case, reducing filter errors when naming conventions aren't consistently applied. Targeting v1.52.0.
What shipped
@backstage/plugin-appv0.5.0 -FrontendHostDiscoverynow default discovery API; addtarget.internalto discovery config if routing internal/external traffic to separate URLs (BREAKING)@backstage/plugin-catalog-backendv3.8.0 - immediate-mode stitching removed; deferred queue only (BREAKING)@backstage/connections- new experimental package for plugin-scoped external service credentials (BEP-0014)@backstage/uiv0.16.0 - async collections in Select/Combobox;ComboboxProps/SelectPropschanged to union types (BREAKING for interface extensions)@backstage/plugin-catalog-backend- msgraph emptyuserSelectuser-drop fixed (v1.51.2)v1.52.0released June 16 (full changelog )