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": "Source parity and deterministic replay tests confirm ordering is caller-controlled and not enforced in runtime projector path.",
"revisedRootCause": "Projection pipeline does not reorder out-of-order events by sequence before reduction, contrary to the feature claim."
}

View File

@@ -0,0 +1,81 @@
{
"type": "source",
"module": "findings",
"feature": "ledger-projections",
"runId": "run-001",
"featureFile": "docs/features/unchecked/findings/ledger-projections.md",
"capturedAtUtc": "2026-02-11T19:20:18.5538983Z",
"files": [
{
"path": "src/Findings/StellaOps.Findings.Ledger/Infrastructure/Projection/LedgerProjectionWorker.cs",
"exists": true
},
{
"path": "src/Findings/StellaOps.Findings.Ledger/Services/LedgerProjectionReducer.cs",
"exists": true
},
{
"path": "src/Findings/StellaOps.Findings.Ledger/Domain/ProjectionModels.cs",
"exists": true
},
{
"path": "src/Findings/StellaOps.Findings.Ledger/Hashing/ProjectionHashing.cs",
"exists": true
},
{
"path": "src/Findings/StellaOps.Findings.Ledger/Infrastructure/IFindingProjectionRepository.cs",
"exists": true
},
{
"path": "src/Findings/StellaOps.Findings.Ledger/Infrastructure/Postgres/PostgresFindingProjectionRepository.cs",
"exists": true
},
{
"path": "src/Findings/__Tests/StellaOps.Findings.Ledger.Tests/LedgerProjectionReducerTests.cs",
"exists": true
},
{
"path": "src/Findings/StellaOps.Findings.Ledger.Tests/ProjectionHashingTests.cs",
"exists": true
}
],
"missingFiles": [
],
"classDeclarations": [
{
"symbol": "LedgerProjectionWorker",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger\\Infrastructure\\Projection\\LedgerProjectionWorker.cs:16:public sealed class LedgerProjectionWorker : BackgroundService"
},
{
"symbol": "LedgerProjectionReducer",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger\\Services\\LedgerProjectionReducer.cs:10:public static class LedgerProjectionReducer"
},
{
"symbol": "ProjectionModels",
"found": false,
"evidence": {
}
},
{
"symbol": "ProjectionHashing",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger\\Hashing\\ProjectionHashing.cs:7:public static class ProjectionHashing"
},
{
"symbol": "IFindingProjectionRepository",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger\\Infrastructure\\IFindingProjectionRepository.cs:17:public interface IFindingProjectionRepository"
},
{
"symbol": "PostgresFindingProjectionRepository",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger\\Infrastructure\\Postgres\\PostgresFindingProjectionRepository.cs:14:public sealed class PostgresFindingProjectionRepository : IFindingProjectionRepository"
}
],
"sourceVerified": true,
"verdict": "pass"
}

View File

@@ -0,0 +1,20 @@
{
"type": "build_and_test",
"capturedAtUtc": "2026-02-11T19:25:39.6286983Z",
"commandsFile": "docs/qa/feature-checks/runs/findings/ledger-projections/run-001/tier1-commands.json",
"projects": [
"src/Findings/StellaOps.Findings.Ledger/StellaOps.Findings.Ledger.csproj",
"src/Findings/StellaOps.Findings.Ledger.WebService/StellaOps.Findings.Ledger.WebService.csproj",
"src/Findings/__Tests/StellaOps.Findings.Ledger.Tests/StellaOps.Findings.Ledger.Tests.csproj",
"src/Findings/StellaOps.Findings.Ledger.Tests/StellaOps.Findings.Ledger.Tests.csproj"
],
"buildResult": "pass",
"testResult": "pass",
"warnings": [
"Microsoft.Testing.Platform warning MTP0001 indicates legacy VSTest filter arguments are ignored in this environment; full test assemblies executed and passed."
],
"errors": [
],
"verdict": "pass"
}

View File

@@ -0,0 +1,38 @@
[
{
"name": "build-ledger-lib",
"command": "dotnet build src/Findings/StellaOps.Findings.Ledger/StellaOps.Findings.Ledger.csproj -c Release --nologo",
"exitCode": 0,
"startedAtUtc": "2026-02-11T19:20:31.1149504Z",
"finishedAtUtc": "2026-02-11T19:20:32.7621218Z",
"summary": "Build succeeded.",
"log": "docs\\qa\\feature-checks\\runs\\findings\\ledger-projections\\run-001\\build-ledger-lib.log"
},
{
"name": "build-webservice",
"command": "dotnet build src/Findings/StellaOps.Findings.Ledger.WebService/StellaOps.Findings.Ledger.WebService.csproj -c Release --nologo",
"exitCode": 0,
"startedAtUtc": "2026-02-11T19:20:32.8011417Z",
"finishedAtUtc": "2026-02-11T19:20:39.7585976Z",
"summary": "Build succeeded.",
"log": "docs\\qa\\feature-checks\\runs\\findings\\ledger-projections\\run-001\\build-webservice.log"
},
{
"name": "test-underscore-projection",
"command": "dotnet test src/Findings/__Tests/StellaOps.Findings.Ledger.Tests/StellaOps.Findings.Ledger.Tests.csproj -c Release --nologo --filter \"FullyQualifiedName~LedgerProjectionReducerTests\"",
"exitCode": 0,
"startedAtUtc": "2026-02-11T19:20:39.7635726Z",
"finishedAtUtc": "2026-02-11T19:20:53.9309447Z",
"summary": " Passed! - Failed: 0, Passed: 141, Skipped: 0, Total: 141, Duration: 2s 120ms - StellaOps.Findings.Ledger.Tests.dll (net10.0|x64)",
"log": "docs\\qa\\feature-checks\\runs\\findings\\ledger-projections\\run-001\\test-underscore-projection.log"
},
{
"name": "test-projection-hashing",
"command": "dotnet test src/Findings/StellaOps.Findings.Ledger.Tests/StellaOps.Findings.Ledger.Tests.csproj -c Release --nologo --filter \"FullyQualifiedName~ProjectionHashingTests\"",
"exitCode": 0,
"startedAtUtc": "2026-02-11T19:20:53.9371834Z",
"finishedAtUtc": "2026-02-11T19:21:10.7752721Z",
"summary": " Passed! - Failed: 0, Passed: 77, Skipped: 0, Total: 77, Duration: 5s 293ms - StellaOps.Findings.Ledger.Tests.dll (net10.0|x64)",
"log": "docs\\qa\\feature-checks\\runs\\findings\\ledger-projections\\run-001\\test-projection-hashing.log"
}
]

View File

@@ -0,0 +1,20 @@
[
{
"name": "tier2-projection-reducer-behavior",
"command": "dotnet test src/Findings/__Tests/StellaOps.Findings.Ledger.Tests/StellaOps.Findings.Ledger.Tests.csproj -c Release --no-build --nologo --filter \"FullyQualifiedName~LedgerProjectionReducerTests\"",
"exitCode": 0,
"startedAtUtc": "2026-02-11T19:23:45.0831508Z",
"finishedAtUtc": "2026-02-11T19:23:47.9529049Z",
"summary": "Passed! - Failed: 0, Passed: 141, Skipped: 0, Total: 141, Duration: 1s 858ms - StellaOps.Findings.Ledger.Tests.dll (net10.0|x64)",
"log": "docs\\qa\\feature-checks\\runs\\findings\\ledger-projections\\run-001\\tier2-projection-reducer-behavior.log"
},
{
"name": "tier2-projection-replay-and-ordering",
"command": "dotnet test src/Findings/StellaOps.Findings.Ledger.Tests/StellaOps.Findings.Ledger.Tests.csproj -c Release --no-build --nologo --filter \"FullyQualifiedName~LedgerReplayDeterminismTests|FullyQualifiedName~FindingsLedgerIntegrationTests\"",
"exitCode": 0,
"startedAtUtc": "2026-02-11T19:23:52.5137514Z",
"finishedAtUtc": "2026-02-11T19:23:57.9332333Z",
"summary": "Passed! - Failed: 0, Passed: 77, Skipped: 0, Total: 77, Duration: 4s 399ms - StellaOps.Findings.Ledger.Tests.dll (net10.0|x64)",
"log": "docs\\qa\\feature-checks\\runs\\findings\\ledger-projections\\run-001\\tier2-projection-replay-and-ordering.log"
}
]

View File

@@ -0,0 +1,34 @@
{
"type": "integration",
"capturedAtUtc": "2026-02-11T19:25:50.1971698Z",
"commandsFile": "docs/qa/feature-checks/runs/findings/ledger-projections/run-001/tier2-commands.json",
"tests": [
{
"behaviorObserved": [
"Reducer builds projection state, history entry, and action entry from finding events.",
"Projection hash generation remains deterministic for equivalent projection content."
],
"result": "pass",
"name": "projection-reducer-behavior",
"log": "tier2-projection-reducer-behavior.log",
"behaviorGap": null
},
{
"behaviorObserved": [
"Replay/integration test suite validates deterministic projection for consistently ordered sequences.",
"Contract/integration surfaces execute successfully under module test harness."
],
"result": "pass",
"name": "projection-replay-and-ordering",
"log": "tier2-projection-replay-and-ordering.log",
"behaviorGap": "Out-of-order delivery handling claimed by feature is not implemented in runtime reducer/worker logic."
}
],
"behaviorVerified": [
"Projection reduction and deterministic cycle hashing behavior execute successfully in Tier 2 integration surfaces."
],
"behaviorMissing": [
"Feature claim \"projection reducer correctly handles out-of-order event delivery by ordering events by sequence\" is not satisfied: runtime flow consumes batch order directly (LedgerProjectionWorker foreach over batch) and applies events without sequence reordering before LedgerProjectionReducer.Reduce."
],
"verdict": "fail"
}

View File

@@ -0,0 +1,34 @@
{
"type": "integration",
"capturedAtUtc": "2026-02-11T19:25:50.1971698Z",
"commandsFile": "docs/qa/feature-checks/runs/findings/ledger-projections/run-001/tier2-commands.json",
"tests": [
{
"behaviorObserved": [
"Reducer builds projection state, history entry, and action entry from finding events.",
"Projection hash generation remains deterministic for equivalent projection content."
],
"result": "pass",
"name": "projection-reducer-behavior",
"log": "tier2-projection-reducer-behavior.log",
"behaviorGap": null
},
{
"behaviorObserved": [
"Replay/integration test suite validates deterministic projection for consistently ordered sequences.",
"Contract/integration surfaces execute successfully under module test harness."
],
"result": "pass",
"name": "projection-replay-and-ordering",
"log": "tier2-projection-replay-and-ordering.log",
"behaviorGap": "Out-of-order delivery handling claimed by feature is not implemented in runtime reducer/worker logic."
}
],
"behaviorVerified": [
"Projection reduction and deterministic cycle hashing behavior execute successfully in Tier 2 integration surfaces."
],
"behaviorMissing": [
"Feature claim \"projection reducer correctly handles out-of-order event delivery by ordering events by sequence\" is not satisfied: runtime flow consumes batch order directly (LedgerProjectionWorker foreach over batch) and applies events without sequence reordering before LedgerProjectionReducer.Reduce."
],
"verdict": "fail"
}

View File

@@ -0,0 +1,10 @@
{
"rootCause": "Projection pipeline does not reorder out-of-order events by sequence before reduction, contrary to the feature claim.",
"category": "missing_code",
"affectedFiles": [
"src/Findings/StellaOps.Findings.Ledger/Infrastructure/Projection/LedgerProjectionWorker.cs",
"src/Findings/StellaOps.Findings.Ledger/Services/LedgerProjectionReducer.cs",
"src/Findings/StellaOps.Findings.Ledger.Tests/LedgerReplayDeterminismTests.cs"
],
"confidence": 0.96
}

View File

@@ -0,0 +1,15 @@
{
"tier": 0,
"feature": "ledger-projections",
"timestamp": "2026-02-15T20:55:00.000Z",
"sourceFiles": [
{"path": "src/Findings/StellaOps.Findings.Ledger/Infrastructure/Projection/LedgerProjectionWorker.cs", "exists": true},
{"path": "src/Findings/StellaOps.Findings.Ledger/Services/LedgerProjectionReducer.cs", "exists": true},
{"path": "src/Findings/StellaOps.Findings.Ledger/Hashing/ProjectionHashing.cs", "exists": true},
{"path": "src/Findings/StellaOps.Findings.Ledger/Infrastructure/IFindingProjectionRepository.cs", "exists": true},
{"path": "src/Findings/StellaOps.Findings.Ledger/Infrastructure/Postgres/PostgresFindingProjectionRepository.cs", "exists": true},
{"path": "src/Findings/__Tests/StellaOps.Findings.Ledger.Tests/LedgerProjectionReducerTests.cs", "exists": true}
],
"missingRatio": 0.0,
"sourceVerified": true
}

View File

@@ -0,0 +1,25 @@
{
"tier": 2,
"feature": "ledger-projections",
"timestamp": "2026-02-15T20:55:00.000Z",
"testProject": "src/Findings/__Tests/StellaOps.Findings.Ledger.Tests/StellaOps.Findings.Ledger.Tests.csproj",
"filter": "All tests (MTP runner ignores VSTest --filter; all 141 ran). Relevant: LedgerProjectionReducerTests (3 tests).",
"testsRun": 141,
"testsPassed": 141,
"testsFailed": 0,
"rawOutput": "Run tests: StellaOps.Findings.Ledger.Tests.dll [net10.0|x64]\nPassed! - Failed: 0, Passed: 141, Skipped: 0, Total: 141, Duration: 2s 891ms",
"assertionQuality": "deep",
"codeReviewFindings": {
"LedgerProjectionReducer": "FULLY IMPLEMENTED static reducer. Reduce() takes a LedgerEventRecord, optional current FindingProjection, and PolicyEvaluationResult. Correctly determines status, severity, risk scores, merges labels (add/remove), determines explain references, creates history entries and triage action entries. Computes deterministic CycleHash via ProjectionHashing.",
"LedgerProjectionWorker": "FULLY IMPLEMENTED BackgroundService. ExecuteAsync loads checkpoint, reads event batches, applies each event via ApplyAsync (get current projection -> evaluate policy -> reduce -> upsert projection + insert history + insert action + save checkpoint). Includes telemetry, incident diagnostics, error handling, and batch metrics.",
"OutOfOrderHandling": "CONFIRMED MISSING. LedgerProjectionWorker iterates 'foreach (var record in batch)' at line 86 without sorting by sequence number. The batch is processed in received order. LedgerProjectionReducer.Reduce is a pure function that processes one event at a time and does not perform ordering. The feature claim for 'out-of-order event delivery by ordering events by sequence number before applying' is NOT satisfied.",
"LedgerProjectionReducerTests": "3 tests with DEEP assertions: (1) Reduce_WhenFindingCreated verifies status, severity, labels, explainRef, rationale, cycleHash, and hash determinism. (2) Reduce_StatusChange verifies status transition, comment extraction, action entry creation. (3) Reduce_LabelUpdates verifies label merge (add/update/remove). All use FluentAssertions with specific value checks.",
"ProjectionHashing": "Computes deterministic cycle hashes for projection state, enabling replay consistency verification.",
"PostgresFindingProjectionRepository": "Full Postgres persistence implementation for projections with upsert, checkpoint, history, and action operations."
},
"classification": "not_implemented",
"classificationRationale": "Previous run-001 classification of not_implemented is RECONSIDERED. The projection pipeline (worker + reducer + repository + hashing) is substantially implemented and well-tested. The ONLY gap is out-of-order event handling: LedgerProjectionWorker processes events in batch order without sequence reordering. All other projection claims (materialize events to read models, deterministic hashing, catch-up from checkpoint, policy evaluation) are implemented. However, since the feature file specifically claims out-of-order handling and this is not satisfied, the not_implemented classification is borderline. RECOMMEND reclassifying to 'partially_implemented' and moving feature file back to the appropriate location, since ~80% of the feature surface is functional.",
"reclassificationWarranted": true,
"suggestedStatus": "not_implemented",
"notes": "The projection system is the most complete of the 4 investigated features. The reducer is well-tested with deep assertions. The worker correctly implements the projection loop with checkpoint management, telemetry, and error handling. The single gap (out-of-order sequence reordering before reduce) is a specific claimed behavior that is not enforced. If out-of-order handling were removed from the feature claims, this would pass. Current classification as not_implemented is slightly harsh but technically correct per the feature file's own E2E test plan item 4."
}