code-foundry 1.52.0 → 1.52.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.
- package/.github/workflows/qualification-receipt.yml +2 -2
- package/.github/workflows/release.yml +12 -9
- package/.github/workflows/validation-billing.yml +1 -1
- package/.github/workflows/validation-no-codeql.yml +1 -1
- package/.github/workflows/validation.yml +1 -1
- package/CHANGELOG.md +15 -15
- package/docs/PERFORMANCE.md +1 -8
- package/package.json +1 -1
|
@@ -122,7 +122,7 @@ jobs:
|
|
|
122
122
|
FOUNDRY_REQUIRED_JOB_NAMES_JSON: ${{ inputs.required-job-names-json }}
|
|
123
123
|
run: |
|
|
124
124
|
if [ "$SOURCE_READY" = success ] && [ "$RUNTIME_READY" = success ] && [ "$NODE_READY" = success ] && [ "$POLICY_READY" = success ] && [ -f "$RUNTIME_PATH/src/commands/qualification-receipt.mjs" ]; then
|
|
125
|
-
node "$RUNTIME_PATH/src/commands/qualification-receipt.mjs" verify
|
|
125
|
+
node "$RUNTIME_PATH/src/commands/qualification-receipt.mjs" verify
|
|
126
126
|
else
|
|
127
127
|
echo 'reuse=false' >> "$GITHUB_OUTPUT"
|
|
128
128
|
echo 'reason=qualification or version-only release policy unavailable; using full validation' >> "$GITHUB_OUTPUT"
|
|
@@ -185,7 +185,7 @@ jobs:
|
|
|
185
185
|
FOUNDRY_REQUIRED_JOB_NAMES_JSON: ${{ inputs.required-job-names-json }}
|
|
186
186
|
run: |
|
|
187
187
|
if [ "$SOURCE_READY" = success ] && [ "$RUNTIME_READY" = success ] && [ "$NODE_READY" = success ] && [ -f "$RUNTIME_PATH/src/commands/qualification-receipt.mjs" ]; then
|
|
188
|
-
node "$RUNTIME_PATH/src/commands/qualification-receipt.mjs" produce
|
|
188
|
+
node "$RUNTIME_PATH/src/commands/qualification-receipt.mjs" produce
|
|
189
189
|
else
|
|
190
190
|
echo 'reuse=false' >> "$GITHUB_OUTPUT"
|
|
191
191
|
echo 'reason=receipt setup unavailable' >> "$GITHUB_OUTPUT"
|
|
@@ -275,23 +275,26 @@ jobs:
|
|
|
275
275
|
|
|
276
276
|
const sleep = (seconds) =>
|
|
277
277
|
execFileSync('sleep', [String(seconds)]);
|
|
278
|
-
//
|
|
279
|
-
//
|
|
280
|
-
//
|
|
278
|
+
// gh reports a process exit code, not an HTTP status, in error.status.
|
|
279
|
+
// Retry only recognized transient read failures; a failed write may
|
|
280
|
+
// already have taken effect and must not be repeated blindly.
|
|
281
281
|
const gh = (args, options = {}) => {
|
|
282
|
-
|
|
282
|
+
const isRead = args.includes('GET');
|
|
283
|
+
for (let attempt = 0; attempt < 3; attempt += 1) {
|
|
283
284
|
try {
|
|
284
|
-
if (wait) sleep(wait);
|
|
285
285
|
return execFileSync('gh', args, {
|
|
286
286
|
...options,
|
|
287
287
|
encoding: 'utf8',
|
|
288
288
|
maxBuffer: 32 * 1024 * 1024,
|
|
289
289
|
});
|
|
290
290
|
} catch (error) {
|
|
291
|
-
const
|
|
292
|
-
const
|
|
293
|
-
|
|
294
|
-
|
|
291
|
+
const detail = String(error.stderr ?? error.message ?? '');
|
|
292
|
+
const secondary = /secondary rate limit|HTTP 429/i.test(detail);
|
|
293
|
+
const unavailable = /HTTP 50[0234]\b/i.test(detail);
|
|
294
|
+
if (!isRead || attempt === 2 || (!secondary && !unavailable)) throw error;
|
|
295
|
+
const wait = secondary ? [60, 120][attempt] : [10, 30][attempt];
|
|
296
|
+
console.log(`Transient GitHub read failure; retrying in ${wait}s`);
|
|
297
|
+
sleep(wait);
|
|
295
298
|
}
|
|
296
299
|
}
|
|
297
300
|
throw new Error('unreachable');
|
|
@@ -1286,7 +1286,7 @@ jobs:
|
|
|
1286
1286
|
name: Qualification receipt
|
|
1287
1287
|
needs: [fast-lanes, lint, type-check, unit, e2e, audit, codeql, gate]
|
|
1288
1288
|
if: >-
|
|
1289
|
-
vars.CI_BILLING_PAUSED != 'true' && inputs.mode == 'audit' &&
|
|
1289
|
+
!cancelled() && vars.CI_BILLING_PAUSED != 'true' && inputs.mode == 'audit' &&
|
|
1290
1290
|
inputs.release-qualification-receipts == true &&
|
|
1291
1291
|
github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'main' &&
|
|
1292
1292
|
needs.fast-lanes.result == 'success' && needs.lint.result == 'success' &&
|
|
@@ -272,7 +272,7 @@ jobs:
|
|
|
272
272
|
name: Qualification receipt
|
|
273
273
|
needs: [ci, test, security, eval, gate]
|
|
274
274
|
if: >-
|
|
275
|
-
vars.CI_BILLING_PAUSED != 'true' && inputs.mode == 'audit' &&
|
|
275
|
+
!cancelled() && vars.CI_BILLING_PAUSED != 'true' && inputs.mode == 'audit' &&
|
|
276
276
|
inputs.release-qualification-receipts == true &&
|
|
277
277
|
github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'main' &&
|
|
278
278
|
needs.ci.result == 'success' && needs.test.result == 'success' &&
|
|
@@ -288,7 +288,7 @@ jobs:
|
|
|
288
288
|
name: Qualification receipt
|
|
289
289
|
needs: [ci, test, security, codeql, eval, gate]
|
|
290
290
|
if: >-
|
|
291
|
-
vars.CI_BILLING_PAUSED != 'true' && inputs.mode == 'audit' &&
|
|
291
|
+
!cancelled() && vars.CI_BILLING_PAUSED != 'true' && inputs.mode == 'audit' &&
|
|
292
292
|
inputs.release-qualification-receipts == true &&
|
|
293
293
|
github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'main' &&
|
|
294
294
|
needs.ci.result == 'success' && needs.test.result == 'success' &&
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.52.2](https://github.com/0xPlayerOne/code-foundry/compare/v1.52.1...v1.52.2) (2026-10-30)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* retry transient release fallback reads safely ([#800](https://github.com/0xPlayerOne/code-foundry/issues/800)) ([c91e23b](https://github.com/0xPlayerOne/code-foundry/commit/c91e23bfaea9f107c8af9fa9bdf391308fa5ebf2))
|
|
9
|
+
|
|
10
|
+
## [1.52.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.52.0...v1.52.1) (2026-10-30)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* restore source qualification receipt reuse ([#801](https://github.com/0xPlayerOne/code-foundry/issues/801)) ([989bdbf](https://github.com/0xPlayerOne/code-foundry/commit/989bdbfe5af6d2003ca97dde456d8c86fb92078c))
|
|
16
|
+
|
|
3
17
|
## [1.52.0](https://github.com/0xPlayerOne/code-foundry/compare/v1.51.1...v1.52.0) (2026-10-30)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -131,23 +145,9 @@
|
|
|
131
145
|
|
|
132
146
|
* vite-plus-cache-post-job-save ([#765](https://github.com/0xPlayerOne/code-foundry/issues/765)) ([3f82e85](https://github.com/0xPlayerOne/code-foundry/commit/3f82e850f5c09af6cea4de6f1a791d098bbd2f6e))
|
|
133
147
|
|
|
134
|
-
## [1.48.0](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.5...v1.48.0) (2026-10-16)
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
### Features
|
|
138
|
-
|
|
139
|
-
* add opt-in Vite+ task runner support ([#763](https://github.com/0xPlayerOne/code-foundry/issues/763)) ([f7970cd](https://github.com/0xPlayerOne/code-foundry/commit/f7970cdf1c1880aaee159d2de79ba043f93711a7))
|
|
140
|
-
|
|
141
|
-
## [1.47.5](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.4...v1.47.5) (2026-10-15)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
### Bug Fixes
|
|
145
|
-
|
|
146
|
-
* validation-issue-read-v1471 ([#759](https://github.com/0xPlayerOne/code-foundry/issues/759)) ([7119b3e](https://github.com/0xPlayerOne/code-foundry/commit/7119b3e2baebfbfdd47d32428cbf5df2f2079afa))
|
|
147
|
-
|
|
148
148
|
<!-- code-foundry: packaged changelog -->
|
|
149
149
|
|
|
150
150
|
---
|
|
151
151
|
|
|
152
|
-
This packaged changelog lists the 20 most recent releases;
|
|
152
|
+
This packaged changelog lists the 20 most recent releases; 268 older releases are omitted to keep the package small.
|
|
153
153
|
See the [full changelog](https://github.com/0xPlayerOne/code-foundry/blob/main/CHANGELOG.md) for the complete history.
|
package/docs/PERFORMANCE.md
CHANGED
|
@@ -31,14 +31,7 @@ changelog size and its packaged (trimmed) size as informational metrics. At
|
|
|
31
31
|
v1.44.0 the measured artifact was 280,902 packed bytes, 1,070,333 unpacked bytes,
|
|
32
32
|
and 118 files.
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
1,200,759 unpacked bytes, and 120 files. Release caller publication overrides
|
|
36
|
-
measure 316,295 packed bytes, 1,222,905 unpacked bytes, and 120 files: an
|
|
37
|
-
increase of 442 packed bytes and 22,146 unpacked bytes. The packed limit was
|
|
38
|
-
raised to 317,000 bytes for the optional build environment input in the
|
|
39
|
-
Cloudflare reusable workflow, which ships in the npm package. This leaves 235
|
|
40
|
-
bytes above the measured 316,765-byte artifact. The unpacked and file-count
|
|
41
|
-
limits remain 1,225,000 bytes and 120 files.
|
|
34
|
+
v1.52.1 main no-changelog: 316,788 packed, 1,224,968 unpacked, 120 files. Branch checker: 316,744 packed, 1,224,894 unpacked, 120 files. v1.52.0 published (trimmed changelog): 316,867 packed, 1,225,194 unpacked. Limits: 317,000 packed, 1,225,000 unpacked, 120 files.
|
|
42
35
|
|
|
43
36
|
The published package ships a changelog trimmed to the 20 most recent releases
|
|
44
37
|
with a link to the full history on GitHub. `scripts/package-changelog.mjs`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "code-foundry",
|
|
3
|
-
"version": "1.52.
|
|
3
|
+
"version": "1.52.2",
|
|
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": {
|