Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.

This commit is contained in:
StellaOps Bot
2025-12-26 21:54:17 +02:00
parent 335ff7da16
commit c2b9cd8d1f
3717 changed files with 264714 additions and 48202 deletions

View File

@@ -1,4 +1,4 @@
using System.Text;
using System.Text;
using StellaOps.TaskRunner.Client.Models;
using StellaOps.TaskRunner.Client.Streaming;
using StellaOps.TaskRunner.Client.Pagination;
@@ -14,7 +14,7 @@ public sealed class TaskRunnerClientTests
[Fact]
public async Task StreamingLogReader_ParsesNdjsonLines()
{
var ct = TestContext.Current.CancellationToken;
var ct = CancellationToken.None;
var ndjson = """
{"timestamp":"2025-01-01T00:00:00Z","level":"info","stepId":"step-1","message":"Starting","traceId":"abc123"}
{"timestamp":"2025-01-01T00:00:01Z","level":"error","stepId":"step-1","message":"Failed","traceId":"abc123"}
@@ -34,7 +34,7 @@ public sealed class TaskRunnerClientTests
[Fact]
public async Task StreamingLogReader_SkipsEmptyLines()
{
var ct = TestContext.Current.CancellationToken;
var ct = CancellationToken.None;
var ndjson = """
{"timestamp":"2025-01-01T00:00:00Z","level":"info","stepId":"step-1","message":"Test","traceId":"abc123"}
@@ -51,7 +51,7 @@ public sealed class TaskRunnerClientTests
[Fact]
public async Task StreamingLogReader_SkipsMalformedLines()
{
var ct = TestContext.Current.CancellationToken;
var ct = CancellationToken.None;
var ndjson = """
{"timestamp":"2025-01-01T00:00:00Z","level":"info","stepId":"step-1","message":"Valid","traceId":"abc123"}
not valid json
@@ -59,7 +59,6 @@ public sealed class TaskRunnerClientTests
""";
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(ndjson));
using StellaOps.TestKit;
var entries = await StreamingLogReader.CollectAsync(stream, ct);
Assert.Equal(2, entries.Count);
@@ -71,7 +70,7 @@ using StellaOps.TestKit;
[Fact]
public async Task StreamingLogReader_FilterByLevel_FiltersCorrectly()
{
var ct = TestContext.Current.CancellationToken;
var ct = CancellationToken.None;
var entries = new List<RunLogEntry>
{
new(DateTimeOffset.UtcNow, "info", "step-1", "Info message", "trace1"),
@@ -95,7 +94,7 @@ using StellaOps.TestKit;
[Fact]
public async Task StreamingLogReader_GroupByStep_GroupsCorrectly()
{
var ct = TestContext.Current.CancellationToken;
var ct = CancellationToken.None;
var entries = new List<RunLogEntry>
{
new(DateTimeOffset.UtcNow, "info", "step-1", "Message 1", "trace1"),
@@ -116,7 +115,7 @@ using StellaOps.TestKit;
[Fact]
public async Task Paginator_IteratesAllPages()
{
var ct = TestContext.Current.CancellationToken;
var ct = CancellationToken.None;
var allItems = Enumerable.Range(1, 25).ToList();
var pageSize = 10;
var fetchCalls = 0;
@@ -142,7 +141,7 @@ using StellaOps.TestKit;
[Fact]
public async Task Paginator_GetPage_ReturnsCorrectPage()
{
var ct = TestContext.Current.CancellationToken;
var ct = CancellationToken.None;
var allItems = Enumerable.Range(1, 25).ToList();
var pageSize = 10;
@@ -165,7 +164,7 @@ using StellaOps.TestKit;
[Fact]
public async Task PaginatorExtensions_TakeAsync_TakesCorrectNumber()
{
var ct = TestContext.Current.CancellationToken;
var ct = CancellationToken.None;
var items = Enumerable.Range(1, 100).ToAsyncEnumerable();
var taken = new List<int>();
@@ -182,7 +181,7 @@ using StellaOps.TestKit;
[Fact]
public async Task PaginatorExtensions_SkipAsync_SkipsCorrectNumber()
{
var ct = TestContext.Current.CancellationToken;
var ct = CancellationToken.None;
var items = Enumerable.Range(1, 10).ToAsyncEnumerable();
var skipped = new List<int>();