documentation cleanse, sprints work and planning. remaining non EF DAL migration to EF

This commit is contained in:
master
2026-02-25 01:24:07 +02:00
parent b07d27772e
commit 4db038123b
9090 changed files with 4836 additions and 2909 deletions

View File

@@ -0,0 +1,5 @@
{
"approved": true,
"reason": "Reproduced in live API replay with deterministic requests and then validated with failing-first endpoint integration tests.",
"revisedRootCause": "Cross-request operation state required singleton orchestrators and endpoints needed real builder wiring plus input validation."
}

View File

@@ -0,0 +1,17 @@
{
"filesModified": [
"src/Timeline/__Libraries/StellaOps.Timeline.Core/ServiceCollectionExtensions.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/TimelineEndpoints.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ReplayEndpoints.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ExportEndpoints.cs",
"src/Timeline/__Tests/StellaOps.Timeline.WebService.Tests/TimelineApiIntegrationTests.cs"
],
"testsAdded": [
"GetTimeline_ReturnsBadRequest_WhenFromHlcIsInvalid",
"ReplayStatus_IsReachableAfterReplayInitiation",
"ExportStatus_ReturnsNotFound_ForUnknownExportId",
"ExportDownload_ReturnsNotFound_ForUnknownExportId",
"ExportLifecycle_DownloadReturnsGeneratedBundle"
],
"description": "Converted replay/export operation coordinators to singleton lifetimes, replaced export endpoint stubs with ITimelineBundleBuilder-backed behavior, added strict HLC/mode/format validation, and added API-boundary regression tests."
}

View File

@@ -0,0 +1,13 @@
{
"previousFailures": [
"Replay status endpoint returned 404 immediately after a successful initiate request.",
"Export status/download returned fake 200 responses for unknown export IDs.",
"Invalid fromHlc query returned 500 due unhandled parse exception."
],
"retestResults": [
"Timeline Core tests: 7/7 pass.",
"Timeline WebService tests: 19/19 pass.",
"Live API replay now returns 400 (invalid HLC), 202->200 replay lifecycle, and 404 for unknown export status/download."
],
"verdict": "pass"
}

View File

@@ -0,0 +1,23 @@
{
"type": "source",
"module": "timeline",
"feature": "unified-event-timeline-service",
"runId": "run-002",
"dateUtc": "2026-02-10T12:35:20Z",
"filesChecked": [
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/TimelineEndpoints.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ReplayEndpoints.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ExportEndpoints.cs",
"src/Timeline/__Libraries/StellaOps.Timeline.Core/ServiceCollectionExtensions.cs",
"src/Timeline/__Tests/StellaOps.Timeline.WebService.Tests/TimelineApiIntegrationTests.cs"
],
"found": [
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/TimelineEndpoints.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ReplayEndpoints.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ExportEndpoints.cs",
"src/Timeline/__Libraries/StellaOps.Timeline.Core/ServiceCollectionExtensions.cs",
"src/Timeline/__Tests/StellaOps.Timeline.WebService.Tests/TimelineApiIntegrationTests.cs"
],
"missing": [],
"verdict": "pass"
}

View File

@@ -0,0 +1,17 @@
{
"type": "build",
"module": "timeline",
"feature": "unified-event-timeline-service",
"runId": "run-002",
"dateUtc": "2026-02-10T12:35:20Z",
"projects": [
"src/Timeline/__Tests/StellaOps.Timeline.Core.Tests/StellaOps.Timeline.Core.Tests.csproj",
"src/Timeline/__Tests/StellaOps.Timeline.WebService.Tests/StellaOps.Timeline.WebService.Tests.csproj"
],
"buildResult": "pass",
"testResult": "pass",
"testsRun": 26,
"testsPassed": 26,
"testsFailed": 0,
"errors": []
}

View File

@@ -0,0 +1,41 @@
{
"type": "api",
"module": "timeline",
"feature": "unified-event-timeline-service",
"runId": "run-002",
"dateUtc": "2026-02-10T12:35:20Z",
"baseUrl": "https://127.0.0.1:10240",
"requests": [
{
"description": "Invalid fromHlc returns client error instead of 500",
"method": "GET",
"path": "/api/v1/timeline/nonexistent-correlation?fromHlc=not-a-valid-hlc&toHlc=1:0:n1",
"expectedStatus": 400,
"actualStatus": 400,
"assertion": "response reports invalid fromHlc format",
"result": "pass",
"evidence": "\"Invalid fromHlc value 'not-a-valid-hlc'. Expected format '{physicalTime13}-{nodeId}-{counter6}'.\""
},
{
"description": "Replay initiation remains queryable across requests",
"method": "POST/GET",
"path": "/api/v1/timeline/{correlationId}/replay -> /api/v1/timeline/replay/{replayId}",
"expectedStatus": "202 then 200",
"actualStatus": "202 then 200",
"assertion": "status endpoint returns operation payload with deterministic fields",
"result": "pass",
"evidence": "init replayId=db405fdba48f435b, status=COMPLETED, deterministicMatch=true"
},
{
"description": "Unknown export operations return not found",
"method": "GET",
"path": "/api/v1/timeline/export/abcdef1234567890 and /download",
"expectedStatus": "404/404",
"actualStatus": "404/404",
"assertion": "status/download require existing export operation",
"result": "pass",
"evidence": "both endpoints returned HTTP 404"
}
],
"verdict": "pass"
}

View File

@@ -0,0 +1,12 @@
{
"rootCause": "Timeline API used request-scoped replay/export coordinators with in-memory operation state, stubbed export status/download handlers, and direct HLC Parse that surfaced invalid user input as server errors.",
"category": "missing_code",
"affectedFiles": [
"src/Timeline/__Libraries/StellaOps.Timeline.Core/ServiceCollectionExtensions.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/TimelineEndpoints.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ReplayEndpoints.cs",
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ExportEndpoints.cs",
"src/Timeline/__Tests/StellaOps.Timeline.WebService.Tests/TimelineApiIntegrationTests.cs"
],
"confidence": 0.97
}