---
id: JNY-PFM-CSH-001
title: Start a session in the workspace home
feature: FEAT-PFM-CSH-01
product_area: platform
module: console-shell
revision: 2
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
actor: ACT-PFM-002
goal: Begin the day with an established working context and use the menu to open daily work.
capabilities:
  - CAP-PFM-CSH-004
  - CAP-PFM-CSH-001
  - CAP-PFM-CSH-006
  - CAP-PFM-CSH-013
screens:
  - /
  - '/console/{tenantId}'
  - /hq
steps:
  - 'n': 1
    surface: /
    action: Opens Rhythm at its starting address while already signed in.
    capability: CAP-PFM-CSH-004
    expected: Only the loading view appears while access is being resolved.
    provenance: test
    source: >-
      react-console:e2e/dev/initialisation.dev.spec.ts#asks the Platform exactly one thing first,
      and shows nothing until it is answered
  - 'n': 2
    surface: getMySecurityContext
    action: Waits for Platform to establish the session’s working access.
    capability: CAP-PFM-CSH-001
    expected: 'The ready frame presents the person, workspace and available navigation.'
    provenance: observed
    source: 'react-console:components/console/console-shell.tsx:ConsoleShell'
  - 'n': 3
    surface: '/console/{tenantId}'
    action: Arrives at the remembered workspace home.
    capability: CAP-PFM-CSH-004
    expected: 'A greeting, attention items and the dashboard area appear.'
    provenance: observed
    source: 'react-console:app/(console)/console/[tenantId]/page.tsx:HomePage'
  - 'n': 4
    surface: '/console/{tenantId}/crm/contacts'
    action: Selects Contacts in the CRM menu.
    capability: CAP-PFM-CSH-006
    expected: The contacts list opens and its position is represented in the menu.
    provenance: observed
    source: 'react-console:components/console/app-sidebar.tsx:NavSectionItem'
alternates:
  - from_step: 2
    condition: The remembered workspace is no longer in service.
    path: The default workspace becomes the starting context.
    outcome: A persistent context notice explains the fallback and can be dismissed.
    provenance: test
    source: >-
      react-console:e2e/controlled/tenant-unavailable.controlled.spec.ts#falls back to the default
      tenant, with a word of explanation, rather than refusing access
  - from_step: 1
    condition: Rhythm staff begin at the starting address without explicitly entering a workspace.
    path: The starting destination is Rhythm HQ.
    outcome: The staff navigation appears; the remembered workspace remains available for later use.
    provenance: test
    source: >-
      react-console:e2e/mock/staff-landing.mock.spec.ts#a staff member with a remembered tenant and
      a standing grant lands on /hq in HQ context
failures:
  - from_step: 2
    condition: The access request fails.
    path: A separate failure view offers retry and sign-out.
    outcome: A successful retry can establish the console.
    provenance: observed
    source: >-
      react-console:components/console/console-boot-screens.tsx:consoleBootScreens;
      lib/security-context/provider.tsx
  - from_step: 2
    condition: The person has no effective access.
    path: The refusal view identifies the signed-in address and offers sign-out.
    outcome: The working frame remains absent.
    provenance: observed
    source: 'react-console:components/console/console-boot-screens.tsx:consoleBootScreens'
rules_in_play:
  - BR-CAP-PFM-CSH-004-04
  - BR-CAP-PFM-CSH-004-02
  - BR-CAP-PFM-CSH-001-03
  - BR-CAP-PFM-CSH-001-04
  - BR-CAP-PFM-CSH-001-05
  - BR-CAP-PFM-CSH-013-06
  - BR-CAP-PFM-CSH-006-06
  - BR-CAP-PFM-CSH-006-07
  - BR-CAP-PFM-SEC-007-08
  - BR-CAP-PFM-SEC-007-12
assertions:
  - id: AS-JNY-PFM-CSH-001-01
    statement: Access resolution precedes the working console view.
    provenance: test
    source: >-
      react-console:e2e/dev/initialisation.dev.spec.ts#asks the Platform exactly one thing first,
      and shows nothing until it is answered
  - id: AS-JNY-PFM-CSH-001-02
    statement: 'For a customer user, the starting address opens the remembered workspace home.'
    provenance: test
    source: >-
      react-console:e2e/mock/url-architecture.mock.spec.ts#the bare root opens the remembered
      tenant's home
  - id: AS-JNY-PFM-CSH-001-03
    statement: A staff session started without an explicit workspace opens Rhythm HQ.
    provenance: test
    source: >-
      react-console:e2e/mock/staff-landing.mock.spec.ts#a staff member with a remembered tenant and
      a standing grant lands on /hq in HQ context
e2e_policy: required
e2e_reason: >-
  Browser coverage is needed for the access-loading boundary and the transition into a correctly
  identified workspace. Existing tests cover individual portions of this experience.
evidence:
  - >-
    react-console at baf6dae: app/(console)/{layout,page}.tsx,
    components/console/{console-shell,console-boot-screens,legacy-redirect,app-sidebar}.tsx,
    e2e/dev/initialisation.dev.spec.ts, e2e/mock/{url-architecture,staff-landing}.mock.spec.ts,
    e2e/controlled/{tenant-unavailable,security-context}.controlled.spec.ts.
proved_by: []
---

# Start a session in the workspace home

## Story

Morgan starts the day by opening Rhythm. After access is resolved, the workspace home provides a greeting and the work needing attention. Morgan uses the CRM menu to open Contacts. A fallback to a different starting workspace is explained rather than left for Morgan to infer.
