Initiative Brief: Canonical Workspaces Host Architecture and Complete Orchestrator Shell Integration
COMPLETEDIntent— the specification (6,709 chars); the plan below decomposes it into work items. Click to expand.
# Initiative Brief: Canonical Workspaces Host Architecture and Complete Orchestrator Shell Integration ## Desired outcome Establish and enforce a canonical Workspaces host architecture that fully composes platform-owned workspace facilities, then migrate the Orchestrator workspace onto that architecture without rewriting its existing routing or domain topology. After this initiative: - Workspaces provides a clear, reusable, documented composition path for platform-owned workspace facilities. - Workspace implementations contribute domain UI, declarative navigation, semantic context, capabilities, and other workspace-specific data rather than reconstructing shared shell behavior. - Orchestrator consumes the real platform navigation/menu rail, conversation history, Composer, attachments/screenshots, runtime integration, confirmation/audit UX, responsive behavior, and other applicable shared Workspaces facilities. - The existing Orchestrator placeholder conversation/Composer regions are removed. - Future workspace implementations, including Web, have an authoritative architectural path that strongly discourages or prevents ad-hoc replacements for platform facilities. This initiative must **not** be interpreted as an instruction to rewrite Orchestrator onto canonical Sales routing, convert it to the Sales module topology, or migrate its URLs to `/w/:workspaceId/*`. The goal is canonical **platform ownership and composition**, not canonical application routing. ## Motivation The original Workspace Shell, Context Contract, and Conversational Runtime work established the correct platform ownership model and delivered most of the shared facilities required by workspace applications. However, those architectural ideas and implementations are currently fragmented across: - the workspace contract; - shared `@xyence/shell` components; - Composer and conversation documentation; - Sales as the most complete consumer; - an older Orchestrator-local `PlatformShell`; - historical documentation that still describes conversation and Composer regions as placeholders. This allowed Orchestrator to consume part of the new shell architecture while leaving the conversation history and Composer regions unintegrated. The current Orchestrator application therefore presents an incomplete platform experience even though the shared capabilities already exist. More importantly, the same ambiguity could affect future workspace implementations. A developer or implementation agent following the repository today can discover the correct principles, but still has enough freedom to manually assemble or omit platform facilities. That is an architectural gap, not merely an Orchestrator UI bug. Before implementing additional workspace applications such as Web, Workspaces should expose an authoritative path that makes the intended ownership boundary unmistakable: **the platform owns the workspace experience; a workspace owns its domain.** ## Current state - `@xyence/shell` contains shared workspace UI and conversational infrastructure. - The platform Composer is already implemented. - Shared conversation history, persistence, runtime send/retry, attachments, screenshots, confirmations, receipts, and semantic-context plumbing already exist. - The workspace contract describes navigation, context types, capabilities, landing metadata, and related declarative workspace information. - Contract validity is already enforced by a shared CI harness. - Sales is currently the most complete consumer of the shared conversation surface. - Orchestrator uses an app-local `PlatformShell`. - The Orchestrator shell currently renders real navigation and domain content but placeholder conversation-history and Composer regions. - Orchestrator has a standalone Next topology with root-level routes, its own auth/scope composition, and existing control-plane/domain adapters. - Orchestrator is not currently mounted through the canonical Sales-style `WorkspaceContainer` routing topology. - Existing Workspaces documentation contains the correct ownership principles but is partly historical and inconsistent about the current full shell architecture. - `docs/adding-a-workspace-app.md` currently points developers toward Orchestrator as a reference host shape even though Orchestrator itself is missing the complete conversational integration. - The existing workspace contract harness validates workspace declarations but does not necessarily prove that a host consumed every mandatory platform-owned facility. ## Product principles - Conversation is a platform capability, not a workspace-specific chat feature. - Navigation chrome is a platform capability, not app-local UI. - The Composer is a platform capability, not an optional design pattern. - Shared mutation confirmation and receipt behavior is platform-owned. - Workspace applications should feel like different domains within one coherent product system. - Domain content remains first-class; the platform shell should support it rather than dominate it. - Workspace switching must switch conversation and platform scope without cross-workspace leakage. - In-workspace navigation refines semantic context without implicitly creating a conversation. - Users should not need to understand whether a workspace uses SPA routing, standalone Next routing, module routing, or another supported host topology. ## Architectural principles - Prefer one canonical Workspaces host-composition API over manual assembly of many independent platform components. - The composition API should own the standard platform facilities and expose narrow extension/adaptation points for host-specific concerns. - Workspace contracts provide declarative data, not shell-region JSX. - Platform shell facilities should live in shared Workspaces packages rather than being copied into individual apps. - Application-specific adapters are acceptable when topology differs, but those adapters connect into the platform architecture rather than replace it. - Shared APIs should not assume Sales routing unless that assumption is fundamental to the platform contract. - Existing authenticated/scoped `ApiClient` infrastructure should be reused for conversation/runtime/upload clients. - Backend authorization remains authoritative. - Browser-side code must not receive controller credentials, provider credentials, service JWTs, or equivalent secrets. - Active organization/workspace selection remains authoritative browser-side scope input. - Shared components should degrade visibly and safely when dependent platform APIs are unavailable. - Architectural exceptions should be deliberate and documented, not accidental consequences of local implementation.
Repository scope
targets the work spans — independent of where the brief was authoredPrimary repository: workspaces
- workspacesactive · primary
- orchestratordiscovered
- outshinediscovered
brief revision 2 assessed as delivered
assessed with 79% confidenceThe initiative’s deliverables — a canonical, routing-agnostic host composition API, a compliance harness that proves hosts compose platform-owned facilities, and comprehensive documentation/migration guidance — are all merged and exercised end-to-end in this repo. WorkspaceHost + adapter points are implemented with tests covering nav, shared semantic-context scope, runtime send/retry, attachments, workspace switching, and safe degradation. A reference adapter for standalone Next is provided. Legacy manual-assembly paths emit dev-time deprecations. The host-composition compliance harness (warn→error) is shipped in @xyence/shell with ADR + docs and passing/failing examples. Orchestrator’s migration/adoption is explicitly owned by a separate initiative and is not required here. On that basis, the assembled system satisfies the brief’s outcome and behavior.
Plan waves — 1 approved wave
planning closed- Wave 1completeAPPROVED5 work items
Deliver a canonical Workspaces host-composition API in the Workspaces monorepo, extend the shared CI harness to verify consumption of platform-owned facilities, migrate the Orchestrator workspace to that composition without changing its routing topology, and publish authoritative platform docs capturing the architectural decisions and migration outcome.
Work items
| # | Title | Repository | State | Issue | PR / CI | Review | |
|---|---|---|---|---|---|---|---|
| 0 | Introduce canonical Workspaces Host composition API with adapter points (routing-agnostic) | workspaces | COMPLETED | #125 | #128merged · CI passed | c1: approve | |
| 1 ⛓ | Extend shared CI harness with host-consumption compliance checks for platform-owned facilities | workspaces | COMPLETED | #126 | #129merged · CI passed | c1: approve | |
| 2 ⛓ | Update Workspaces docs to codify canonical host architecture and migration path; correct adding-a-workspace-app.md | workspaces | COMPLETED | #127 | #130merged · CI passed | c1: approve | |
| 3 ⛓ | Migrate Orchestrator to canonical Workspaces host composition; remove placeholder conversation and Composer | orchestrator | CANCELLED | #411 | — | — | |
| 4 ⛓ | Author ADR/RFC: Canonical Workspaces Host Composition and Orchestrator Migration outcome | outshine | CANCELLED | #453 | — | — |
Release candidate
ELIGIBLEAll work complete — merged, reviewed, and unblocked. Release and deployment remain manual.
18c3de758f · review approve6a1296e17e · review approve081531721f · review approven/a · review n/an/a · review n/aRelease planning
Releases are cut in the Release planning section. Associating this initiative requires an admin role.
Associating an initiative to a release only records the link — it never changes the initiative’s own state or work. Releases are optional.
Questions
agent:openai · 8/14/2026, 12:45:56 PM
Every work item is complete, but 3 brief criterions do not appear satisfied. Plan more work, or waive them?
The canonical host architecture is in place and well-documented (WorkspaceHost + routing-agnostic adapter, reference standalone-Next adapter, shared semantic-context scope, graceful degradation, Composer with attachments, runtime send path, dev-time deprecation nudges) and a compliance harness now exists to verify hosts actually compose platform facilities. However, the initiative’s outcome explicitly requires migrating Orchestrator onto this architecture and removing its placeholder conversation/Composer regions. No evidence shows Orchestrator has adopted WorkspaceHost or the compliance spec; the ‘Migrate Orchestrator…’ story remains open. Therefore the assembled system does not yet meet the brief’s end-to-end, user-visible criteria for Orchestrator consumption and removal of placeholders. Unmet criteria: - Orchestrator consumes real platform facilities via WorkspaceHost (nav rail, conversation, Composer, attachments/screenshots, runtime, confirmation/audit UX, responsive) — No code changes to apps/orchestrator shown; ‘Migrate Orchestrator…’ story (#411) remains open; current diffs only affect shell package + docs. - Removal of Orchestrator’s placeholder conversation and Composer regions — Explicitly called out as required in the brief; covered by open story #411; no evidence of removal yet. - Adoption of the host-composition compliance test in Orchestrator CI (escalated to error once green) — Docs prescribe adding host.compliance.test.tsx and escalating; no evidence Orchestrator has added it in its repo. The initiative stays in EXECUTING until each unmet criterion is either delivered by further work or waived deliberately.
Answer: Neither — the three criteria moved rather than being dropped, so brief revision 2 records the transfer and the initiative assessed delivered with nothing waived. All three unmet criteria (Orchestrator consuming platform facilities via WorkspaceHost, removal of its placeholder conversation/Composer regions, and adoption of the host-composition compliance test) describe migrating apps/orchestrator. That work item was planned against Xyence/orchestrator, which has no shell surface, no @xyence/shell dependency and no placeholder regions — the app being migrated lives in Xyence/workspaces. A work item repository is fixed at planning time and cannot be re-pointed, so it was cancelled, and the ADR item behind it was cancelled too (it could never start: its only blocker was cancelled, and planned intake offers no way to remove a dependency edge). Both now belong to initiative 6313f993 (Operator Feature Parity in the Workspaces Orchestrator App), whose committed brief covers the migration and whose planned wave 1 delivers it as items 0 and 1. Waiving would have been the wrong instrument: it records a criterion as a gap the operator accepted, and these have a new owner rather than an acceptance. One correction to the assessment evidence: it cites issue #411 as the open story, but #411 was already closed with the cancellation. What this initiative did deliver — the canonical host composition, the compliance harness, and the documentation — is what revision 2 now asks for, and it assessed delivered.
agent:claude · Migrate Orchestrator to canonical Workspaces host composition; remove placeholder conversation and Composer · 8/14/2026, 12:11:02 PM
This worktree's git origin is `https://github.com/Xyence/orchestrator.git` and it contains no `apps/orchestrator`, no `packages/shell/src/host/`, and no `@xyence/shell` — those paths exist only in `Xyence/workspaces`, so your "re-target to Xyence/workspaces, scoped to apps/orchestrator" instruction cannot be executed from inside this Xyence/orchestrator worktree (its PR is created from this repo's branch, and I cannot change which repository the worktree points at). Please re-provision this work item as a new run whose worktree is a checkout of `Xyence/workspaces` (checkoutKey `workspaces`); then I can migrate `apps/orchestrator` onto `WorkspaceHost`/`WorkspaceHostShell`/`ConversationRegion` from `packages/shell/src/host/` and delete its bespoke conversation region as scoped. Can you re-provision against `Xyence/workspaces`? I will make no changes in this Xyence/orchestrator worktree, since none are valid here.
agent:claude · Migrate Orchestrator to canonical Workspaces host composition; remove placeholder conversation and Composer · 8/14/2026, 3:40:18 AM
The canonical `@xyence/*` packages (shell, host-composition API, compliance harness) are not published to npmjs and no private registry is configured in this repo/environment, so they cannot be installed without failing the `pnpm install --frozen-lockfile` gate; additionally `Xyence/orchestrator`'s `apps/web` currently has no app-local PlatformShell or placeholder conversation/Composer regions to migrate (it is the control-plane admin UI). To let this run proceed against `Xyence/orchestrator`, please either (a) queue the Workspaces publish of the specific `@xyence/*` package versions AND make the `@xyence` scope resolvable here by registering the private registry in repo/CI config (registry auth is an operator/CI concern — I must not receive credentials, and I cannot edit protected env/CI paths), telling me the exact package names + versions to depend on; or (b) narrow/rescope this item, since there is currently no shell/Composer surface in this repo to replace. Which do you want, and what are the exact package names/versions and registry to target?
Answer: Re-target this item to Xyence/workspaces, scoped to apps/orchestrator. The canonical composition lives in packages/shell/src/host/ in that repo and resolves via workspace:*, so no publishing or registry work is needed. apps/orchestrator already consumes @xyence/shell but composes the shell ad hoc and does not use WorkspaceHost, WorkspaceHostShell or ConversationRegion — migrating it onto those, and deleting its bespoke conversation region, is the work. Xyence/orchestrator's apps/web is the control-plane admin UI, has no shell or Composer, and is out of scope.
agent:claude · Migrate Orchestrator to canonical Workspaces host composition; remove placeholder conversation and Composer · 8/14/2026, 3:38:14 AM
Work item #411 targets the `Xyence/workspaces` repository (its predecessors #125/#126/#127 and all referenced artifacts — `@xyence/shell`, the canonical host-composition API, `WorkspaceContainer`, the Orchestrator-local `PlatformShell`, placeholder conversation/Composer regions, `docs/adding-a-workspace-app.md` — live there), but this worktree is a checkout of `Xyence/orchestrator` (the `orchestrator-monorepo` control plane, `@orchestrator/*` packages, release 0.4.10) which contains none of them. Please re-provision the run against `Xyence/workspaces` (checkoutKey `workspaces`) so I can migrate the Orchestrator *workspace app*, or confirm how you want to proceed. I have made no changes.
Answer: Do not re-provision. This run is intended to modify Xyence/orchestrator to adopt the canonical Workspaces composition by upgrading and consuming the published @xyence/* packages from the Workspaces monorepo. Proceed in Xyence/orchestrator: upgrade the @xyence/* dependencies to the versions that include the canonical host-composition API and the compliance harness, replace the app-local shell with the canonical composition via those packages, and add the adapter/tests as scoped. If a required package/version is not yet published, flag it and we can queue a separate publish in Workspaces, but this run should remain against Xyence/orchestrator.
Timeline
No events yet.