SIGN IN SIGN UP

fix(frontend): report every alias of a blocked component to the editor (#14719)

/config reports the blocked component identities so the editor can name a
cause, but it reported only the administrator's key and the canonical
identities that key resolves to. Alias resolution runs alias -> canonical
only, so blocking the canonical key left every node saved under an alias
unmatched: with `Prompt Template` blocked, a node saved as `Prompt` was
not named on any of the three surfaces.

The palette exposes only the canonical key, so that is the key an
administrator can find, and nine shipped starter flows -- including the
featured Basic Prompting -- save that component as `Prompt`. `parser` and
`AstraDB` are the same shape. The user edited such a flow, saw no banner,
the build preflight passed, autosave never paused, and the write was
discarded with a 400 the user never saw.

_resolve_catalog_policy_matches decides the write by resolving the node
side too and intersecting, so the reverse of that rule is applied here:
every alias whose canonical candidates meet the blocked identities is
reported, including an alias ambiguous across components, which the
server also blocks. The editor's answer now matches the one that decides
whether the save succeeds.

Reported by QA while verifying #14681, which narrowed #14614's
"any policy exists" over-claim and removed the coverage that over-claim
incidentally gave this case.
K
keval shah committed
f1bdc4ec5f3dc2a9cb3e0ef580f8a3328427601c
Parent: 0dd082f
Committed by GitHub <noreply@github.com> on 8/24/2026, 3:48:08 PM