feat: compose stable product surfaces
Module Package Release / publish-packages (push) Successful in 13s
Module Package Release / publish-packages (push) Successful in 13s
This commit is contained in:
@@ -1030,6 +1030,32 @@ Any future exception is extraction debt and must be temporary, documented in the
|
||||
script with a reason, and removed when a capability/API/event contract replaces
|
||||
it.
|
||||
|
||||
## Product Surface Contributions
|
||||
|
||||
`FrontendModule.product_surfaces` is the versioned product-composition contract
|
||||
for stable identities that may have one or more technical owners. A contribution
|
||||
declares contract version 1, a product identity, common label/icon/description,
|
||||
stable entry path, owner route and View surfaces, supported task/reader/admin/
|
||||
operator presentations, authorization requirements, capabilities, search
|
||||
sources, help contexts, documentation topics, migration aliases, and standard
|
||||
unavailable/degraded explanations.
|
||||
|
||||
Core validates every reference against the owning manifest. Contributors that
|
||||
share an identity must agree on its common product metadata and entry path;
|
||||
entry and alias paths cannot belong to another product identity. The WebUI
|
||||
composes valid owners by product id, filters them through authorization and the
|
||||
effective View, and resolves the stable entry or migration alias to the first
|
||||
available owner route. It emits `govoplan:product-surface-route-resolved` before
|
||||
the redirect so migration telemetry can observe alias use without making the
|
||||
technical module part of the ordinary label.
|
||||
|
||||
Use `ProductAvailabilityState` for unavailable and degraded outcomes. The
|
||||
ordinary state explains the attempted outcome, consequence, recovery path and
|
||||
responsible role. Exact module, capability, provider and correlation values may
|
||||
be supplied as a collapsed technical detail; they are not the primary error.
|
||||
The state is presentation only and never grants authority or changes provider
|
||||
health.
|
||||
|
||||
## Boundary Decision Register
|
||||
|
||||
These durable decisions close older exploratory core issues. Implementation
|
||||
|
||||
Reference in New Issue
Block a user