code-foundry 1.9.0 → 1.9.1

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.
@@ -73,7 +73,7 @@ jobs:
73
73
  mode: ${{ needs.mode.outputs.mode }}
74
74
  runtime-repository: 0xPlayerOne/code-foundry
75
75
  # Pull requests validate the proposed runtime commit. Scheduled and
76
- # manually dispatched audits are isolated in validation_audit_self-ci.yml
76
+ # manually dispatched audits use a separate default-branch-pinned caller,
77
77
  # so this caller-selected ref never runs with default-branch cache access.
78
78
  runtime-ref: ${{ github.sha }}
79
79
  ci-runner: ubuntu-latest
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.9.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.9.0...v1.9.1) (2026-09-08)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **ci:** restore protected consumer audits ([#503](https://github.com/0xPlayerOne/code-foundry/issues/503)) ([d045cc4](https://github.com/0xPlayerOne/code-foundry/commit/d045cc4a5543d2096e4d6f33c5e74aa40604c887))
9
+
3
10
  ## [1.9.0](https://github.com/0xPlayerOne/code-foundry/compare/v1.8.0...v1.9.0) (2026-09-08)
4
11
 
5
12
 
package/README.md CHANGED
@@ -35,8 +35,8 @@ contract. For normal updates, edit that file and run `npx code-foundry sync`.
35
35
 
36
36
  ## What it installs
37
37
 
38
- - Short workflow callers for CI, Test, Security, CodeQL, Draft PR, Release PR,
39
- and Release.
38
+ - Short workflow callers for pull-request validation, protected scheduled/manual
39
+ audits, Draft PR, Release PR, and Release.
40
40
  - A deterministic performance lane with ordered command support, stable result
41
41
  artifacts, and an optional shared Node package budget profile.
42
42
  - A small `.githooks/pre-commit` launcher with language-aware formatting and
package/docs/WORKFLOWS.md CHANGED
@@ -2,13 +2,20 @@
2
2
 
3
3
  ## Standard triggers
4
4
 
5
- The canonical validation caller uses pull requests plus bounded audit entry
6
- points; it does not run the same suites again on branch pushes:
5
+ Validation uses two callers so pull-request code and default-branch-capable
6
+ audit events never share a caller-selected runtime ref. The canonical
7
+ `validation.yml` caller handles pull requests only:
7
8
 
8
9
  ```yaml
9
10
  pull_request:
10
11
  branches: [main, staging] # staging-release topology
11
12
  # direct topology: branches: [main]
13
+ ```
14
+
15
+ The separate `validation-audit.yml` caller is pinned to the configured released
16
+ runtime and handles scheduled and manual audits:
17
+
18
+ ```yaml
12
19
  schedule:
13
20
  - cron: '31 6 * * 1'
14
21
  workflow_dispatch:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "description": "A fast, language-aware repository factory for agent-ready workflows, testing, security, and release automation.",
5
5
  "homepage": "https://github.com/0xPlayerOne/code-foundry#readme",
6
6
  "bugs": {
@@ -42,6 +42,7 @@ const standardFiles = [
42
42
  '.github/ISSUE_TEMPLATE/config.yml',
43
43
  '.github/ISSUE_TEMPLATE/feature_request.yml',
44
44
  '.github/workflows/validation.yml',
45
+ '.github/workflows/validation-audit.yml',
45
46
  '.github/workflows/draft-pr.yml',
46
47
  '.github/workflows/release-pr.yml',
47
48
  '.github/workflows/release.yml',
@@ -473,6 +474,9 @@ function sourcePath(source, file) {
473
474
  return existsSync(rootTemplate) ? rootTemplate : join(source, 'src/templates/gitignore')
474
475
  }
475
476
  if (file.startsWith('.github/workflows/')) {
477
+ if (file === '.github/workflows/validation-audit.yml') {
478
+ return join(source, 'src/templates/workflows/validation-audit.yml')
479
+ }
476
480
  const name = file.slice('.github/workflows/'.length, -4)
477
481
  return join(source, '.github/workflows', `${name}_self-ci.yml`)
478
482
  }
@@ -535,7 +539,7 @@ function renderWorkflow(content, config, repository, ref, rustCodeql) {
535
539
  if (workflow === 'test' && config.unit_runner) {
536
540
  rendered = rendered.replace(/^(\s+unit-runner:)\s+.*$/m, `$1 ${config.unit_runner}`)
537
541
  }
538
- if (workflow === 'validation') {
542
+ if (workflow === 'validation' || workflow === 'validation-audit') {
539
543
  // The mode classifier is a normal runner job in the caller rather than a
540
544
  // reusable-workflow input. Keep it on the configured default runner so
541
545
  // consumers that cannot use ubuntu-slim do not fail before validation.
@@ -0,0 +1,43 @@
1
+ name: Code Foundry Audit
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '31 6 * * 1'
6
+ workflow_dispatch:
7
+
8
+ permissions: {}
9
+
10
+ concurrency:
11
+ group: code-foundry-audit-${{ github.event_name }}
12
+ cancel-in-progress: true
13
+
14
+ jobs:
15
+ # Default-branch-capable events use an immutable released runtime for both
16
+ # reusable workflow code and runtime code. They never accept a caller-
17
+ # controlled runtime ref and cannot execute pull-request code with access to
18
+ # the protected default-branch cache.
19
+ validation:
20
+ name: Validation
21
+ if: vars.CI_BILLING_PAUSED != 'true'
22
+ permissions:
23
+ actions: read
24
+ contents: read
25
+ packages: read
26
+ security-events: write
27
+ uses: ./.github/workflows/validation.yml
28
+ with:
29
+ mode: audit
30
+ runtime-repository: 0xPlayerOne/code-foundry
31
+ runtime-ref: main
32
+ ci-runner: ubuntu-latest
33
+ test-runner: ubuntu-latest
34
+ unit-runner: ubuntu-slim
35
+ performance-runner: ubuntu-latest
36
+ security-runner: ubuntu-slim
37
+ codeql-runner: ubuntu-latest
38
+ rust-shards: '["all"]'
39
+ rust-threads: '1'
40
+ rust-max-parallel: 1
41
+ secrets:
42
+ TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
43
+ NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }}