From 9d51fd6b3669b3fac5f108d67c271f1dafc03477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ullrich=20Sch=C3=A4fer?= Date: Wed, 25 Mar 2026 03:13:36 +0100 Subject: [PATCH] Archive sentry-improvements, sync specs Sync Sentry error tracking requirement (5 scenarios) to main infrastructure spec. Archive completed change. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../.openspec.yaml | 0 .../2026-03-25-sentry-improvements}/design.md | 0 .../proposal.md | 0 .../specs/infrastructure/spec.md | 0 .../2026-03-25-sentry-improvements}/tasks.md | 0 openspec/specs/infrastructure/spec.md | 23 +++++++++++++++++++ 6 files changed, 23 insertions(+) rename openspec/changes/{sentry-improvements => archive/2026-03-25-sentry-improvements}/.openspec.yaml (100%) rename openspec/changes/{sentry-improvements => archive/2026-03-25-sentry-improvements}/design.md (100%) rename openspec/changes/{sentry-improvements => archive/2026-03-25-sentry-improvements}/proposal.md (100%) rename openspec/changes/{sentry-improvements => archive/2026-03-25-sentry-improvements}/specs/infrastructure/spec.md (100%) rename openspec/changes/{sentry-improvements => archive/2026-03-25-sentry-improvements}/tasks.md (100%) diff --git a/openspec/changes/sentry-improvements/.openspec.yaml b/openspec/changes/archive/2026-03-25-sentry-improvements/.openspec.yaml similarity index 100% rename from openspec/changes/sentry-improvements/.openspec.yaml rename to openspec/changes/archive/2026-03-25-sentry-improvements/.openspec.yaml diff --git a/openspec/changes/sentry-improvements/design.md b/openspec/changes/archive/2026-03-25-sentry-improvements/design.md similarity index 100% rename from openspec/changes/sentry-improvements/design.md rename to openspec/changes/archive/2026-03-25-sentry-improvements/design.md diff --git a/openspec/changes/sentry-improvements/proposal.md b/openspec/changes/archive/2026-03-25-sentry-improvements/proposal.md similarity index 100% rename from openspec/changes/sentry-improvements/proposal.md rename to openspec/changes/archive/2026-03-25-sentry-improvements/proposal.md diff --git a/openspec/changes/sentry-improvements/specs/infrastructure/spec.md b/openspec/changes/archive/2026-03-25-sentry-improvements/specs/infrastructure/spec.md similarity index 100% rename from openspec/changes/sentry-improvements/specs/infrastructure/spec.md rename to openspec/changes/archive/2026-03-25-sentry-improvements/specs/infrastructure/spec.md diff --git a/openspec/changes/sentry-improvements/tasks.md b/openspec/changes/archive/2026-03-25-sentry-improvements/tasks.md similarity index 100% rename from openspec/changes/sentry-improvements/tasks.md rename to openspec/changes/archive/2026-03-25-sentry-improvements/tasks.md diff --git a/openspec/specs/infrastructure/spec.md b/openspec/specs/infrastructure/spec.md index 69342ba..7399863 100644 --- a/openspec/specs/infrastructure/spec.md +++ b/openspec/specs/infrastructure/spec.md @@ -63,3 +63,26 @@ The infrastructure SHALL configure DNS and TLS for trails.cool and planner.trail #### Scenario: HTTPS access - **WHEN** a user navigates to https://trails.cool - **THEN** the connection is secured with a valid TLS certificate + +### Requirement: Sentry error tracking +The system SHALL enrich Sentry events with user and session context, use route-aware tracing, and prevent source maps from being served to clients. + +#### Scenario: Journal error includes user context +- **WHEN** an authenticated Journal user triggers an error +- **THEN** the Sentry event SHALL include the user's ID and username + +#### Scenario: Journal error without user context +- **WHEN** an unauthenticated visitor triggers an error +- **THEN** the Sentry event SHALL have no user context (Sentry.setUser(null)) + +#### Scenario: Planner error includes session ID +- **WHEN** an error occurs during a Planner session +- **THEN** the Sentry event SHALL include a `session_id` tag with the active session ID + +#### Scenario: Route-level performance traces +- **WHEN** a user navigates between routes in either app +- **THEN** Sentry SHALL create a transaction span named after the route pattern (e.g., `/routes/:id`) + +#### Scenario: Source maps not served to clients +- **WHEN** a client requests a `.map` file from the production server +- **THEN** the server SHALL return 404 (source maps are uploaded to Sentry during build, not shipped in the bundle)