code-foundry 1.44.0 → 1.44.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -225,7 +225,7 @@ Keep pull requests focused and reviewable. Include screenshots or recordings for
225
225
 
226
226
  Draft pull requests do not start validation unless `draft_protection: false` is configured. The lightweight Draft Guard converts ordinary pull requests opened or reopened while ready back to draft; it never checks out pull-request code and it excludes Release Please version heads, whose release workflow owns their state. Marking a pull request ready for review starts the applicable validation tier, and each new commit on a ready pull request reruns that tier for the current head. Draft updates allocate no validation runner while protection is enabled. Converting a pull request to draft runs only the lightweight cancellation control.
227
227
 
228
- Pull-request validation keys concurrency by event and pull-request head, so a newer update cancels its superseded run. Scheduled and manual audits use a separate caller pinned to the protected default branch; this prevents caller-selected runtime code from executing with default-branch cache access. Pull-request and scheduled/manual callers use the mode-aware orchestrator, which fans out only the required jobs and concludes with the stable aggregate gate. Main pushes run the default-branch CodeQL lane separately.
228
+ Pull-request validation keys concurrency by event and pull-request head, so a newer update cancels its superseded run. Pushes to `main`, release, promotion, publication, and deployment runs never cancel in progress; a newer run queues behind the current one. Scheduled and manual audits use a separate caller pinned to the protected default branch; this prevents caller-selected runtime code from executing with default-branch cache access. Pull-request and scheduled/manual callers use the mode-aware orchestrator, which fans out only the required jobs and concludes with the stable aggregate gate. Main pushes run the default-branch CodeQL lane separately.
229
229
 
230
230
  Required checks are enforced by branch protection rulesets/branch protection. Do not duplicate their checklists in the pull request description; document validation commands and results instead.
231
231
 
@@ -47,7 +47,10 @@ env:
47
47
 
48
48
  concurrency:
49
49
  group: code-foundry-ci-${{ github.event_name }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
50
- cancel-in-progress: true
50
+ # Superseded pull-request runs are cancelled so the newest head owns the
51
+ # group; push and scheduled runs queue instead, because cancelling a main
52
+ # push can drop default-branch analysis or release-adjacent work.
53
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
51
54
 
52
55
  jobs:
53
56
  format:
@@ -52,7 +52,10 @@ env:
52
52
 
53
53
  concurrency:
54
54
  group: code-foundry-codeql-${{ github.event_name }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
55
- cancel-in-progress: true
55
+ # Superseded pull-request runs are cancelled so the newest head owns the
56
+ # group; push and scheduled runs queue instead, because cancelling a main
57
+ # push can drop default-branch analysis or release-adjacent work.
58
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
56
59
 
57
60
  jobs:
58
61
  detect:
@@ -46,6 +46,10 @@ jobs:
46
46
  uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
47
47
  with:
48
48
  node-version: '24'
49
+ - name: Trim the packaged changelog to recent releases
50
+ # Rewrites only this job's ephemeral checkout; the repository keeps the
51
+ # full CHANGELOG.md that Release Please maintains.
52
+ run: node scripts/package-changelog.mjs CHANGELOG.md
49
53
  - name: Pack the distributable once
50
54
  id: pack
51
55
  run: |
@@ -10,6 +10,10 @@ permissions:
10
10
  actions: write
11
11
  contents: read
12
12
 
13
+ concurrency:
14
+ group: code-foundry-draft-control-${{ github.repository }}-${{ github.event.pull_request.number }}
15
+ cancel-in-progress: true
16
+
13
17
  jobs:
14
18
  cancel:
15
19
  name: Draft Control / Halt CI
@@ -43,7 +43,10 @@ env:
43
43
 
44
44
  concurrency:
45
45
  group: code-foundry-eval-${{ github.event_name }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
46
- cancel-in-progress: true
46
+ # Superseded pull-request runs are cancelled so the newest head owns the
47
+ # group; push and scheduled runs queue instead, because cancelling a main
48
+ # push can drop default-branch analysis or release-adjacent work.
49
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
47
50
 
48
51
  jobs:
49
52
  eval:
@@ -11,6 +11,11 @@ on:
11
11
  permissions:
12
12
  contents: read
13
13
 
14
+ concurrency:
15
+ group: code-foundry-opencode-security-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}
16
+ # Only superseded pull-request scans are cancelled; dispatches queue.
17
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
18
+
14
19
  jobs:
15
20
  detect:
16
21
  name: OpenCode Security / Detect
@@ -28,7 +28,9 @@ jobs:
28
28
  timeout-minutes: 10
29
29
  concurrency:
30
30
  group: code-foundry-release-pr-${{ github.repository }}-${{ github.ref }}
31
- cancel-in-progress: true
31
+ # Promotion updates a release pull request; never cancel it mid-update.
32
+ # A newer push waits, and GitHub keeps only the newest pending run.
33
+ cancel-in-progress: false
32
34
  steps:
33
35
  - name: Checkout
34
36
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -31,7 +31,10 @@ env:
31
31
 
32
32
  concurrency:
33
33
  group: code-foundry-security-${{ github.event_name }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
34
- cancel-in-progress: true
34
+ # Superseded pull-request runs are cancelled so the newest head owns the
35
+ # group; push and scheduled runs queue instead, because cancelling a main
36
+ # push can drop default-branch analysis or release-adjacent work.
37
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
35
38
 
36
39
  jobs:
37
40
  profile:
@@ -69,7 +69,10 @@ env:
69
69
 
70
70
  concurrency:
71
71
  group: code-foundry-test-${{ github.event_name }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
72
- cancel-in-progress: true
72
+ # Superseded pull-request runs are cancelled so the newest head owns the
73
+ # group; push and scheduled runs queue instead, because cancelling a main
74
+ # push can drop default-branch analysis or release-adjacent work.
75
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
73
76
 
74
77
  jobs:
75
78
  unit:
@@ -16,7 +16,10 @@ permissions: {}
16
16
  # Superseded PR updates cancel the previous run.
17
17
  concurrency:
18
18
  group: code-foundry-validation-${{ github.event_name }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
19
- cancel-in-progress: true
19
+ # Superseded pull-request runs are cancelled so the newest head owns the
20
+ # group; push and scheduled runs queue instead, because cancelling a main
21
+ # push can drop default-branch analysis or release-adjacent work.
22
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
20
23
 
21
24
  jobs:
22
25
  mode:
package/AGENTS.md CHANGED
@@ -240,7 +240,8 @@ readying a pull request.
240
240
  - Keep workflows concise, independently runnable, and safe to re-run.
241
241
  - Use `push` for `main` and `pull_request` for `main` unless a workflow has a documented event-specific reason.
242
242
  - Give workflows clear names and jobs concise names; avoid repeating the workflow name in the job name.
243
- - Use per-workflow concurrency groups that cancel superseded runs while allowing independent workflows to run in parallel.
243
+ - Use per-workflow concurrency groups keyed by pull request or ref that cancel superseded pull-request runs while allowing independent workflows to run in parallel. Do not cancel in progress for pushes to `main`, release, publication, or deployment runs; let them queue.
244
+ - Do not put `always()` on heavy jobs: it keeps a cancelled run alive and holding its concurrency group. Use `!cancelled()` for jobs that must run after upstream failures, and keep `always()` for lightweight aggregate gates only.
244
245
  - Keep setup language-aware and cache dependency downloads by lockfile; do not cache secrets, `node_modules`, virtual environments, or broad build output without a measured reason.
245
246
  - Use least-privilege permissions and pin action versions consistently with the template.
246
247
  - Keep CI, Test, Security, CodeQL, Draft Guard, Draft PR, Release PR, and Release concerns separated.