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,23 +1,23 @@
# AGENTS · Graph Module
# AGENTS ?? Graph Module
## Purpose & Scope
- Working directories: `src/Graph/StellaOps.Graph.Api`, `src/Graph/StellaOps.Graph.Indexer`, and `src/Graph/__Tests`.
- Modules covered: Graph API (query/search/paths/diff/overlay/export) and Graph Indexer (ingest, snapshot, overlays).
- Applicable sprints: `docs/implplan/SPRINT_0207_0001_0001_graph.md`, `docs/implplan/SPRINT_0141_0001_0001_graph_indexer.md`, and any follow-on graph docs sprints (`docs/implplan/SPRINT_0321_0001_0001_docs_modules_graph.md`).
- Applicable sprints: `docs-archived/implplan/SPRINT_0207_0001_0001_graph.md`, `docs-archived/implplan/SPRINT_0141_0001_0001_graph_indexer.md`, and follow-on graph documentation tracked in `docs/modules/graph/architecture.md`.
## Roles
- Backend engineer (.NET 10) API, planners, overlays, exports.
- Data/ETL engineer Indexer ingest, snapshots, overlays.
- QA/Perf engineer deterministic tests, load/fuzz, offline parity.
- Docs maintainer graph API/ops runbooks, Offline Kit notes.
- Backend engineer (.NET 10) ??? API, planners, overlays, exports.
- Data/ETL engineer ??? Indexer ingest, snapshots, overlays.
- QA/Perf engineer ??? deterministic tests, load/fuzz, offline parity.
- Docs maintainer ??? graph API/ops runbooks, Offline Kit notes.
## Required Reading (treat as read before DOING)
- `docs/README.md`
- `docs/07_HIGH_LEVEL_ARCHITECTURE.md`
- `docs/modules/platform/architecture-overview.md`
- `docs/modules/graph/architecture.md`
- `docs/modules/graph/implementation_plan.md`
- Sprint doc for current work (e.g., `docs/implplan/SPRINT_0207_0001_0001_graph.md`).
- `docs-archived/implplan/SPRINT_0207_0001_0001_graph.md`
- Sprint doc for current work (e.g., `docs-archived/implplan/SPRINT_0207_0001_0001_graph.md`).
- Policy overlay contract refs when touching overlays: `POLICY-ENGINE-30-001..003` (see policy module docs).
## Determinism & Offline
@@ -33,7 +33,7 @@
## Testing Expectations
- Unit: node/edge builders, identifier stability, overlay calculators, planners, diff engine.
- Integration: ingest snapshot query/paths/diff/export end-to-end; RBAC + tenant guards.
- Integration: ingest ??? snapshot ??? query/paths/diff/export end-to-end; RBAC + tenant guards.
- Performance: synthetic datasets (~500k nodes / 2M edges) with enforced budgets; capture latency metrics.
- Security: RBAC scopes (`graph:read/query/export`), audit logging, rate limiting.
- Offline: export/import parity for Offline Kit bundles; deterministic manifests verified in tests.
@@ -49,7 +49,7 @@
- Naming: projects `StellaOps.Graph.Api`, `StellaOps.Graph.Indexer`; prefer `Graph*` prefixes for internal components.
## Coordination & Status
- Update sprint Delivery Tracker statuses (TODO DOING DONE/BLOCKED) in relevant sprint file.
- Update sprint Delivery Tracker statuses (TODO ??? DOING ??? DONE/BLOCKED) in relevant sprint file.
- If a required contract/doc is missing or stale, mark the affected task BLOCKED in the sprint and log under Decisions & Risks; do not pause work waiting for live answers.
## Run/Test Commands (examples)
@@ -61,3 +61,4 @@
## Evidence
- Keep artefacts deterministic; attach manifest hashes in PR/sprint notes when delivering exports or snapshots.
- Document new metrics/routes/schemas under `docs/modules/graph` and link from sprint Decisions & Risks.

View File

@@ -1,6 +1,7 @@
using System.Threading;
using System.Threading.Tasks;
using StellaOps.Graph.Api.Contracts;
using System.Threading;
using System.Threading.Tasks;
namespace StellaOps.Graph.Api.Services;

View File

@@ -1,7 +1,8 @@
using StellaOps.Graph.Api.Contracts;
using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Graph.Api.Contracts;
namespace StellaOps.Graph.Api.Services;

View File

@@ -1,7 +1,8 @@
using StellaOps.Graph.Api.Contracts;
using System.Security.Cryptography;
using System.Text;
using System.Xml.Linq;
using StellaOps.Graph.Api.Contracts;
namespace StellaOps.Graph.Api.Services;

View File

@@ -1,6 +1,7 @@
using System.Threading;
using System.Threading.Tasks;
using StellaOps.Graph.Api.Contracts;
using System.Threading;
using System.Threading.Tasks;
namespace StellaOps.Graph.Api.Services;

View File

@@ -1,7 +1,8 @@
using StellaOps.Graph.Api.Contracts;
using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Graph.Api.Contracts;
namespace StellaOps.Graph.Api.Services;

View File

@@ -1,9 +1,10 @@
using Microsoft.Extensions.Caching.Memory;
using StellaOps.Graph.Api.Contracts;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Caching.Memory;
using StellaOps.Graph.Api.Contracts;
namespace StellaOps.Graph.Api.Services;

View File

@@ -1,8 +1,9 @@
using Microsoft.Extensions.Caching.Memory;
using StellaOps.Graph.Api.Contracts;
using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Caching.Memory;
using StellaOps.Graph.Api.Contracts;
namespace StellaOps.Graph.Api.Services;

View File

@@ -1,3 +1,4 @@
using Microsoft.Extensions.Caching.Memory;
using StellaOps.Graph.Api.Contracts;

View File

@@ -5,10 +5,11 @@
// Description: In-memory implementation for computing reachability deltas.
// -----------------------------------------------------------------------------
using System.Collections.Immutable;
using System.Diagnostics;
using Microsoft.Extensions.Logging;
using StellaOps.Graph.Api.Contracts;
using System.Collections.Immutable;
using System.Diagnostics;
namespace StellaOps.Graph.Api.Services;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0350-M | DONE | Revalidated 2026-01-07; maintainability audit for Graph.Api. |
| AUDIT-0350-T | DONE | Revalidated 2026-01-07; test coverage audit for Graph.Api. |
| AUDIT-0350-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,9 +1,10 @@
using StellaOps.Graph.Indexer.Documents;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Documents;
namespace StellaOps.Graph.Indexer.Analytics;

View File

@@ -1,3 +1,4 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;

View File

@@ -1,5 +1,6 @@
using System.Diagnostics;
using Microsoft.Extensions.Logging;
using System.Diagnostics;
namespace StellaOps.Graph.Indexer.Analytics;

View File

@@ -1,7 +1,8 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Options;
using System;
namespace StellaOps.Graph.Indexer.Analytics;

View File

@@ -1,7 +1,8 @@
using StellaOps.Graph.Indexer.Documents;
using System;
using System.Collections.Immutable;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Documents;
namespace StellaOps.Graph.Indexer.Analytics;

View File

@@ -1,7 +1,8 @@
using System.Collections.Immutable;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Graph.Indexer.Schema;
using System.Collections.Immutable;
using System.Text.Json.Nodes;
namespace StellaOps.Graph.Indexer.Analytics;

View File

@@ -1,7 +1,8 @@
using StellaOps.Graph.Indexer.Schema;
using System.Collections.Immutable;
using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
using StellaOps.Graph.Indexer.Schema;
namespace StellaOps.Graph.Indexer.Documents;

View File

@@ -1,7 +1,8 @@
using System.Collections.Immutable;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Graph.Indexer.Schema;
using System.Collections.Immutable;
using System.Text.Json.Nodes;
namespace StellaOps.Graph.Indexer.Documents;

View File

@@ -1,10 +1,11 @@
using System.Globalization;
using System.Linq;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using System.Globalization;
using System.Linq;
using System.Text.Json.Nodes;
namespace StellaOps.Graph.Indexer.Incremental;

View File

@@ -1,7 +1,8 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using System;
namespace StellaOps.Graph.Indexer.Incremental;

View File

@@ -1,8 +1,9 @@
using Microsoft.Extensions.Logging;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
namespace StellaOps.Graph.Indexer.Ingestion.Advisory;

View File

@@ -1,10 +1,11 @@
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Graph.Indexer.Schema;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Graph.Indexer.Schema;
namespace StellaOps.Graph.Indexer.Ingestion.Advisory;

View File

@@ -1,6 +1,7 @@
using System.Diagnostics;
using Microsoft.Extensions.Logging;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using System.Diagnostics;
namespace StellaOps.Graph.Indexer.Ingestion.Inspector;

View File

@@ -1,7 +1,8 @@
using System.Collections.Immutable;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Graph.Indexer.Schema;
using System.Collections.Immutable;
using System.Text.Json.Nodes;
namespace StellaOps.Graph.Indexer.Ingestion.Inspector;

View File

@@ -1,8 +1,9 @@
using Microsoft.Extensions.Logging;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
namespace StellaOps.Graph.Indexer.Ingestion.Policy;

View File

@@ -1,10 +1,11 @@
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Graph.Indexer.Schema;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Graph.Indexer.Schema;
namespace StellaOps.Graph.Indexer.Ingestion.Policy;

View File

@@ -1,7 +1,8 @@
using System.Text;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Documents;
using StellaOps.Graph.Indexer.Schema;
using System.Text;
using System.Text.Json.Nodes;
namespace StellaOps.Graph.Indexer.Ingestion.Sbom;

View File

@@ -1,7 +1,8 @@
using Microsoft.Extensions.Logging;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
namespace StellaOps.Graph.Indexer.Ingestion.Sbom;

View File

@@ -1,9 +1,10 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Microsoft.Extensions.Options;
using System;
namespace StellaOps.Graph.Indexer.Ingestion.Sbom;

View File

@@ -1,6 +1,7 @@
using StellaOps.Graph.Indexer.Schema;
using System.Collections.Immutable;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Schema;
namespace StellaOps.Graph.Indexer.Ingestion.Sbom;

View File

@@ -1,6 +1,7 @@
using StellaOps.Graph.Indexer.Documents;
using System.Text.Json;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Documents;
namespace StellaOps.Graph.Indexer.Ingestion.Sbom;

View File

@@ -1,10 +1,11 @@
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Graph.Indexer.Schema;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Text.Json.Nodes;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Graph.Indexer.Schema;
namespace StellaOps.Graph.Indexer.Ingestion.Vex;

View File

@@ -1,3 +1,4 @@
using System.Text.Json;
using System.Text.Json.Nodes;

View File

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

View File

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

View File

@@ -0,0 +1,8 @@
# StellaOps.Graph.Core 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/Graph/__Libraries/StellaOps.Graph.Core/StellaOps.Graph.Core.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,8 +1,9 @@
using System.Collections.Immutable;
using Microsoft.Extensions.Logging;
using Npgsql;
using StellaOps.Graph.Indexer.Analytics;
using StellaOps.Infrastructure.Postgres.Repositories;
using System.Collections.Immutable;
namespace StellaOps.Graph.Indexer.Persistence.Postgres.Repositories;

View File

@@ -1,10 +1,11 @@
using System.Text.Json;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using Npgsql;
using StellaOps.Determinism;
using StellaOps.Graph.Indexer.Ingestion.Sbom;
using StellaOps.Infrastructure.Postgres.Repositories;
using System.Text.Json;
using System.Text.Json.Nodes;
namespace StellaOps.Graph.Indexer.Persistence.Postgres.Repositories;

View File

@@ -1,10 +1,11 @@
using System.Collections.Immutable;
using System.Text.Json;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using Npgsql;
using StellaOps.Graph.Indexer.Analytics;
using StellaOps.Infrastructure.Postgres.Repositories;
using System.Collections.Immutable;
using System.Text.Json;
using System.Text.Json.Nodes;
namespace StellaOps.Graph.Indexer.Persistence.Postgres.Repositories;

View File

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

View File

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

View File

@@ -0,0 +1,8 @@
# StellaOps.Graph.Core.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/Graph/__Tests/StellaOps.Graph.Core.Tests/StellaOps.Graph.Core.Tests.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0354-M | DONE | Revalidated 2026-01-07; maintainability audit for Graph.Indexer.Persistence tests. |
| AUDIT-0354-T | DONE | Revalidated 2026-01-07; test coverage audit for Graph.Indexer.Persistence tests. |
| AUDIT-0354-A | DONE | Waived (test project; revalidated 2026-01-07). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

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