Create initiative

Initiative Brief: Workspace Shell, Context Contract, and Conversational Runtime

COMPLETED
Intent— the specification (8,123 chars); the plan below decomposes it into work items. Click to expand.

# Initiative Brief: Workspace Shell, Context Contract, and Conversational Runtime ## Desired outcome Establish the primary interaction model for Xyence Workspaces: a consistent platform-owned shell with a persistent, context-aware conversational interface that every workspace can participate in through explicit contracts. Workspaces should become more than a launcher for independent applications. It should provide the common human interface through which users select what kind of work they want to perform, see domain-specific information, converse naturally about that work, attach visual or file-based evidence, and invoke authorized domain capabilities without each workspace rebuilding its own navigation, conversation system, attachment handling, or AI integration. The platform shell should own: * the global header; * workspace selection; * organization/account context; * the hybrid navigation rail; * durable conversations and conversation history; * Composer; * file/image attachments; * direct screenshot capture; * context-change events; * responsive/mobile behavior; * shared confirmation/audit conventions for AI-initiated actions. Individual workspaces should own their primary domain UI while declaratively contributing navigation, context, capabilities, actions, and landing-page information to the shell. The Orchestrator workspace will be the first substantial consumer of this architecture, but this initiative must establish reusable platform contracts rather than embedding Orchestrator-specific assumptions. ## Motivation The current workspace-based applications already share portions of a common shell, including global workspace and organization selection, but the interaction model is not yet formalized strongly enough to support the platform's longer-term direction. The intended user experience is increasingly conversational. A user should be able to enter Workspaces and answer a simple question: **What do you want to work on?** Examples might include: * Software development * Websites * Sales * Marketing Selecting a workspace changes both the primary application UI and the context of the shared Composer. Within a workspace, selecting a particular object—such as a website, repository, initiative, lead, or campaign—should further refine the context available to the conversation without forcing the user into a new conversation. Without a shared platform architecture, each workspace is likely to independently implement: * navigation; * AI/chat UI; * conversation persistence; * context handling; * attachment uploads; * screenshot support; * action confirmation; * responsive behavior. That would recreate the fragmentation Workspaces is intended to eliminate. A platform-level contract is therefore needed before conversational features are added deeply to individual workspace applications. ## Product principles - Workspaces owns the shell — Workspace applications participate in the shell. They do not replace it. Conversation is a platform capability — Orchestrator, Web, Sales, Marketing, and future workspaces should not implement independent chat systems. Workspace selection establishes conversational scope — Entering a workspace determines: - the relevant conversation history; - the default domain; - available domain capabilities; - visible workspace navigation; - initial landing content. Navigation may refine conversation context without starting a new conversation — Selecting an object within a workspace should normally update the existing conversation context. A new conversation is an explicit user action, not a side effect of navigation. Context changes are visible — A conversation must never silently change semantic scope. When relevant context changes, the conversation should record a durable context event such as: > Context changed · stlouishighrises.com or: > Context changed · Xyence/workspaces repository Primary UI and conversation complement one another — Composer must not become a blank prompt that carries the full burden of teaching users what the product can do. Every workspace should provide meaningful structured landing content and suggested activities. The shell is declarative — Critical shell regions should consume workspace-defined metadata/contracts rather than arbitrary workspace-provided React UI. This preserves consistency, accessibility, security, mobile behavior, and future evolution. ## Rejected / deferred alternatives - Full Orchestrator ideation implementation. - Full Web workspace implementation. - Full voice mode. - General-purpose unrestricted consumer chat. - Cross-workspace conversation handoff in the first release. - Autonomous browser screenshotting by the AI. - Allowing workspaces arbitrary DOM/React control over platform shell regions. - Moving domain ownership into Workspaces. - Replacing domain service APIs with MCP solely for internal integration. ## Invariants - The platform owns the shell. - The platform owns conversation persistence and Composer. - Workspaces contribute shell behavior through declared contracts. - Primary domain UI remains workspace-owned. - Navigation does not silently create conversations. - Material context changes are visible and durable. - Historical messages retain the context under which they were sent. - User-provided context cannot bypass authorization. - Provider and service credentials remain server-side. - Conversation does not implicitly authorize mutating actions. - Screenshot and attachment access follows conversation authorization. - Critical shell regions are not arbitrary workspace-rendered JSX. - Domain systems remain authoritative for domain data and actions. ## Repository scope - `Xyence/workspaces` — Primary implementation. Likely includes: - shell architecture; - workspace contract; - navigation contract; - context contract; - capability/action contracts; - conversation persistence; - Composer; - attachment and screenshot UX; - conversation runtime integration; - landing page; - responsive behavior; - contract validation. `Xyence/outshine` — Only where platform authentication, organization/workspace identity, storage, or authorization boundaries require extension. Avoid making Outshine the owner of conversation semantics solely because it already provides platform APIs. `Xyence/orchestrator` — No substantial Orchestrator-domain implementation is required by this foundation initiative except where needed to keep the existing workspace functioning during shell migration. Full Orchestrator conversational integration belongs to the follow-on initiative. ## Expected behavior - A user can land in Workspaces and select a workspace from a meaningful task/domain-oriented landing experience. - The existing organization/workspace header behavior is retained or cleanly migrated. - The platform renders a consistent shell around at least one workspace. - A workspace can declaratively contribute navigation. - A workspace can publish active semantic context to the shell. - Composer is platform-owned and consistently available. - Durable conversations can be created, resumed, and archived. - Conversation history defaults to the active workspace. - Changing selected domain context does not automatically create a new conversation. - Material context changes appear in conversation history. - Composer supports image/file attachments. - Composer provides low-friction screenshot capture. - Screenshot messages retain useful current-page/workspace context. - The server-side conversation runtime can consume workspace-declared read capabilities. - Mutating capabilities may require deterministic confirmation outside model judgment. - All context and capability access is re-authorized server-side. - Long conversations use bounded context rather than unlimited transcript replay. - Conversation/action provenance is durably recorded. - The shell works at desktop and mobile viewport sizes. - The architecture is ready for later voice input without replacing the message model. - Workspace contracts are versionable and testable. - Conversational model/tool failures are observable without unsafe logging.

hints: `Xyence/workspaces` — Primary implementation. Likely includes:, shell architecture;, workspace contract;, navigation contract;, context contract;, capability/action contracts;, conversation persistence;, Composer;, attachment and screenshot UX;, conversation runtime integration;, landing page;, responsive behavior;, contract validation. `Xyence/outshine` — Only where platform authentication, organization/workspace identity, storage, or authorization boundaries require extension. Avoid making Outshine the owner of conversation semantics solely because it already provides platform APIs. `Xyence/orchestrator` — No substantial Orchestrator-domain implementation is required by this foundation initiative except where needed to keep the existing workspace functioning during shell migration. Full Orchestrator conversational integration belongs to the follow-on initiative.created 8/10/2026, 4:27:32 PMby human:workspaces-orchestrator-app

Repository scope

targets the work spans — independent of where the brief was authored

Primary repository: workspaces` — Primary implementation. Likely includes:

  • workspaces` — Primary implementation. Likely includes:expected · primary
  • shell architecture;expected
  • workspace contract;expected
  • navigation contract;expected
  • context contract;expected
  • action contracts;expected
  • conversation persistence;expected
  • Composer;expected
  • attachment and screenshot UX;expected
  • conversation runtime integration;expected
  • landing page;expected
  • responsive behavior;expected
  • outshine` — Only where platform authentication, organizationexpected
  • workspacesdiscovered
  • outshinediscovered

brief revision 1 assessed as delivered

assessed with 79% confidence

End-to-end, the repository now ships a platform-owned shell that renders around real workspaces, a versioned/validated workspace contract, durable conversations with bounded history, a platform Composer (attachments + user-initiated screenshots) wired to a backend upload service, visible/durable context-change events, a server-side conversational runtime (read-only capability execution with bounded context), and a deterministic confirmation + durable audit path for mutating capabilities. Shell/mobile behavior and landing are contract-driven and consistent. All routes re-authorize server-side and observability is implemented with safe redaction. Orchestrator and Sales consume the shell; Outshine provides the authoritative persistence/runtime/confirmation services. The only “voice” aspect required by the brief was architectural readiness; the message model (text plus attachments, context envelope) and runtime wiring do not preclude adding voice input later without changing the model. No material acceptance criterion or invariant remains unaddressed.

Plan waves — 2 approved waves

planning closed
  1. Wave 1completeAPPROVED15 work items

    Deliver a platform-owned Workspace shell with declarative workspace contracts, persistent conversations, a consistent Composer (attachments + user-driven screenshots), visible context-change events, and a server-side conversational runtime/persistence — without embedding workspace-specific assumptions — so that at least one existing workspace app runs inside the shell and participates via contracts.

  2. Wave 2foundation-firstAPPROVED6 work items

    Wave 2 will close the verified gaps from wave 1 by shipping a task-/domain-oriented landing surface that consumes existing LandingMetadata, adding durable current-page/workspace context to screenshot/attachment messages, and completing the deterministic confirmation + audit flow for mutating capabilities. Platform docs will be updated to reflect these behaviors and contracts.

    Deferred scope

    • Deeper suggestedActivities semantics (parameterized deep links or capability presets) beyond what current navigation/action contracts support — Requires product direction on how activities should pre-configure workspace state or Composer prompting without violating the invariant that navigation does not silently create conversations. (unblocks: Evidence of stable usage of the basic landing surface and a product decision on activity semantics and UX.) · filed → RM-0004
    • Administrative policy management UI for confirmation requirements (per-org/per-workspace) — Policy authoring is beyond the foundation brief; this wave focuses on server-enforced confirmation and receipts. (unblocks: Back-end confirmation enforcement and receipts shipped; operator decision on policy surface scope and ownership.) · filed → RM-0005
    Continuation checkpoint: Wave 2 stories merged and validated in main for both repos; landing surface active, screenshot/attachment messages carry durable context, confirmation receipts persisted and rendered; platform docs updated. Proceed to wave 3 if deferred capabilities are prioritized or close the initiative if no further scope remains.

Work items

#TitleRepositoryStateIssuePR / CIReview
w1·0Define Workspace Shell contracts v1 and validator (navigation, context, capabilities, landing metadata)workspacesCOMPLETED#91#101merged · CI passedc1: approve
w2·0Render task-/domain-oriented landing surface from existing LandingMetadataworkspacesCOMPLETED#111#114merged · CI passedc1: approve
w2·1Persist optional context annotation with messages (screenshots/attachments) consistent with context-change eventsoutshineCOMPLETED#425#428merged · CI passedc1: approve
w1·1 ⛓Implement platform-owned shell layout that consumes workspace contracts; integrate global header/org-workspace selectionworkspacesCOMPLETED#92#102merged · CI passedc1: request_changes, c2: approve
w1·2 ⛓Context contract plumbing and visible context-change events (UI-only, durable once backend lands)workspacesCOMPLETED#93#103merged · CI passedc1: approve
w2·2 ⛓Send current context with screenshot/attachment messages and render context near the messageworkspacesCOMPLETED#112#115merged · CI passedc1: request_changes, c2: request_changes
w1·3 ⛓Composer UI (platform-owned) with attachments and user-driven screenshot capture stubsworkspacesCOMPLETED#94#105merged · CI passedc1: approve
w2·3Enforce deterministic confirmation for mutating capabilities and persist audit receiptsoutshineCOMPLETED#426#429merged · CI passedc1: approve
w1·4 ⛓Conversation persistence service: data model and APIs (create/resume/archive, messages, context events) with authz and bounded retrievaloutshineCOMPLETED#415#420merged · CI passedc1: request_changes, c2: approve
w2·4 ⛓Render audit receipts in timeline and use server-provided confirmation summary in the dialogworkspacesCOMPLETED#113#116merged · CI passedc1: approve
w1·5 ⛓Integrate shell with conversation persistence APIs (create/resume/archive, history by active workspace)workspacesCOMPLETED#95#106merged · CI passedc1: approve
w2·5 ⛓Docs: Shell landing surface, screenshot context, and confirmation/audit conventionsoutshineCOMPLETED#427#430merged · CI passedc1: approve
w1·6 ⛓Attachment upload service: endpoints, storage integration, and metadata linking to messagesoutshineCOMPLETED#416#421merged · CI passedc1: request_changes, c2: approve, c3: approve
w1·7 ⛓Wire Composer attachments and screenshots to backend upload serviceworkspacesCOMPLETED#96#107merged · CI passedc1: approve
w1·8 ⛓Server-side conversational runtime skeleton with read-only capability execution and bounded contextoutshineCOMPLETED#417#422merged · CI passedc1: approve
w1·9 ⛓Hook Composer send to server-side runtime with robust UI state (pending, error, retry)workspacesCOMPLETED#97#108merged · CI passedc1: approve
w1·10 ⛓Deterministic confirmation handshake and audit logging for mutating capabilities (scaffold only)outshineCOMPLETED#418#423merged · CI passedc1: approve
w1·11 ⛓UI for mutating action confirmation and audit receiptsworkspacesCOMPLETED#98#109merged · CI passedc1: request_changes, c2: approve
w1·12 ⛓Responsive/mobile polish for shell, nav, Composer, and timelineworkspacesCOMPLETED#99#110merged · CI passedc1: approve
w1·13 ⛓Contract test harness and CI enforcement for workspace participationworkspacesCOMPLETED#100#104merged · CI passedc1: approve
w1·14 ⛓Observability for conversational pipeline with safe redactionoutshineCOMPLETED#419#424merged · CI passedc1: approve

Release candidate

ELIGIBLE

All work complete — merged, reviewed, and unblocked. Release and deployment remain manual.

workspacesPR #101 · merged fbe4c8d6d0 · review approve
workspacesPR #114 · merged 869bc7a2b6 · review approve
outshinePR #428 · merged 2d1dd5e005 · review approve
workspacesPR #102 · merged f4c5c03d4d · review approve
workspacesPR #103 · merged 62c378f784 · review approve
workspacesPR #115 · merged fecd84181b · review request_changes · waived
workspacesPR #105 · merged 2634f40dbc · review approve
outshinePR #429 · merged 5c31965115 · review approve
outshinePR #420 · merged 6db7ae5b9f · review approve
workspacesPR #116 · merged b103f45243 · review approve
workspacesPR #106 · merged 8d1a8b7820 · review approve
outshinePR #430 · merged d43ee6c989 · review approve
outshinePR #421 · merged 446fa7fe67 · review approve
workspacesPR #107 · merged 0b2485cb4a · review approve
outshinePR #422 · merged aea6662813 · review approve
workspacesPR #108 · merged 33567eecf3 · review approve
outshinePR #423 · merged 780b141b9a · review approve
workspacesPR #109 · merged 19119f8b11 · review approve
workspacesPR #110 · merged 860707396c · review approve
workspacesPR #104 · merged 81e3b52251 · review approve
outshinePR #424 · merged f7eb33c87f · review approve

Release 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 · Send current context with screenshot/attachment messages and render context near the message · 8/11/2026, 1:25:22 PM

Remediation budget exhausted for "Send current context with screenshot/attachment messages and render context near the message" (Xyence/workspaces#115) with unresolved blocking findings. How should this proceed?

ANSWERED

Internal fallback logic for inline message context is implemented and tested, but the public API cleanup is not evidenced in the diff: supportsInlineMessageContext has not been shown removed from CreateConversationControllerOptions. Remove that field from the exported options interface to resolve the policy violation.

Answer: Already resolved at 7eb4751 — proceed to merge; do not waive. supportsInlineMessageContext was added in 426e19b and removed in the remediation commit 7eb4751 ("Address review findings"), from the exported CreateConversationControllerOptions interface and every other use site: the destructured parameter, the options spread, the useMemo dependency array, and the test fixture. Verified at the current PR head: the identifier does not appear in conversationController.ts, anywhere else in the tree, or in the PR diff. The interface now exposes only gateway, runtime, historyLimit, now, and onError. The finding is a false positive from an incomplete evidence window — note its own wording, "has not been shown removed", rather than "is present". The removal was in the very commit being judged. There is no policy violation to waive; waiving would record a gap that does not exist. PR #115 is mergeable and CI has passed.

agent:openai · 8/11/2026, 3:10:17 AM

Every work item is complete, but the brief assessment could not verify any of its 1 criteria — it was not shown the full content of the delivered work. Is this initiative done?

ANSWERED

Most of the brief’s end‑to‑end behavior and invariants are present and wired: a platform‑owned, contract‑driven shell wraps a real workspace; workspaces declaratively contribute nav and publish semantic context; the platform owns a durable conversation surface (timeline + Composer) with attachments and user‑initiated screenshots; bounded, authorized persistence is integrated; a server‑side conversational runtime runs read‑only capabilities with server‑side re‑auth, stamps provenance, and returns confirmations for mutating actions; confirmation UI and durable audit receipts exist; responsive/mobile behavior is covered; contracts are versioned/tested; and observability is redacted. The one user‑visible item we could not find delivered end‑to‑end is the Workspaces landing experience that lets a user land in Workspaces and select a workspace from a task/domain‑oriented surface. The contract provides landing metadata, but there’s no evidence the shell renders a landing page that uses it. Everything else enumerated by the brief is covered with evidence across the two repos. Every criterion came back "cannot confirm" rather than "not done", and the delivered work exceeded the evidence budget, so the diff content of 1 completed item was withheld from the assessment (their changed-file lists were shown, but not their content) — so this is an unverified verdict, not an adverse one. Check the delivered work yourself before waiving anything: waiving records each criterion as a gap you accepted, and if the work is in fact complete that is a false record. Criteria the assessment could not confirm: - Workspaces landing experience: landing page in shell renders contract ‘landing’ metadata and supports selecting a workspace by task/domain — workspaces#91 defines landing metadata in the contract, but no shell landing UI or tests were shown that render a landing page using it; #92 focuses on in‑workspace shell, header, and nav rather than a Workspaces root landing

Answer: Not done. Verified against main @ 8607073: LandingMetadata is defined in workspace-contract and populated by the orchestrator workspace, but nothing renders it — headline/suggestedActivities have no consumer, and ShellContract documents landing as ignored by the shell layout. WorkspaceLauncher at / lists workspaces by name only; WorkspaceSummary has no task/domain field. No work item in this plan covered it. Do not waive — schedule a follow-up work item for the landing surface.

Timeline

No events yet.

    ← All initiatives