chore(webui): enforce semantic interface patterns
Dependency Audit / dependency-audit (push) Successful in 1m46s
Deployment Installer / deployment-installer (push) Successful in 6s
Security Audit / security-audit (push) Successful in 11m24s

This commit is contained in:
2026-08-19 18:47:45 +02:00
parent ef8fd45457
commit e88dceb639
4 changed files with 102 additions and 103 deletions
@@ -78,10 +78,11 @@ matters.
A Quick Access contribution declares:
- a stable id, category and human label;
- contract version 1, a stable id, category and human label;
- icon, order and optional badge/summary provider;
- required permissions and optional dependencies;
- accepted context references and produced return references;
- global or active-object availability, accepted context-reference kinds and
produced result-reference kinds;
- an owner-rendered bounded WebUI surface and full-page fallback route;
- View surface, help context and availability explanation;
- whether the contribution supports preview, create, select or resume.
@@ -92,6 +93,22 @@ resources and a safe return location. The owner reauthorizes every read and
effect. Credentials, protected content and permission decisions are never
embedded in launch context.
Launch-context version 2 identifies reference contract version 1 and carries
the exact resolved View revision plus optional recommended and focused tool
ids. Recommendations affect order and emphasis only. Focus narrows the rail
only when at least one focused contribution survives module enablement,
configuration, context compatibility and authorization; otherwise the normal
effective rail remains available. Workflow gets the same behavior by resolving
the exact View revision instead of acquiring separate presentation authority.
An owner-rendered tool explicitly returns result contract version 1 as either
`completed` with an action and typed owner reference, or `cancelled` with a
reason. The shell correlates the result with the source and tool, rejects
cross-tenant or undeclared reference kinds, and does not interpret closing the
drawer as completion. Owner modules validate, persist, recover and audit their
own effects. The overlay leaves the host route mounted, so unsaved host-page
state is preserved; the full-page route remains the bounded-work fallback.
## Effective Configuration
The effective rail is resolved from:
@@ -125,9 +142,9 @@ workspace layouts do not resize unexpectedly; a later explicit pinned mode may
reserve layout width on sufficiently wide screens.
The drawer preserves host-page state, has a deterministic focus return, closes
with Escape, supports keyboard traversal, and provides an explicit full-page
open action. Mobile and narrow layouts use the same category/configuration
semantics in a bottom sheet or compact menu.
with Escape, supports keyboard traversal, and provides explicit completion,
cancellation and full-page actions. Mobile and narrow layouts use the same
category/configuration semantics in a bottom sheet or compact menu.
## Product Areas