feat: Add tests for RichGraphPublisher and RichGraphWriter
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
Export Center CI / export-ci (push) Has been cancelled

- Implement unit tests for RichGraphPublisher to verify graph publishing to CAS.
- Implement unit tests for RichGraphWriter to ensure correct writing of canonical graphs and metadata.

feat: Implement AOC Guard validation logic

- Add AOC Guard validation logic to enforce document structure and field constraints.
- Introduce violation codes for various validation errors.
- Implement tests for AOC Guard to validate expected behavior.

feat: Create Console Status API client and service

- Implement ConsoleStatusClient for fetching console status and streaming run events.
- Create ConsoleStatusService to manage console status polling and event subscriptions.
- Add tests for ConsoleStatusClient to verify API interactions.

feat: Develop Console Status component

- Create ConsoleStatusComponent for displaying console status and run events.
- Implement UI for showing status metrics and handling user interactions.
- Add styles for console status display.

test: Add tests for Console Status store

- Implement tests for ConsoleStatusStore to verify event handling and state management.
This commit is contained in:
StellaOps Bot
2025-12-01 07:34:50 +02:00
parent 7df0677e34
commit c11d87d252
108 changed files with 4773 additions and 351 deletions

View File

@@ -13,13 +13,16 @@ namespace StellaOps.Scanner.Worker.Processing.Reachability;
public sealed class ReachabilityPublishStageExecutor : IScanStageExecutor
{
private readonly IReachabilityUnionPublisherService _publisher;
private readonly IRichGraphPublisherService _richGraphPublisher;
private readonly ILogger<ReachabilityPublishStageExecutor> _logger;
public ReachabilityPublishStageExecutor(
IReachabilityUnionPublisherService publisher,
IRichGraphPublisherService richGraphPublisher,
ILogger<ReachabilityPublishStageExecutor> logger)
{
_publisher = publisher ?? throw new ArgumentNullException(nameof(publisher));
_richGraphPublisher = richGraphPublisher ?? throw new ArgumentNullException(nameof(richGraphPublisher));
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
@@ -39,5 +42,14 @@ public sealed class ReachabilityPublishStageExecutor : IScanStageExecutor
context.Analysis.Set(ScanAnalysisKeys.ReachabilityUnionCas, publishResult);
_logger.LogInformation("Published reachability union graph to CAS: sha256={Sha} records={Records}", publishResult.Sha256, publishResult.Records);
var richGraphResult = await _richGraphPublisher.PublishAsync(graph, context.ScanId, cancellationToken).ConfigureAwait(false);
context.Analysis.Set(ScanAnalysisKeys.ReachabilityRichGraphCas, richGraphResult);
_logger.LogInformation(
"Published richgraph reachability to CAS: graph_hash={GraphHash} nodes={Nodes} edges={Edges}",
richGraphResult.GraphHash,
richGraphResult.NodeCount,
richGraphResult.EdgeCount);
}
}

View File

@@ -87,6 +87,9 @@ builder.Services.AddSingleton<IEntryTraceExecutionService, EntryTraceExecutionSe
builder.Services.AddSingleton<ReachabilityUnionWriter>();
builder.Services.AddSingleton<ReachabilityUnionPublisher>();
builder.Services.AddSingleton<IReachabilityUnionPublisherService, ReachabilityUnionPublisherService>();
builder.Services.AddSingleton<RichGraphWriter>();
builder.Services.AddSingleton<IRichGraphPublisher, ReachabilityRichGraphPublisher>();
builder.Services.AddSingleton<IRichGraphPublisherService, ReachabilityRichGraphPublisherService>();
builder.Services.AddSingleton<IScanStageExecutor, StellaOps.Scanner.Worker.Processing.Replay.ReplaySealedBundleStageExecutor>();
builder.Services.AddSingleton<StellaOps.Scanner.Worker.Processing.Replay.ReplayBundleFetcher>();