From 91591b22a8643059c059f23c5723d2b1ca79b4c8 Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Wed, 4 Nov 2026 20:23:03 +0000 Subject: [PATCH 1/2] fix(skills): count the CPUs of a cgroup v2 quota for the TLC workers check.sh read the CPU count from getconf, which counts every online CPU, also in a container whose cgroup v2 quota allows fewer. In a container with 96 online CPUs and a quota of 32, the 15 runs that expect pass got 6 TLC workers each, 90 threads for 32 CPUs. check.sh now takes the smaller of getconf and the quota in /sys/fs/cgroup/cpu.max, rounded up, and keeps getconf when the file is missing or reads max. It prints the CPU count and the workers of a run that expects pass. --- .../skills/verify-session-lifecycle/scripts/check.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.agents/skills/verify-session-lifecycle/scripts/check.sh b/.agents/skills/verify-session-lifecycle/scripts/check.sh index 07ae56de..c09d2607 100755 --- a/.agents/skills/verify-session-lifecycle/scripts/check.sh +++ b/.agents/skills/verify-session-lifecycle/scripts/check.sh @@ -365,6 +365,16 @@ fi # with at least 1 TLC worker. A run that expects a violation keeps 1 worker, # which finds the shortest trace. CPUS=$(getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1) +# getconf counts every online CPU, also in a container whose cgroup v2 quota +# allows fewer. cpu.max reads "max " without a quota, else +# " " in microseconds. +if read -r quota period 2>/dev/null Date: Wed, 4 Nov 2026 20:23:03 +0000 Subject: [PATCH 2/2] chore(skills): sync lifecycle coverage after the CPU quota change --- .agents/skills/verify-session-lifecycle/coverage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.agents/skills/verify-session-lifecycle/coverage.json b/.agents/skills/verify-session-lifecycle/coverage.json index e89f55bd..481ab131 100644 --- a/.agents/skills/verify-session-lifecycle/coverage.json +++ b/.agents/skills/verify-session-lifecycle/coverage.json @@ -149,7 +149,7 @@ "src/host/hostMain.ts#runHost>handlers.destroy": "ccff44951e711dac", "skill:model/SessionLifecycle.tla": "cd8639012467f13e", "skill:scripts/facts.mjs": "3ef7fa152ec0af36", - "skill:scripts/check.sh": "cad764a01b6eee50" + "skill:scripts/check.sh": "17f2ce5bd1b1b090" }, "callSites": { "writeManifest": [