From 1da8ccf4c681776de0534ca8d7c5dbfb9abc4dee Mon Sep 17 00:00:00 2001 From: Libby Date: Wed, 11 Nov 2026 14:20:50 +0000 Subject: [PATCH 1/2] CI: one portability run per change; quic-native only for native paths The forge has one runner slot and the portability job holds it 14-30 min. Drop the push trigger (the PR already ran it) for a daily schedule, skip docs-only PRs, and path-filter quic-native. Co-Authored-By: Claude Sonnet 5.5 --- .github/workflows/cultmesh-portability.yml | 14 ++++++++++---- .github/workflows/quic-native.yml | 8 ++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cultmesh-portability.yml b/.github/workflows/cultmesh-portability.yml index 1a838e94..9138f3da 100644 --- a/.github/workflows/cultmesh-portability.yml +++ b/.github/workflows/cultmesh-portability.yml @@ -1,11 +1,17 @@ name: CultMesh portability and performance +# The forge runs one job at a time and this workflow holds the slot 14 to 30 minutes, so it runs once per change: +# on the pull request (never again on the push that merges it), skipped for documentation-only changes, and on a +# daily schedule so main is still exercised when nobody opens a pull request. on: - push: - branches: - - main - - "codex/**" pull_request: + paths-ignore: + - "**/*.md" + - "docs/**" + - "research/**" + - ".voidbot/**" + schedule: + - cron: "17 3 * * *" workflow_dispatch: concurrency: diff --git a/.github/workflows/quic-native.yml b/.github/workflows/quic-native.yml index 6a4c9cdf..8f1fed18 100644 --- a/.github/workflows/quic-native.yml +++ b/.github/workflows/quic-native.yml @@ -9,13 +9,21 @@ name: CultMesh QUIC native # from the pinned debian:13 container below, never from a local or Yggdrasil # build. +# Only a change to the committed binaries, their manifest or this workflow can change what verify-committed checks, +# so a branch push or pull request runs it for those paths alone; a tag always runs it. on: push: branches: - main + paths: + - "packages/cultmesh-ts/native/**" + - ".github/workflows/quic-native.yml" tags: - "cultmesh-quic-native-v*" pull_request: + paths: + - "packages/cultmesh-ts/native/**" + - ".github/workflows/quic-native.yml" workflow_dispatch: concurrency: -- 2.47.3 From 046cf722656edeffebd15a499204b5358053ab71 Mon Sep 17 00:00:00 2001 From: Libby Date: Wed, 11 Nov 2026 14:24:17 +0000 Subject: [PATCH 2/2] CI: paths-ignore keeps docs/start/README.md in the portability run (read by first-call tests) Co-Authored-By: Claude Sonnet 5.5 --- .github/workflows/cultmesh-portability.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cultmesh-portability.yml b/.github/workflows/cultmesh-portability.yml index 9138f3da..959171ce 100644 --- a/.github/workflows/cultmesh-portability.yml +++ b/.github/workflows/cultmesh-portability.yml @@ -1,13 +1,14 @@ name: CultMesh portability and performance # The forge runs one job at a time and this workflow holds the slot 14 to 30 minutes, so it runs once per change: -# on the pull request (never again on the push that merges it), skipped for documentation-only changes, and on a +# on the pull request (never again on the push that merges it; a break that merges from a stale base waits for the +# schedule), skipped for design-note-only changes, and on a # daily schedule so main is still exercised when nobody opens a pull request. on: pull_request: paths-ignore: - - "**/*.md" - - "docs/**" + # Not `**/*.md` or `docs/**`: docs/start/README.md is read by the first-call tests of every runtime. + - "docs/*.md" - "research/**" - ".voidbot/**" schedule: -- 2.47.3