From 1a78ac8976f19652804b56aa8755edf561ee78b4 Mon Sep 17 00:00:00 2001 From: forge-recovery Date: Sat, 31 Oct 2026 12:23:27 +0000 Subject: [PATCH 1/4] test(ci): qualify central organization Actions on application source Co-Authored-By: GPT-6.1 --- .ci/gitea-qualification.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 .ci/gitea-qualification.md diff --git a/.ci/gitea-qualification.md b/.ci/gitea-qualification.md new file mode 100644 index 0000000..38588b7 --- /dev/null +++ b/.ci/gitea-qualification.md @@ -0,0 +1 @@ +Organization-scoped CI qualification. Workflow implementation lives in platform-ci; enrollment lives in ci-policy. -- 2.54.0 From 5f245adf5902ce53d9c579790aab8d201c8c9c16 Mon Sep 17 00:00:00 2001 From: forge-recovery Date: Sat, 31 Oct 2026 12:32:17 +0000 Subject: [PATCH 2/4] test(ci): retry application qualification with public shared tooling --- .ci/gitea-qualification.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.ci/gitea-qualification.md b/.ci/gitea-qualification.md index 38588b7..a0737be 100644 --- a/.ci/gitea-qualification.md +++ b/.ci/gitea-qualification.md @@ -1 +1,3 @@ Organization-scoped CI qualification. Workflow implementation lives in platform-ci; enrollment lives in ci-policy. + +Shared CI tooling visibility approved and public; qualify public consumer access. -- 2.54.0 From bd50f5a760ae6ba8af98ace1d9735a1dcfd5b3ad Mon Sep 17 00:00:00 2001 From: forge-recovery Date: Sat, 31 Oct 2026 12:35:48 +0000 Subject: [PATCH 3/4] test: wait for scheduled trace cleanup within a bounded deadline Preserve the cleanup assertions while removing the fixed 50ms scheduling assumption. Co-Authored-By: GPT-6.1 --- .../ProcessTraceBackendActivityStatsManagerTest.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/kingsrook/qbits/standardprocesstrace/utils/ProcessTraceBackendActivityStatsManagerTest.java b/src/test/java/com/kingsrook/qbits/standardprocesstrace/utils/ProcessTraceBackendActivityStatsManagerTest.java index 852f172..587e154 100644 --- a/src/test/java/com/kingsrook/qbits/standardprocesstrace/utils/ProcessTraceBackendActivityStatsManagerTest.java +++ b/src/test/java/com/kingsrook/qbits/standardprocesstrace/utils/ProcessTraceBackendActivityStatsManagerTest.java @@ -94,7 +94,17 @@ class ProcessTraceBackendActivityStatsManagerTest manager.add(processTraceId, key, 1, 2, 3); manager.setCleanupIntervalMillis(5); manager.setCleanupMaxAge(20); - SleepUtils.sleep(50, TimeUnit.MILLISECONDS); + // Wait for the scheduled cleanup rather than assuming a shared CI runner + // will schedule the background thread within 50 milliseconds. + long deadline = System.nanoTime() + TimeUnit.SECONDS.toNanos(2); + while(System.nanoTime() < deadline) + { + if(collectingLogger.getCollectedMessages().stream().anyMatch(clm -> clm.getMessage().contains("\"size\":0"))) + { + break; + } + SleepUtils.sleep(5, TimeUnit.MILLISECONDS); + } QLogger.deactivateCollectingLoggerForClass(ProcessTraceBackendActivityStatsManager.class); assertThat(collectingLogger.getCollectedMessages()).anyMatch(clm -> clm.getMessage().contains("\"size\":1")); -- 2.54.0 From 431e0fce8466a238ff4da21fbb121d90e37ebd51 Mon Sep 17 00:00:00 2001 From: forge-recovery Date: Sat, 31 Oct 2026 12:36:43 +0000 Subject: [PATCH 4/4] test: observe latest cleanup message without iterating a live log list Co-Authored-By: GPT-6.1 --- .../utils/ProcessTraceBackendActivityStatsManagerTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/kingsrook/qbits/standardprocesstrace/utils/ProcessTraceBackendActivityStatsManagerTest.java b/src/test/java/com/kingsrook/qbits/standardprocesstrace/utils/ProcessTraceBackendActivityStatsManagerTest.java index 587e154..4dcb2c3 100644 --- a/src/test/java/com/kingsrook/qbits/standardprocesstrace/utils/ProcessTraceBackendActivityStatsManagerTest.java +++ b/src/test/java/com/kingsrook/qbits/standardprocesstrace/utils/ProcessTraceBackendActivityStatsManagerTest.java @@ -99,7 +99,8 @@ class ProcessTraceBackendActivityStatsManagerTest long deadline = System.nanoTime() + TimeUnit.SECONDS.toNanos(2); while(System.nanoTime() < deadline) { - if(collectingLogger.getCollectedMessages().stream().anyMatch(clm -> clm.getMessage().contains("\"size\":0"))) + var messages = collectingLogger.getCollectedMessages(); + if(!messages.isEmpty() && messages.get(messages.size() - 1).getMessage().contains("\"size\":0")) { break; } -- 2.54.0