feat(ui): reconnect release investigation routes [SPRINT-022]

Mount deploy-diff, change-trace, and timeline under /releases/investigation
as bounded secondary routes. Timeline uses correlation-based model to avoid
collision with shipped run-workspace tab.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
master
2026-03-08 19:25:38 +02:00
parent 1b934ad47a
commit 38cbdb79dd
7 changed files with 274 additions and 2 deletions

View File

@@ -0,0 +1,36 @@
# Release Investigation Routes Reconnection
## Module
Web
## Status
IMPLEMENTED
## Sprint
SPRINT_20260308_022_FE_unreachable_release_investigation_routes
## Description
Integrated disconnected release-investigation route families (timeline, deploy-diff, change-trace) into the canonical Releases product under a bounded `/releases/investigation/` prefix. The investigation timeline is mounted as a secondary route to avoid colliding with the shipped run workspace tab at `/releases/runs/:runId/timeline`.
## Canonical URL Contract
- `/releases/investigation/timeline` - Investigation timeline overview
- `/releases/investigation/timeline/:correlationId` - Correlated event drill-in
- `/releases/investigation/deploy-diff` - Deployment diff (query params: from, to)
- `/releases/investigation/change-trace` - Change trace viewer
- `/releases/investigation/change-trace/:traceId` - Specific trace detail
## Timeline Decision
**Bounded-secondary-route** (not absorb-into-run-workspace). The investigation timeline is a correlation-based tool that spans multiple services by correlationId, which is conceptually different from the run workspace's timeline tab showing run execution flow. Mounting it under `/releases/investigation/timeline` avoids URL collision and keeps both capabilities distinct.
## Implementation Details
- **Route file**: `src/Web/StellaOps.Web/src/app/routes/releases.routes.ts`
- Added three `loadChildren` entries under `investigation/` prefix
- **Feature routes updated**:
- `src/Web/StellaOps.Web/src/app/features/timeline/timeline.routes.ts` - Added breadcrumb, title, sprint ref
- `src/Web/StellaOps.Web/src/app/features/deploy-diff/deploy-diff.routes.ts` - Updated canonical URL reference
- `src/Web/StellaOps.Web/src/app/features/change-trace/change-trace.routes.ts` - Added breadcrumb, title, sprint ref
- **Tests**: `src/Web/StellaOps.Web/src/app/routes/releases.routes.spec.ts`
## Deliberately Excluded Legacy Behaviors
- The old timeline route at `/timeline` (standalone top-level) is not revived
- Direct mounting at `/releases/runs/:runId/timeline` for the investigation timeline is explicitly avoided (that path is owned by the run workspace)