From 538a69e1c5e7541fa686e496545a7033c91e1824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ullrich=20Sch=C3=A4fer?= Date: Thu, 26 Mar 2026 00:41:51 +0100 Subject: [PATCH] Archive app-navigation and planner-multiplayer-awareness, sync specs Both changes fully implemented. Sync delta specs to main: - map-display: add Planner home page nav and cursor rendering requirements - planner-session: add session participant awareness requirement Co-Authored-By: Claude Opus 4.6 (1M context) --- .../2026-03-26-app-navigation}/.openspec.yaml | 0 .../2026-03-26-app-navigation}/design.md | 0 .../2026-03-26-app-navigation}/proposal.md | 0 .../specs/map-display/spec.md | 0 .../2026-03-26-app-navigation}/tasks.md | 0 .../.openspec.yaml | 0 .../design.md | 0 .../proposal.md | 0 .../specs/map-display/spec.md | 0 .../specs/planner-session/spec.md | 0 .../tasks.md | 0 openspec/specs/map-display/spec.md | 22 +++++++++++++++ openspec/specs/planner-session/spec.md | 27 +++++++++++++++++++ 13 files changed, 49 insertions(+) rename openspec/changes/{app-navigation => archive/2026-03-26-app-navigation}/.openspec.yaml (100%) rename openspec/changes/{app-navigation => archive/2026-03-26-app-navigation}/design.md (100%) rename openspec/changes/{app-navigation => archive/2026-03-26-app-navigation}/proposal.md (100%) rename openspec/changes/{app-navigation => archive/2026-03-26-app-navigation}/specs/map-display/spec.md (100%) rename openspec/changes/{app-navigation => archive/2026-03-26-app-navigation}/tasks.md (100%) rename openspec/changes/{planner-multiplayer-awareness => archive/2026-03-26-planner-multiplayer-awareness}/.openspec.yaml (100%) rename openspec/changes/{planner-multiplayer-awareness => archive/2026-03-26-planner-multiplayer-awareness}/design.md (100%) rename openspec/changes/{planner-multiplayer-awareness => archive/2026-03-26-planner-multiplayer-awareness}/proposal.md (100%) rename openspec/changes/{planner-multiplayer-awareness => archive/2026-03-26-planner-multiplayer-awareness}/specs/map-display/spec.md (100%) rename openspec/changes/{planner-multiplayer-awareness => archive/2026-03-26-planner-multiplayer-awareness}/specs/planner-session/spec.md (100%) rename openspec/changes/{planner-multiplayer-awareness => archive/2026-03-26-planner-multiplayer-awareness}/tasks.md (100%) diff --git a/openspec/changes/app-navigation/.openspec.yaml b/openspec/changes/archive/2026-03-26-app-navigation/.openspec.yaml similarity index 100% rename from openspec/changes/app-navigation/.openspec.yaml rename to openspec/changes/archive/2026-03-26-app-navigation/.openspec.yaml diff --git a/openspec/changes/app-navigation/design.md b/openspec/changes/archive/2026-03-26-app-navigation/design.md similarity index 100% rename from openspec/changes/app-navigation/design.md rename to openspec/changes/archive/2026-03-26-app-navigation/design.md diff --git a/openspec/changes/app-navigation/proposal.md b/openspec/changes/archive/2026-03-26-app-navigation/proposal.md similarity index 100% rename from openspec/changes/app-navigation/proposal.md rename to openspec/changes/archive/2026-03-26-app-navigation/proposal.md diff --git a/openspec/changes/app-navigation/specs/map-display/spec.md b/openspec/changes/archive/2026-03-26-app-navigation/specs/map-display/spec.md similarity index 100% rename from openspec/changes/app-navigation/specs/map-display/spec.md rename to openspec/changes/archive/2026-03-26-app-navigation/specs/map-display/spec.md diff --git a/openspec/changes/app-navigation/tasks.md b/openspec/changes/archive/2026-03-26-app-navigation/tasks.md similarity index 100% rename from openspec/changes/app-navigation/tasks.md rename to openspec/changes/archive/2026-03-26-app-navigation/tasks.md diff --git a/openspec/changes/planner-multiplayer-awareness/.openspec.yaml b/openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/.openspec.yaml similarity index 100% rename from openspec/changes/planner-multiplayer-awareness/.openspec.yaml rename to openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/.openspec.yaml diff --git a/openspec/changes/planner-multiplayer-awareness/design.md b/openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/design.md similarity index 100% rename from openspec/changes/planner-multiplayer-awareness/design.md rename to openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/design.md diff --git a/openspec/changes/planner-multiplayer-awareness/proposal.md b/openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/proposal.md similarity index 100% rename from openspec/changes/planner-multiplayer-awareness/proposal.md rename to openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/proposal.md diff --git a/openspec/changes/planner-multiplayer-awareness/specs/map-display/spec.md b/openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/specs/map-display/spec.md similarity index 100% rename from openspec/changes/planner-multiplayer-awareness/specs/map-display/spec.md rename to openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/specs/map-display/spec.md diff --git a/openspec/changes/planner-multiplayer-awareness/specs/planner-session/spec.md b/openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/specs/planner-session/spec.md similarity index 100% rename from openspec/changes/planner-multiplayer-awareness/specs/planner-session/spec.md rename to openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/specs/planner-session/spec.md diff --git a/openspec/changes/planner-multiplayer-awareness/tasks.md b/openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/tasks.md similarity index 100% rename from openspec/changes/planner-multiplayer-awareness/tasks.md rename to openspec/changes/archive/2026-03-26-planner-multiplayer-awareness/tasks.md diff --git a/openspec/specs/map-display/spec.md b/openspec/specs/map-display/spec.md index 7975af0..630aff7 100644 --- a/openspec/specs/map-display/spec.md +++ b/openspec/specs/map-display/spec.md @@ -50,3 +50,25 @@ The Planner SHALL display an elevation profile chart for the current route. #### Scenario: Show elevation profile - **WHEN** a route is computed - **THEN** an elevation profile chart is displayed below the map showing distance vs elevation with total ascent/descent statistics + +### Requirement: Planner home page +The Planner home page SHALL provide a clear call-to-action to create a new planning session and a link back to the home page from within sessions. + +#### Scenario: Home page CTA +- **WHEN** a user visits the Planner home page +- **THEN** a prominent "Start Planning" button is visible that links to `/new` + +#### Scenario: Session home link +- **WHEN** a user is in a planning session +- **THEN** the header contains a link back to the Planner home page + +### Requirement: Map cursor rendering +Other participants' cursors on the map SHALL be clearly visible with proper styling. + +#### Scenario: Cursor appearance +- **WHEN** another participant moves their mouse on the map +- **THEN** a colored pointer icon with their name tag appears at the cursor position + +#### Scenario: Cursor does not obscure map controls +- **WHEN** cursors are rendered +- **THEN** they appear below map controls (zoom, layer switcher) in z-index diff --git a/openspec/specs/planner-session/spec.md b/openspec/specs/planner-session/spec.md index 9f86e40..0ca84c4 100644 --- a/openspec/specs/planner-session/spec.md +++ b/openspec/specs/planner-session/spec.md @@ -94,3 +94,30 @@ The Planner SHALL NOT collect, store, or track any personal user data. Sessions #### Scenario: Anonymous session participation - **WHEN** a user joins a session without any account - **THEN** the user is assigned a random color and temporary display name with no data persisted about their identity + +### Requirement: Session participant awareness +Users in a planning session SHALL see who else is present and be able to identify themselves. + +#### Scenario: Participant list visible +- **WHEN** multiple users are in a session +- **THEN** the header shows each participant's name and color + +#### Scenario: Host badge +- **WHEN** a participant is the routing host +- **THEN** their entry in the participant list shows a host indicator + +#### Scenario: Edit own name +- **WHEN** a user clicks their own name in the participant list +- **THEN** an inline text input appears to change their display name + +#### Scenario: Name persisted +- **WHEN** a user changes their name +- **THEN** the name is saved to localStorage and immediately visible to all other participants via awareness + +#### Scenario: Join notification +- **WHEN** a new participant joins the session +- **THEN** a brief toast shows "[name] joined" + +#### Scenario: Leave notification +- **WHEN** a participant leaves the session +- **THEN** a brief toast shows "[name] left"