fix: #3607228 Resolve the programme page's component versions instead of shipping 'active'
A fresh install via the browser installer's site-template picker breaks at 89%, on the programme page's content template:
Drupal\Core\Recipe\InvalidConfigException: There were validation errors in canvas.content_template.node.program.full:
- component_tree.<uuid>.component_version: 'active' is not a version that exists on component config entity 'block.system_breadcrumb_block'. Available versions: '0d7e961dd03aa710'.
...All 74 entries in that tree carried the literal string active instead of a real version hash. active resolves when a component tree is delivered as a plain recipe config file, but this tree is delivered through the setComponentTreeIfComponentsExist config action, and the action's own validation rejects it — a distinction that does not surface on an already-installed site, because setting the tree there goes through a direct config save, which happens to tolerate it with a fallback warning rather than aborting.
That is exactly why this went unnoticed through three merged MRs (!29 (merged), !30 (merged), and the delivery-card work behind them): each was verified against an existing install (ha-fresh-0804, since removed), never a genuine recipe-apply install. Confirmed on a browser install of the current 1.0.x HEAD that it fails the same way before this fix, and installs clean after it.
Fix: resolved the real active version hash for each of this tree's 15 distinct components from a running site and wrote those in place of active. Every other content template (node.blog.full, node.event.full) already carried real hashes and is untouched.
AI-Generated: Yes
Checkpoints:
- File an issue
- Addition/Change/Update/Fix
- Testing to ensure no regression
- Automated unit testing coverage
- Automated functional testing coverage
- UX/UI designer responsibilities
- Readability
- Accessibility
- Performance
- Security
- Developer Documentation
- User Guide Documentation
- Reviewed by human
- Code review by maintainers
- Full testing and approval
- Credit contributors
- Review with the product owner
- Release notes snippet
- Release