You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Retire portable UI contract release flag after verified rollout #120
Retire the default-off ui-contract release flag only after the portable UI manifest and host protocol have passed real Platform adoption.
Acceptance criteria
The published controller and demo image are pinned and verified in a reviewed Platform rollout.
A product opens through the real registry and an independently deployed compatibility host using exact publisher-configured host origins.
Loading, timeout, unavailable-product, query failure and recovery, keyboard use, and narrow-screen layouts are observed.
Origin, session and capability denials hold with the restrictive opaque-origin sandbox; no credentials or product records are passed by the host.
Both flag states and rollback are observed before removing the flag and its configuration in a separate PR.
Review by 2026-10-30. The date is a review deadline, not authorization to activate or remove the gate. Controlled browser and Kubernetes tests establish release behavior, not production adoption. Rough size: M.
The authenticated registry opens Harbour's independently served interface and returns both synthetic observations. At 390 × 844, the page stays within its viewport, the interface is 345 pixels wide and its result rows retain field labels. Keyboard submission returns the observations.
The independently deployed compatibility host rejects a manifest that does not approve its exact host origin and rejects an unsupported capability. Valid public metadata with explicit status, resize and appearance grants then completes the handshake and displays both observations.
Both connected frames use sandbox="allow-forms allow-scripts", retaining opaque origins. Closing the independent interface reports session/grant revocation, hides the frame and removes its source URL. No data-source credentials or product records were supplied by the host.
A manifest on the approved Harbour origin with an unavailable interface path produces the actual ten-second handshake error and offers Retry manifest. After timeout, the frame is hidden and its source URL is removed. Replacing the manifest with Harbour's real interface reconnects normally and returns both observations. Closing it reports revocation. This proves the unavailable-path timeout and recovery; it does not simulate a complete service outage or a forged protocol message.
The normal Platform rollout #4534 delivered v2.4.4; its completion record contains immutable-artifact, production receipt and Light/Dark query-preservation evidence for both actual hosts. These browser observations do not assert that newer source fixes are deployed.
This remains partial adoption evidence. Forged-session interception, query failure/recovery, and the reviewed disabled rollback and both flag states still need acceptance evidence. Keep the UI release gate and this issue open until all its acceptance criteria hold.
Additional browser adoption evidence for #120, observed on the deployed catalogue and independently deployed compatibility host during this round:
Opening Harbour showed the loading/connecting state, completed the handshake, and returned the two declared sample observations.
Keyboard controls opened the product, selected Nordhavn, and loaded its single observation (16.8 °C and 14.2 PSU). Both hosts also served successful Light/Dark queries.
Both hosts were exercised at a 390 × 844 viewport. The interface and results remained usable, with observation labels stacked for the narrow layout. Screenshots and the visible result records are retained privately.
A local manifest excluding the compatibility host was rejected with “The publisher has not allowed this host origin.” No product frame mounted.
Editing the manifest, changing the appearance grant, and using Close each withdrew the old frame and reported that its session and grants were revoked. Restoring the valid declaration completed a new handshake.
The mounted compatibility frame declared only allow-forms allow-scripts, with no-referrer; it did not grant same-origin authority.
A local declaration pointing to the product's existing public OpenAPI document received no compatible handshake. After 10 seconds the host withdrew the frame and offered Retry. Restoring the valid UI declaration completed a new handshake and returned both observations. This is a handshake timeout/recovery observation, not a simulated production outage or query failure.
With the appearance grant withheld, a new session connected and queried successfully, but changing the host between Light and Dark left the product without a host-selected appearance. Restoring the grant created a new session that followed Dark. This observes the withheld presentation hint; it does not test forged protocol messages.
This advances the opening, loading, handshake timeout/recovery, keyboard, narrow-layout, origin-denial and visible session-withdrawal observations. It does not establish unavailable-product, query failure/recovery, forged-session or ungranted-message rejection, absence of credential/record transfer, or production disabled-state/rollback evidence. The complete reviewed release-to-live artifact join and remaining protocol observations still belong to the adoption gate. #120 remains open; this receipt does not authorize flag retirement.
The maintainer has chosen API-only product integration. This issue's acceptance criteria require adopting the embedding protocol before removing its gate, so they no longer describe the intended product outcome.
Superseded by #390, with contract/runtime retirement in #392 and production adoption in platform#4890. Closing as not planned; no embedding rollout or flag-retirement acceptance is claimed. The legacy compatibility runtime remains bounded until the replacement migration is delivered.
Activity
devantler commentedon Oct 2, 2026
Production UI adoption observations, 2026-10-06:
sandbox="allow-forms allow-scripts", retaining opaque origins. Closing the independent interface reports session/grant revocation, hides the frame and removes its source URL. No data-source credentials or product records were supplied by the host.This remains partial adoption evidence. Forged-session interception, query failure/recovery, and the reviewed disabled rollback and both flag states still need acceptance evidence. Keep the UI release gate and this issue open until all its acceptance criteria hold.
devantler commentedon Oct 7, 2026
Additional browser adoption evidence for #120, observed on the deployed catalogue and independently deployed compatibility host during this round:
allow-forms allow-scripts, withno-referrer; it did not grant same-origin authority.This advances the opening, loading, handshake timeout/recovery, keyboard, narrow-layout, origin-denial and visible session-withdrawal observations. It does not establish unavailable-product, query failure/recovery, forged-session or ungranted-message rejection, absence of credential/record transfer, or production disabled-state/rollback evidence. The complete reviewed release-to-live artifact join and remaining protocol observations still belong to the adoption gate. #120 remains open; this receipt does not authorize flag retirement.
devantler commentedon Oct 14, 2026
The maintainer has chosen API-only product integration. This issue's acceptance criteria require adopting the embedding protocol before removing its gate, so they no longer describe the intended product outcome.
Superseded by #390, with contract/runtime retirement in #392 and production adoption in platform#4890. Closing as not planned; no embedding rollout or flag-retirement acceptance is claimed. The legacy compatibility runtime remains bounded until the replacement migration is delivered.