stabilize tests

This commit is contained in:
master
2026-02-01 21:37:40 +02:00
parent 55744f6a39
commit 5d5e80b2e4
6435 changed files with 33984 additions and 13802 deletions

View File

@@ -1,4 +1,4 @@
# Findings Ledger · AGENTS.md
# Findings Ledger ?? AGENTS.md
## Working directory
- Primary path: `src/Findings/StellaOps.Findings.Ledger` (and sibling test project under `src/Findings/__Tests` when exercising tests).
@@ -6,7 +6,7 @@
## Roles covered
- Backend engineer: .NET 10/C# for ledger services, projections, provenance links, Merkle anchoring.
- QA / determinism: replay harness, property/integration tests, load testing at 5M findings/tenant.
- QA / determinism: replay harness, property/integration tests, load testing at ???5M findings/tenant.
- Observability / DevOps: metrics, logs, dashboards, alert wiring, deployment/backup/offline kits.
## Required reading before DOING
@@ -19,8 +19,8 @@
- `docs/modules/findings-ledger/airgap-provenance.md`
- `docs/modules/findings-ledger/schema.md` (sealed-mode and Merkle root structure)
- `docs/modules/findings-ledger/workflow-inference.md` (projection rules)
- Observability policy: `docs/observability/policy.md`.
- Triage & Unknowns (Alerts/Decisions): `docs/implplan/SPRINT_3602_0001_0001_evidence_decision_apis.md`.
- Observability policy: `docs/modules/telemetry/guides/policy.md`.
- Triage & Unknowns (Alerts/Decisions): `docs-archived/implplan/SPRINT_3602_0001_0001_evidence_decision_apis.md`.
## Triage Alerts & Decisions (SPRINT_3602)
- REST endpoints live in `src/Findings/StellaOps.Findings.Ledger.WebService/Program.cs` and must remain deterministic and tenant-scoped:
@@ -37,7 +37,7 @@
- Evidence hashes captured at decision time must be stable and ordered deterministically.
## Execution rules
- Update sprint `Delivery Tracker` status when you start/stop/finish: TODO DOING DONE/BLOCKED.
- Update sprint `Delivery Tracker` status when you start/stop/finish: TODO ??? DOING ??? DONE/BLOCKED.
- If a contract/design decision is missing, mark the task BLOCKED in the sprint, add the decision needed under **Decisions & Risks**, then continue with other unblocked tasks.
- Keep outputs deterministic: UTC ISO-8601 timestamps, stable ordering, seeded property tests, repeatable replay runs.
@@ -54,7 +54,7 @@
- Load tests should record CPU/memory budgets as part of run artifacts; keep seeds and fixtures under version control.
## Observability & operations
- Metrics/logs/traces via OpenTelemetry OTLP Prometheus/Tempo/Loki; respect `observability.enabled` flag.
- Metrics/logs/traces via OpenTelemetry ??? OTLP ??? Prometheus/Tempo/Loki; respect `observability.enabled` flag.
- Dashboards: include Grafana JSON exports under `offline/telemetry/dashboards/ledger`.
- Alerts: wire as documented in `observability.md`; for air-gap emit to syslog + CLI incident scripts.
- Deployments: follow `deployment.md` for Helm/Compose overlays, migrations, backup/restore, and offline kits.
@@ -69,3 +69,4 @@
- Metrics/logs follow approved names and labels; dashboards/alerts updated if schemas change.
- Replay harness run (or planned) for determinism-impacting changes; attach/report results.
- Docs updated when contracts or workflows change (module docs, observability policy, sprint Decisions & Risks).

View File

@@ -9,3 +9,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0344-T | DONE | Revalidated 2026-01-07; test coverage audit for Findings.Ledger.Tests. |
| AUDIT-0344-A | DONE | Waived (test project; revalidated 2026-01-07). |
| LEDGER-TESTS-0001 | DOING | Stabilize Findings Ledger WebService test harness (config/auth + stubs). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,8 +1,9 @@
namespace StellaOps.Findings.Ledger.WebService.Contracts;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure.Snapshot;
namespace StellaOps.Findings.Ledger.WebService.Contracts;
// === Snapshot Contracts ===
/// <summary>

View File

@@ -3,11 +3,12 @@
// Sprint: SPRINT_8200_0012_0004_api_endpoints
// Task: API-8200-003 to API-8200-030 - Scoring API endpoints
using System.Diagnostics;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using StellaOps.Findings.Ledger.WebService.Contracts;
using StellaOps.Findings.Ledger.WebService.Services;
using System.Diagnostics;
namespace StellaOps.Findings.Ledger.WebService.Endpoints;

View File

@@ -1,6 +1,7 @@
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.WebService.Contracts;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.WebService.Mappings;

View File

@@ -1,10 +1,9 @@
#pragma warning disable CS0436 // Type conflicts with imported type - local Program class is intentionally used
using Domain = StellaOps.Findings.Ledger.Domain;
using Microsoft.AspNetCore.Diagnostics;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using System.Globalization;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Options;
using Serilog;
using Serilog.Events;
@@ -12,32 +11,34 @@ using StellaOps.Auth.Abstractions;
using StellaOps.Auth.ServerIntegration;
using StellaOps.Configuration;
using StellaOps.DependencyInjection;
using StellaOps.Findings.Ledger;
using StellaOps.Findings.Ledger.Domain;
using Domain = StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure;
using StellaOps.Findings.Ledger.Infrastructure.AirGap;
using StellaOps.Findings.Ledger.Infrastructure.Exports;
using StellaOps.Findings.Ledger.Infrastructure.Merkle;
using StellaOps.Findings.Ledger.Infrastructure.Policy;
using StellaOps.Findings.Ledger.Infrastructure.Postgres;
using StellaOps.Findings.Ledger.Infrastructure.Projection;
using StellaOps.Findings.Ledger.Infrastructure.Policy;
using StellaOps.Findings.Ledger.Infrastructure.Exports;
using StellaOps.Findings.Ledger.Options;
using StellaOps.Findings.Ledger.Services;
using StellaOps.Findings.Ledger.WebService.Contracts;
using StellaOps.Findings.Ledger.WebService.Mappings;
using StellaOps.Findings.Ledger.WebService.Services;
using StellaOps.Findings.Ledger.WebService.Endpoints;
using StellaOps.Telemetry.Core;
using StellaOps.Findings.Ledger.Services.Security;
using StellaOps.Findings.Ledger;
using StellaOps.Findings.Ledger.Observability;
using StellaOps.Findings.Ledger.OpenApi;
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Options;
using StellaOps.Findings.Ledger.Services;
using StellaOps.Findings.Ledger.Services.Incident;
using StellaOps.Findings.Ledger.Services.Security;
using StellaOps.Findings.Ledger.WebService.Contracts;
using StellaOps.Findings.Ledger.WebService.Endpoints;
using StellaOps.Findings.Ledger.WebService.Mappings;
using StellaOps.Findings.Ledger.WebService.Services;
using StellaOps.Router.AspNet;
using StellaOps.Telemetry.Core;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
using System.Threading.RateLimiting;
using StellaOps.Findings.Ledger.Services.Incident;
using StellaOps.Router.AspNet;
const string LedgerWritePolicy = "ledger.events.write";
const string LedgerExportPolicy = "ledger.export.read";

View File

@@ -1,12 +1,13 @@
using System.Globalization;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Npgsql;
using NpgsqlTypes;
using StellaOps.Findings.Ledger.Infrastructure.Exports;
using StellaOps.Findings.Ledger.Infrastructure.Postgres;
using StellaOps.Findings.Ledger.WebService.Contracts;
using System.Globalization;
using System.Text;
using System.Text.Json;
namespace StellaOps.Findings.Ledger.WebService.Services;

View File

@@ -1,11 +1,12 @@
using System.Globalization;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using Npgsql;
using NpgsqlTypes;
using StellaOps.Findings.Ledger.Infrastructure.Exports;
using StellaOps.Findings.Ledger.Infrastructure.Postgres;
using StellaOps.Findings.Ledger.WebService.Contracts;
using System.Globalization;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.WebService.Services;

View File

@@ -3,14 +3,15 @@
// Sprint: SPRINT_20260112_004_BE_findings_scoring_attested_reduction (EWS-API-002)
// Task: Implement IFindingEvidenceProvider to populate anchor metadata
using Microsoft.Extensions.Logging;
using StellaOps.Signals.EvidenceWeightedScore;
using StellaOps.Signals.EvidenceWeightedScore.Normalizers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using StellaOps.Signals.EvidenceWeightedScore;
using StellaOps.Signals.EvidenceWeightedScore.Normalizers;
namespace StellaOps.Findings.Ledger.WebService.Services;

View File

@@ -3,12 +3,13 @@
// Sprint: SPRINT_8200_0012_0004_api_endpoints
// Task: API-8200-003, API-8200-004 - Implement scoring service
using System.Diagnostics;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Options;
using StellaOps.Findings.Ledger.WebService.Contracts;
using StellaOps.Signals.EvidenceWeightedScore;
using StellaOps.Signals.EvidenceWeightedScore.Normalizers;
using System.Diagnostics;
namespace StellaOps.Findings.Ledger.WebService.Services;

View File

@@ -1,5 +1,6 @@
using System.Collections.Concurrent;
using StellaOps.Findings.Ledger.WebService.Contracts;
using System.Collections.Concurrent;
namespace StellaOps.Findings.Ledger.WebService.Services;

View File

@@ -1,10 +1,11 @@
using StellaOps.Findings.Ledger.WebService.Endpoints;
using StellaOps.Scanner.Analyzers.Native.RuntimeCapture.Timeline;
using StellaOps.Scanner.Reachability.MiniMap;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using StellaOps.Findings.Ledger.WebService.Endpoints;
using StellaOps.Scanner.Analyzers.Native.RuntimeCapture.Timeline;
using StellaOps.Scanner.Reachability.MiniMap;
namespace StellaOps.Findings.Ledger.WebService.Services;

View File

@@ -1,5 +1,6 @@
using System.Collections.Concurrent;
using StellaOps.Findings.Ledger.WebService.Contracts;
using System.Collections.Concurrent;
namespace StellaOps.Findings.Ledger.WebService.Services;

View File

@@ -1,11 +1,12 @@
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using StellaOps.Findings.Ledger.WebService.Contracts;
using System.Collections.Concurrent;
using System.Net.Http.Json;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using StellaOps.Findings.Ledger.WebService.Contracts;
namespace StellaOps.Findings.Ledger.WebService.Services;

View File

@@ -9,3 +9,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0345-T | DONE | Revalidated 2026-01-07; test coverage audit for Findings.Ledger.WebService. |
| AUDIT-0345-A | TODO | Pending approval (non-test project; revalidated 2026-01-07). |
| LEDGER-TESTS-0001 | DOING | Stabilize Findings Ledger WebService test harness (config/auth + stubs). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,5 +1,6 @@
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Infrastructure.Attestation;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Domain;

View File

@@ -1,5 +1,6 @@
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Domain;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Hashing;

View File

@@ -1,8 +1,9 @@
using Microsoft.AspNetCore.WebUtilities;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.AspNetCore.WebUtilities;
namespace StellaOps.Findings.Ledger.Infrastructure.Exports;

View File

@@ -1,5 +1,6 @@
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Domain;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Infrastructure;

View File

@@ -1,6 +1,7 @@
using StellaOps.Findings.Ledger.Domain;
using System.Collections.Concurrent;
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Domain;
namespace StellaOps.Findings.Ledger.Infrastructure.InMemory;

View File

@@ -1,6 +1,7 @@
using System.Threading.Channels;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Observability;
using System.Threading.Channels;
namespace StellaOps.Findings.Ledger.Infrastructure.Merkle;

View File

@@ -1,5 +1,4 @@
using System.Collections.Concurrent;
using System.Diagnostics;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
@@ -7,6 +6,8 @@ using StellaOps.Cryptography;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Observability;
using StellaOps.Findings.Ledger.Options;
using System.Collections.Concurrent;
using System.Diagnostics;
using TimeProvider = System.TimeProvider;
namespace StellaOps.Findings.Ledger.Infrastructure.Merkle;

View File

@@ -1,5 +1,6 @@
using System.Text;
using StellaOps.Cryptography;
using System.Text;
namespace StellaOps.Findings.Ledger.Infrastructure.Merkle;

View File

@@ -1,5 +1,6 @@
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Domain;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Infrastructure.Policy;

View File

@@ -1,7 +1,8 @@
using System.Text.Json;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Domain;
using System.Text.Json;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Infrastructure.Policy;

View File

@@ -1,12 +1,13 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Options;
using System.Net.Http;
using System.Net.Http.Json;
using System.Security.Cryptography;
using System.Text.Json;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Options;
namespace StellaOps.Findings.Ledger.Infrastructure.Policy;

View File

@@ -1,8 +1,9 @@
using System.Text.Json.Nodes;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Options;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Infrastructure.Policy;

View File

@@ -1,9 +1,10 @@
using System.Data;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Npgsql;
using StellaOps.Findings.Ledger.Observability;
using StellaOps.Findings.Ledger.Options;
using System.Data;
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;

View File

@@ -1,9 +1,10 @@
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using Npgsql;
using NpgsqlTypes;
using StellaOps.Findings.Ledger.Hashing;
using StellaOps.Findings.Ledger.Infrastructure.AirGap;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;

View File

@@ -1,9 +1,10 @@
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Npgsql;
using NpgsqlTypes;
using StellaOps.Findings.Ledger.Infrastructure.Attestation;
using System.Text;
using System.Text.Json;
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;

View File

@@ -1,12 +1,13 @@
using System.Text;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using Npgsql;
using NpgsqlTypes;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure.Attestation;
using StellaOps.Findings.Ledger.Hashing;
using StellaOps.Findings.Ledger.Infrastructure.Attestation;
using StellaOps.Findings.Ledger.Services;
using System.Text;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;

View File

@@ -1,9 +1,10 @@
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using Npgsql;
using NpgsqlTypes;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Hashing;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;

View File

@@ -1,8 +1,9 @@
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using Npgsql;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Hashing;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;

View File

@@ -1,11 +1,12 @@
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;
using System.Text;
using System.Text.Json;
using Npgsql;
using NpgsqlTypes;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure.Snapshot;
using System.Text;
using System.Text.Json;
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;
/// <summary>
/// PostgreSQL implementation of snapshot repository.

View File

@@ -1,11 +1,12 @@
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;
using System.Diagnostics;
using System.Text;
using System.Text.Json;
using Npgsql;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure.Snapshot;
using System.Diagnostics;
using System.Text;
using System.Text.Json;
namespace StellaOps.Findings.Ledger.Infrastructure.Postgres;
/// <summary>
/// PostgreSQL implementation of time-travel repository.

View File

@@ -1,14 +1,15 @@
using System.Diagnostics;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure;
using StellaOps.Findings.Ledger.Infrastructure.Policy;
using StellaOps.Findings.Ledger.Options;
using StellaOps.Findings.Ledger.Observability;
using StellaOps.Findings.Ledger.Options;
using StellaOps.Findings.Ledger.Services;
using StellaOps.Findings.Ledger.Services.Incident;
using System.Diagnostics;
namespace StellaOps.Findings.Ledger.Infrastructure.Projection;

View File

@@ -1,6 +1,7 @@
using StellaOps.Findings.Ledger.Domain;
namespace StellaOps.Findings.Ledger.Infrastructure.Snapshot;
using StellaOps.Findings.Ledger.Domain;
/// <summary>
/// Repository interface for ledger snapshot persistence.

View File

@@ -1,5 +1,6 @@
using System.Diagnostics;
using StellaOps.Findings.Ledger.Domain;
using System.Diagnostics;
namespace StellaOps.Findings.Ledger.Observability;

View File

@@ -1,9 +1,10 @@
using System.Diagnostics;
using System.Globalization;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure.Exports;
using StellaOps.Findings.Ledger.Services.Incident;
using System.Diagnostics;
using System.Globalization;
namespace StellaOps.Findings.Ledger.Observability;

View File

@@ -5,10 +5,11 @@
// Description: PostgreSQL implementation of observation repository
// -----------------------------------------------------------------------------
using System.Globalization;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Npgsql;
using System.Globalization;
using System.Text.Json;
namespace StellaOps.Findings.Ledger.Observations;

View File

@@ -1,11 +1,12 @@
using System.Globalization;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure;
using StellaOps.Findings.Ledger.Infrastructure.AirGap;
using StellaOps.Findings.Ledger.Observability;
using System.Globalization;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,10 +1,11 @@
using System.Globalization;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure;
using StellaOps.Findings.Ledger.Infrastructure.AirGap;
using StellaOps.Findings.Ledger.Observability;
using System.Globalization;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,7 +1,8 @@
using System.Security.Cryptography;
using System.Text.Json;
using Microsoft.Extensions.Options;
using StellaOps.Findings.Ledger.Options;
using System.Security.Cryptography;
using System.Text.Json;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,7 +1,8 @@
using System.Text;
using Microsoft.Extensions.Options;
using StellaOps.Cryptography;
using StellaOps.Findings.Ledger.Options;
using System.Text;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,9 +1,10 @@
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure;
using StellaOps.Findings.Ledger.Infrastructure.Attestation;
using StellaOps.Findings.Ledger.Observability;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,9 +1,10 @@
using System.Text.Json;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Hashing;
using StellaOps.Findings.Ledger.Infrastructure;
using System.Text.Json;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,10 +1,11 @@
using System.Globalization;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure;
using StellaOps.Findings.Ledger.Infrastructure.AirGap;
using StellaOps.Findings.Ledger.Observability;
using System.Globalization;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,10 +1,11 @@
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure;
using StellaOps.Findings.Ledger.Options;
using StellaOps.Findings.Ledger.Workflow;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,9 +1,10 @@
using System.Collections.Concurrent;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Findings.Ledger.Observability;
using StellaOps.Findings.Ledger.Options;
using StellaOps.Telemetry.Core;
using System.Collections.Concurrent;
namespace StellaOps.Findings.Ledger.Services.Incident;

View File

@@ -1,11 +1,12 @@
using System.Diagnostics;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Hashing;
using StellaOps.Findings.Ledger.Infrastructure;
using StellaOps.Findings.Ledger.Observability;
using StellaOps.Findings.Ledger.Services.Incident;
using System.Diagnostics;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,8 +1,9 @@
using System.Text.Json;
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Hashing;
using StellaOps.Findings.Ledger.Infrastructure.Policy;
using System.Text.Json;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,9 +1,10 @@
using System.Globalization;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Hashing;
using StellaOps.Findings.Ledger.Infrastructure.Exports;
using StellaOps.Findings.Ledger.Observability;
using System.Globalization;
using System.Text.Json.Nodes;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,9 +1,10 @@
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Observability;
using System.Globalization;
using System.Text;
using System.Text.Json;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Observability;
namespace StellaOps.Findings.Ledger.Services;

View File

@@ -1,8 +1,9 @@
using System.Security.Cryptography;
using System.Text;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Options;
using StellaOps.Findings.Ledger.Options;
using System.Security.Cryptography;
using System.Text;
namespace StellaOps.Findings.Ledger.Services.Security;

View File

@@ -1,15 +1,16 @@
namespace StellaOps.Findings.Ledger.Services;
using System.Collections.Generic;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Infrastructure.Snapshot;
using StellaOps.Findings.Ledger.Observability;
using StellaOps.Findings.Ledger.Services.Incident;
using System.Collections.Generic;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
namespace StellaOps.Findings.Ledger.Services;
/// <summary>
/// Service for managing ledger snapshots and time-travel queries.

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0342-M | DONE | Revalidated 2026-01-07; maintainability audit for Findings Ledger. |
| AUDIT-0342-T | DONE | Revalidated 2026-01-07; test coverage audit for Findings Ledger. |
| AUDIT-0342-A | TODO | Pending approval (non-test project; revalidated 2026-01-07). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,7 +1,9 @@
using System.Globalization;
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Hashing;
using System.Globalization;
using System.Text.Json.Nodes;
namespace LedgerReplayHarness;

View File

@@ -1,7 +1,9 @@
using StellaOps.Findings.Ledger.Domain;
using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Domain;
namespace LedgerReplayHarness;

View File

@@ -0,0 +1,8 @@
# LedgerReplayHarness Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/Findings/StellaOps.Findings.Ledger/tools/LedgerReplayHarness/LedgerReplayHarness.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -0,0 +1,8 @@
# StellaOps.Findings.Ledger.ReplayHarness.Tests Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/Findings/__Tests/StellaOps.Findings.Ledger.ReplayHarness.Tests/StellaOps.Findings.Ledger.ReplayHarness.Tests.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -9,3 +9,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0343-T | DONE | Revalidated 2026-01-07; test coverage audit for Findings.Ledger.Tests. |
| AUDIT-0343-A | DONE | Waived (test project; revalidated 2026-01-07). |
| LEDGER-TESTS-0001 | DOING | Stabilize Findings Ledger WebService test harness (config/auth + stubs). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -0,0 +1,8 @@
# StellaOps.Findings.Tools.LedgerReplayHarness.Tests Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/Findings/__Tests/StellaOps.Findings.Tools.LedgerReplayHarness.Tests/StellaOps.Findings.Tools.LedgerReplayHarness.Tests.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,9 +1,10 @@
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Hashing;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Text.Json.Nodes;
using StellaOps.Findings.Ledger.Domain;
using StellaOps.Findings.Ledger.Hashing;
namespace LedgerReplayHarness;

View File

@@ -1,5 +1,6 @@
using System.Collections.Concurrent;
using StellaOps.Findings.Ledger.Domain;
using System.Collections.Concurrent;
namespace LedgerReplayHarness;

View File

@@ -1,3 +1,4 @@
using System.Security.Cryptography;
using System.Text;

View File

@@ -1,5 +1,6 @@
using System.CommandLine;
using LedgerReplayHarness;
using System.CommandLine;
var fixtureOption = new Option<string[]>("--fixture")
{

View File

@@ -0,0 +1,8 @@
# LedgerReplayHarness Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/Findings/tools/LedgerReplayHarness/LedgerReplayHarness.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |