From 9c34fe90f40df52bb735677e8fc700c0587d229a Mon Sep 17 00:00:00 2001 From: CPU-216 <3125034290@stu.cpu.edu.cn> Date: Fri, 20 Mar 2026 00:35:37 +0800 Subject: [PATCH 1/2] chore(ci): enforce test requirement for state machine and resilience changes (#1230) (#1304) --- .github/workflows/regression-test-check.yml | 47 ++++++++++++++++++--- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/.github/workflows/regression-test-check.yml b/.github/workflows/regression-test-check.yml index 6d97c4ce..ef1a4d92 100644 --- a/.github/workflows/regression-test-check.yml +++ b/.github/workflows/regression-test-check.yml @@ -43,12 +43,42 @@ jobs: fi fi - if [ "$IS_FIX" = false ]; then - echo "Not a fix PR — skipping regression test check." + # --- 1b. Does this PR touch high-risk state machine or resilience code? --- + CHANGED_FILES=$(git diff --name-only "${BASE_REF}...${HEAD_REF}") + + TOUCHES_HIGH_RISK=false + HIGH_RISK_PATTERNS=( + "src/context/state.rs" + "src/agent/session.rs" + "src/llm/circuit_breaker.rs" + "src/llm/retry.rs" + "src/llm/failover.rs" + "src/agent/self_repair.rs" + "src/agent/agentic_loop.rs" + "src/tools/execute.rs" + "crates/ironclaw_safety/src/" + ) + + for pattern in "${HIGH_RISK_PATTERNS[@]}"; do + if echo "$CHANGED_FILES" | grep -q "$pattern"; then + TOUCHES_HIGH_RISK=true + echo "High-risk file matched: $pattern" + break + fi + done + + # Skip only if NEITHER condition holds — no double-firing on fix PRs + if [ "$IS_FIX" = false ] && [ "$TOUCHES_HIGH_RISK" = false ]; then + echo "Not a fix PR and no high-risk files changed — skipping." exit 0 fi - echo "Fix PR detected." + if [ "$IS_FIX" = true ]; then + echo "Fix PR detected." + fi + if [ "$TOUCHES_HIGH_RISK" = true ]; then + echo "High-risk state machine or resilience code modified." + fi # --- 2. Skip label or commit message marker --- if grep -qF ',skip-regression-check,' <<< ",$PR_LABELS,"; then @@ -63,8 +93,6 @@ jobs: fi # --- 3. Exempt static-only / docs-only changes --- - CHANGED_FILES=$(git diff --name-only "${BASE_REF}...${HEAD_REF}") - if [ -z "$CHANGED_FILES" ]; then echo "No changed files — skipping." exit 0 @@ -110,5 +138,12 @@ jobs: fi # --- 5. No tests found --- - echo "::warning::This PR looks like a bug fix but contains no test changes. Every fix should include a regression test. Add a #[test] or #[tokio::test], or apply the 'skip-regression-check' label if not feasible." + if [ "$IS_FIX" = true ]; then + echo "::warning::This PR looks like a bug fix but contains no test changes." + fi + if [ "$TOUCHES_HIGH_RISK" = true ]; then + echo "::warning::This PR modifies high-risk state machine or resilience code but includes no test changes." + fi + echo "::warning::Please add tests exercising the changed behavior, or apply the 'skip-regression-check' label if not feasible." exit 1 + From 38dafb96b1c24ca68f945d5281af1c6b5f0bef6a Mon Sep 17 00:00:00 2001 From: Henry Park Date: Thu, 19 Mar 2026 09:47:40 -0700 Subject: [PATCH 2/2] chore: bump telegram channel version to 0.2.5 (#1410) Bump registry version to pass check-version-bumps.sh after channels-src/telegram/ changes. Co-authored-by: Claude Opus 4.6 (1M context) --- registry/channels/telegram.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/registry/channels/telegram.json b/registry/channels/telegram.json index bd07208f..85d793ed 100644 --- a/registry/channels/telegram.json +++ b/registry/channels/telegram.json @@ -2,7 +2,7 @@ "name": "telegram", "display_name": "Telegram Channel", "kind": "channel", - "version": "0.2.4", + "version": "0.2.5", "wit_version": "0.3.0", "description": "Talk to your agent through a Telegram bot", "keywords": [