code-foundry 1.47.1 → 1.47.5
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.
- package/.github/CONTRIBUTING.md +12 -6
- package/.github/workflows/ci.yml +5 -0
- package/.github/workflows/validation-billing.yml +5 -0
- package/.github/workflows/validation-no-codeql.yml +6 -0
- package/.github/workflows/validation.yml +6 -0
- package/.github/workflows/validation_audit_self-ci.yml +1 -0
- package/.github/workflows/validation_self-ci.yml +1 -0
- package/.gitignore +1 -0
- package/AGENTS.md +19 -3
- package/CHANGELOG.md +29 -29
- package/package.json +1 -1
- package/src/lib/consumer-qualification.mjs +15 -7
- package/src/lib/merge-queue.mjs +1 -0
- package/src/templates/workflows/validation-audit.yml +1 -0
package/.github/CONTRIBUTING.md
CHANGED
|
@@ -115,17 +115,23 @@ If the worktree is dirty, stop and understand the existing changes before switch
|
|
|
115
115
|
|
|
116
116
|
## Local validation
|
|
117
117
|
|
|
118
|
-
|
|
118
|
+
Use the commands declared in this repository's manifests and documentation, or
|
|
119
|
+
invoke the installed Code Foundry CLI. The shared runtime detects supported tools
|
|
120
|
+
and skips checks that do not apply:
|
|
119
121
|
|
|
120
122
|
```sh
|
|
121
123
|
npx code-foundry doctor
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
npm test
|
|
126
|
-
Security and dependency audits run through the GitHub Security workflow.
|
|
124
|
+
npx code-foundry plan --tier fast
|
|
125
|
+
npx code-foundry check --tier fast
|
|
126
|
+
npx code-foundry check --tier audit
|
|
127
127
|
```
|
|
128
128
|
|
|
129
|
+
`doctor` diagnoses setup; `plan` discovers tasks without running them. `check`
|
|
130
|
+
runs the selected tier: `fast` includes CI tasks, unit tests and performance,
|
|
131
|
+
while `audit` adds integration, E2E and smoke.
|
|
132
|
+
|
|
133
|
+
Security and dependency audits run through the GitHub Security workflow.
|
|
134
|
+
|
|
129
135
|
Run the checks relevant to the change. For a release or security-sensitive change, run the complete set. Record the commands and results in the pull request.
|
|
130
136
|
|
|
131
137
|
<!-- /code-foundry-managed: local-validation -->
|
package/.github/workflows/ci.yml
CHANGED
|
@@ -183,6 +183,9 @@ jobs:
|
|
|
183
183
|
type-check:
|
|
184
184
|
name: Type-Check
|
|
185
185
|
if: vars.CI_BILLING_PAUSED != 'true'
|
|
186
|
+
permissions:
|
|
187
|
+
contents: read
|
|
188
|
+
issues: read
|
|
186
189
|
runs-on: ${{ inputs.runner }}
|
|
187
190
|
timeout-minutes: 30
|
|
188
191
|
steps:
|
|
@@ -226,6 +229,8 @@ jobs:
|
|
|
226
229
|
- name: Type-Check
|
|
227
230
|
id: execute
|
|
228
231
|
if: steps.applicability.outputs.applicable == 'true' && steps.applicability.outputs.affected != 'false'
|
|
232
|
+
env:
|
|
233
|
+
GH_TOKEN: ${{ github.token }}
|
|
229
234
|
run: node "$RUNNER_TEMP/code-foundry/src/runtime.mjs" ci type_check
|
|
230
235
|
- name: Retain task receipt
|
|
231
236
|
if: >-
|
|
@@ -533,6 +533,9 @@ jobs:
|
|
|
533
533
|
type-check:
|
|
534
534
|
name: Type-Check
|
|
535
535
|
if: vars.CI_BILLING_PAUSED != 'true'
|
|
536
|
+
permissions:
|
|
537
|
+
contents: read
|
|
538
|
+
issues: read
|
|
536
539
|
runs-on: ${{ inputs.ci-runner }}
|
|
537
540
|
timeout-minutes: 30
|
|
538
541
|
steps:
|
|
@@ -576,6 +579,8 @@ jobs:
|
|
|
576
579
|
- name: Type-Check
|
|
577
580
|
id: execute
|
|
578
581
|
if: steps.applicability.outputs.applicable == 'true' && steps.applicability.outputs.affected != 'false'
|
|
582
|
+
env:
|
|
583
|
+
GH_TOKEN: ${{ github.token }}
|
|
579
584
|
run: node "$RUNNER_TEMP/code-foundry/src/runtime.mjs" ci type_check
|
|
580
585
|
- name: Retain task receipt
|
|
581
586
|
if: >-
|
|
@@ -104,6 +104,12 @@ jobs:
|
|
|
104
104
|
ci:
|
|
105
105
|
name: CI
|
|
106
106
|
if: vars.CI_BILLING_PAUSED != 'true' && (inputs.mode == 'fast' || inputs.mode == 'audit' || inputs.mode == 'release')
|
|
107
|
+
# Forward issue-read only to the CI workflow that runs Type-Check.
|
|
108
|
+
permissions:
|
|
109
|
+
actions: read
|
|
110
|
+
contents: read
|
|
111
|
+
issues: read
|
|
112
|
+
packages: read
|
|
107
113
|
uses: ./.github/workflows/ci.yml
|
|
108
114
|
with:
|
|
109
115
|
runtime-repository: ${{ inputs.runtime-repository }}
|
|
@@ -104,6 +104,12 @@ jobs:
|
|
|
104
104
|
ci:
|
|
105
105
|
name: CI
|
|
106
106
|
if: vars.CI_BILLING_PAUSED != 'true' && (inputs.mode == 'fast' || inputs.mode == 'audit' || inputs.mode == 'release')
|
|
107
|
+
# Type-Check reads the issue-backed requirements ledger with github.token.
|
|
108
|
+
permissions:
|
|
109
|
+
actions: read
|
|
110
|
+
contents: read
|
|
111
|
+
issues: read
|
|
112
|
+
packages: read
|
|
107
113
|
uses: ./.github/workflows/ci.yml
|
|
108
114
|
with:
|
|
109
115
|
runtime-repository: ${{ inputs.runtime-repository }}
|
package/.gitignore
CHANGED
package/AGENTS.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
These instructions are the repository-level operating contract for coding agents, including Hermes, OpenCode, and other automation.
|
|
6
6
|
|
|
7
|
-
They complement
|
|
7
|
+
They complement `.github/CONTRIBUTING.md`. More specific instructions in nested `AGENTS.md` files and project documentation take precedence for their directory.
|
|
8
8
|
|
|
9
9
|
<!-- /code-foundry-managed: config-aware-policy -->
|
|
10
10
|
|
|
@@ -183,7 +183,22 @@ This repository uses the `direct` workflow. Topic pull requests target `main`.
|
|
|
183
183
|
|
|
184
184
|
## Validation
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
From a consumer repository, use its documented package scripts or the installed
|
|
187
|
+
Code Foundry CLI:
|
|
188
|
+
|
|
189
|
+
```sh
|
|
190
|
+
npx code-foundry plan --tier fast
|
|
191
|
+
npx code-foundry check --tier fast
|
|
192
|
+
npx code-foundry check --tier audit
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
`plan` discovers tasks without running them. `check` invokes the shared runtime;
|
|
196
|
+
`fast` includes CI tasks, unit tests and performance, while `audit` adds
|
|
197
|
+
integration, E2E and smoke.
|
|
198
|
+
|
|
199
|
+
From a Code Foundry source checkout only, the shared runtime is also available.
|
|
200
|
+
The paths below are relative to that checkout, not a consumer repository. The
|
|
201
|
+
runtime detects supported tools and skips inapplicable checks:
|
|
187
202
|
|
|
188
203
|
```sh
|
|
189
204
|
node src/runtime.mjs ci format
|
|
@@ -196,9 +211,10 @@ node src/runtime.mjs ci e2e
|
|
|
196
211
|
node src/runtime.mjs ci smoke
|
|
197
212
|
node src/runtime.mjs ci eval
|
|
198
213
|
node src/runtime.mjs ci performance
|
|
199
|
-
Security and dependency audits run through the GitHub Security workflow.
|
|
200
214
|
```
|
|
201
215
|
|
|
216
|
+
Security and dependency audits run through the GitHub Security workflow.
|
|
217
|
+
|
|
202
218
|
Run focused tests first, then the complete applicable set for release, security, workflow, dependency, and configuration changes.
|
|
203
219
|
|
|
204
220
|
At minimum:
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.47.5](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.4...v1.47.5) (2026-10-15)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* validation-issue-read-v1471 ([#759](https://github.com/0xPlayerOne/code-foundry/issues/759)) ([7119b3e](https://github.com/0xPlayerOne/code-foundry/commit/7119b3e2baebfbfdd47d32428cbf5df2f2079afa))
|
|
9
|
+
|
|
10
|
+
## [1.47.4](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.3...v1.47.4) (2026-10-15)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Documentation
|
|
14
|
+
|
|
15
|
+
* fix generated agent contribution and validation references ([#760](https://github.com/0xPlayerOne/code-foundry/issues/760)) ([c3564c9](https://github.com/0xPlayerOne/code-foundry/commit/c3564c92cb168449317afe2e40359144bf7a0c71))
|
|
16
|
+
|
|
17
|
+
## [1.47.3](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.2...v1.47.3) (2026-10-09)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Maintenance
|
|
21
|
+
|
|
22
|
+
* **fleet:** point the manifest at the rollout worktrees and filter adea's actionlint ([#757](https://github.com/0xPlayerOne/code-foundry/issues/757)) ([55bae8b](https://github.com/0xPlayerOne/code-foundry/commit/55bae8bf99a022bfa03294972d89a3cca20a6203))
|
|
23
|
+
|
|
24
|
+
## [1.47.2](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.1...v1.47.2) (2026-10-08)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* **qualification:** exclude pending parallel syntax by content, not filename ([#755](https://github.com/0xPlayerOne/code-foundry/issues/755)) ([1f7cae8](https://github.com/0xPlayerOne/code-foundry/commit/1f7cae8167002061850e56e3dc0fa800a69d7be9))
|
|
30
|
+
|
|
3
31
|
## [1.47.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.0...v1.47.1) (2026-10-08)
|
|
4
32
|
|
|
5
33
|
|
|
@@ -112,37 +140,9 @@
|
|
|
112
140
|
|
|
113
141
|
* **release:** query the version-PR branch directly in the REST fallback ([#722](https://github.com/0xPlayerOne/code-foundry/issues/722)) ([b38f394](https://github.com/0xPlayerOne/code-foundry/commit/b38f394c0ca6438117fdd2f45bd106b0b145a0f9))
|
|
114
142
|
|
|
115
|
-
## [1.44.7](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.6...v1.44.7) (2026-10-05)
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
### Bug Fixes
|
|
119
|
-
|
|
120
|
-
* **release:** complete rejected release-please runs over REST ([#720](https://github.com/0xPlayerOne/code-foundry/issues/720)) ([14e88b5](https://github.com/0xPlayerOne/code-foundry/commit/14e88b5561803fc8d5d3a77b67b99e1be90bc4af))
|
|
121
|
-
|
|
122
|
-
## [1.44.6](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.5...v1.44.6) (2026-10-05)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
### Bug Fixes
|
|
126
|
-
|
|
127
|
-
* **config:** pin the lint-bearing CI lane to a standard runner by default ([#718](https://github.com/0xPlayerOne/code-foundry/issues/718)) ([fc0ed14](https://github.com/0xPlayerOne/code-foundry/commit/fc0ed14434151fb11eef7c0d4c324c7a370d5058))
|
|
128
|
-
|
|
129
|
-
## [1.44.5](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.4...v1.44.5) (2026-10-05)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
### Bug Fixes
|
|
133
|
-
|
|
134
|
-
* **release:** probe the tag-creation write before trusting the automation token ([#716](https://github.com/0xPlayerOne/code-foundry/issues/716)) ([fabaddc](https://github.com/0xPlayerOne/code-foundry/commit/fabaddcb05d5dc701248b693f91be6ee433f8d39))
|
|
135
|
-
|
|
136
|
-
## [1.44.4](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.3...v1.44.4) (2026-10-03)
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
### Bug Fixes
|
|
140
|
-
|
|
141
|
-
* **ci:** declare the e2e shard inputs on the no-codeql orchestrator ([#714](https://github.com/0xPlayerOne/code-foundry/issues/714)) ([7500208](https://github.com/0xPlayerOne/code-foundry/commit/7500208f3b25dfe55c41ea45b382e021cf804012))
|
|
142
|
-
|
|
143
143
|
<!-- code-foundry: packaged changelog -->
|
|
144
144
|
|
|
145
145
|
---
|
|
146
146
|
|
|
147
|
-
This packaged changelog lists the 20 most recent releases;
|
|
147
|
+
This packaged changelog lists the 20 most recent releases; 247 older releases are omitted to keep the package small.
|
|
148
148
|
See the [full changelog](https://github.com/0xPlayerOne/code-foundry/blob/main/CHANGELOG.md) for the complete history.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "code-foundry",
|
|
3
|
-
"version": "1.47.
|
|
3
|
+
"version": "1.47.5",
|
|
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": {
|
|
@@ -157,17 +157,16 @@ function lintContracts(consumer, candidate, destination, actionlint, version) {
|
|
|
157
157
|
paths.push(target)
|
|
158
158
|
}
|
|
159
159
|
// Check all candidate callees as well as rendered callers, without executing them.
|
|
160
|
-
// actionlint v1.7.12 (still the latest release as of 2026-10-
|
|
160
|
+
// actionlint v1.7.12 (still the latest release as of 2026-10-08) predates
|
|
161
161
|
// the June 2026 step parallelism keywords (background/wait/wait-all/
|
|
162
162
|
// cancel/parallel), so files using them are excluded from this pass until
|
|
163
163
|
// actionlint ships support — GitHub's own loader accepts the syntax, which
|
|
164
164
|
// is verified by live runs and pinned in test/billing-lanes.test.mjs.
|
|
165
|
-
//
|
|
166
|
-
//
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
)
|
|
165
|
+
// The exclusion is content-based so repository-owned workflows adopting the
|
|
166
|
+
// keywords (adea's desktop-shell, for one) stay covered without list
|
|
167
|
+
// maintenance. Restore the removal of this exclusion when
|
|
168
|
+
// rhysd/actionlint releases post-parallel support.
|
|
169
|
+
const workflows = actionlintEligibleWorkflows(join(destination, '.github/workflows'))
|
|
171
170
|
run(
|
|
172
171
|
actionlint,
|
|
173
172
|
[
|
|
@@ -180,6 +179,15 @@ function lintContracts(consumer, candidate, destination, actionlint, version) {
|
|
|
180
179
|
return paths.length
|
|
181
180
|
}
|
|
182
181
|
|
|
182
|
+
/** @param {string} workflowsDirectory */
|
|
183
|
+
export function actionlintEligibleWorkflows(workflowsDirectory) {
|
|
184
|
+
const pendingParallelSyntax = /^[ \t]*(?:-[ \t]+)?(?:background|wait|wait-all|cancel|parallel):/m
|
|
185
|
+
return readdirSync(workflowsDirectory).filter((name) => {
|
|
186
|
+
if (!/\.ya?ml$/.test(name)) return false
|
|
187
|
+
return !pendingParallelSyntax.test(readFileSync(join(workflowsDirectory, name), 'utf8'))
|
|
188
|
+
})
|
|
189
|
+
}
|
|
190
|
+
|
|
183
191
|
/** @param {{ packageFile: string, sourceSha: string, reportPath: string, actionlint?: string }} options */
|
|
184
192
|
export function qualifyCandidate(options) {
|
|
185
193
|
if (!/^[a-f0-9]{40}$/.test(options.sourceSha))
|
package/src/lib/merge-queue.mjs
CHANGED