code-foundry 1.44.9 → 1.44.11

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.
@@ -202,11 +202,15 @@ jobs:
202
202
  write_ok=false
203
203
  if [ "$HAS_AUTOMATION_TOKEN" = true ] && gh api "repos/${GITHUB_REPOSITORY}" --jq '.full_name' >/dev/null 2>&1; then
204
204
  probe_ref="refs/tags/token-write-probe-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
205
- if gh api -X POST "repos/${GITHUB_REPOSITORY}/git/refs" \
206
- -f "ref=$probe_ref" -f "sha=${GITHUB_SHA}" >/dev/null 2>&1; then
207
- gh api -X DELETE "repos/${GITHUB_REPOSITORY}/git/refs/tags/token-write-probe-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" >/dev/null 2>&1 || true
208
- write_ok=true
209
- fi
205
+ for wait in 0 10 30; do
206
+ sleep "$wait"
207
+ if gh api -X POST "repos/${GITHUB_REPOSITORY}/git/refs" \
208
+ -f "ref=$probe_ref" -f "sha=${GITHUB_SHA}" >/dev/null 2>&1; then
209
+ gh api -X DELETE "repos/${GITHUB_REPOSITORY}/git/refs/tags/token-write-probe-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" >/dev/null 2>&1 || true
210
+ write_ok=true
211
+ break
212
+ fi
213
+ done
210
214
  fi
211
215
  if [ "$write_ok" = true ]; then
212
216
  echo "auto_merge=true" >> "$GITHUB_OUTPUT"
@@ -262,8 +266,28 @@ jobs:
262
266
  const { execFileSync } = require('node:child_process');
263
267
  const fs = require('node:fs');
264
268
 
265
- const gh = (args) =>
266
- execFileSync('gh', args, { encoding: 'utf8', maxBuffer: 32 * 1024 * 1024 });
269
+ const sleep = (seconds) =>
270
+ execFileSync('sleep', [String(seconds)]);
271
+ // Writes intermittently hit GitHub's secondary rate limiting from
272
+ // busy automation accounts (403 with the generic not-accessible
273
+ // message); back off and retry before giving up.
274
+ const gh = (args) => {
275
+ for (const wait of [0, 10, 30]) {
276
+ try {
277
+ if (wait) sleep(wait);
278
+ return execFileSync('gh', args, {
279
+ encoding: 'utf8',
280
+ maxBuffer: 32 * 1024 * 1024,
281
+ });
282
+ } catch (error) {
283
+ const status = error.status;
284
+ const retriable = status === null || status === 403 || status === 429 || status >= 500;
285
+ if (!retriable || wait === 30) throw error;
286
+ console.log(`gh call failed (status ${status ?? 'unknown'}); retrying in ${wait === 0 ? 10 : 30}s`);
287
+ }
288
+ }
289
+ throw new Error('unreachable');
290
+ };
267
291
 
268
292
  const repo = process.env.REPOSITORY;
269
293
  const config = JSON.parse(fs.readFileSync(process.env.CONFIG_FILE, 'utf8'));
@@ -308,13 +332,20 @@ jobs:
308
332
  if (releasesForCheck.some((release) => release.tag_name === tag)) {
309
333
  console.log(`${tag}: release object already exists`);
310
334
  } else {
311
- // No release object for this tag: create it.
312
- try {
313
- if (!tags.includes(tag)) {
335
+ // No release object for this tag: create it. The tag may also
336
+ // already exist from a partial earlier attempt; the release
337
+ // creation adopts an existing tag, so ref-creation errors are
338
+ // not fatal.
339
+ if (!tags.includes(tag)) {
340
+ try {
314
341
  gh(['api', `repos/${repo}/git/refs`, '-X', 'POST',
315
342
  '-f', `ref=refs/tags/${tag}`, '-f', `sha=${pull.merge_commit_sha}`]);
316
343
  console.log(`${tag}: tag created at ${pull.merge_commit_sha.slice(0, 10)}`);
344
+ } catch (error) {
345
+ console.log(`${tag}: tag ref creation skipped: ${String(error.message).slice(0, 120)}`);
317
346
  }
347
+ }
348
+ try {
318
349
  const body = JSON.stringify({
319
350
  tag_name: tag,
320
351
  name: tag,
@@ -326,7 +357,7 @@ jobs:
326
357
  console.log(`${tag}: release object created`);
327
358
  } catch (error) {
328
359
  failures += 1;
329
- console.log(`${tag}: creation failed: ${error.message}`);
360
+ console.log(`${tag}: release creation failed: ${String(error.message).slice(0, 160)}`);
330
361
  continue;
331
362
  }
332
363
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.44.11](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.10...v1.44.11) (2026-10-06)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **release:** retry the token probe and REST fallback writes with backoff ([#729](https://github.com/0xPlayerOne/code-foundry/issues/729)) ([ad28e18](https://github.com/0xPlayerOne/code-foundry/commit/ad28e18326f0ee8c25950fb649eb81cdb3dc0a1a))
9
+
10
+ ## [1.44.10](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.9...v1.44.10) (2026-10-06)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **release:** treat ref-creation errors in the REST fallback as non-fatal ([#727](https://github.com/0xPlayerOne/code-foundry/issues/727)) ([75ea614](https://github.com/0xPlayerOne/code-foundry/commit/75ea61465e7c4cacd39e3aa8c52df93c2ea9bf03))
16
+
3
17
  ## [1.44.9](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.8...v1.44.9) (2026-10-06)
4
18
 
5
19
 
@@ -131,28 +145,9 @@
131
145
 
132
146
  * **hooks:** delegate the generated pre-commit hook to the runtime ([#684](https://github.com/0xPlayerOne/code-foundry/issues/684)) ([5d9a571](https://github.com/0xPlayerOne/code-foundry/commit/5d9a5714aeff0d48397e3be51b22e08395bfb5ce))
133
147
 
134
- ## [1.39.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.39.0...v1.39.1) (2026-10-01)
135
-
136
-
137
- ### Bug Fixes
138
-
139
- * report inactive main rulesets in github doctor ([#682](https://github.com/0xPlayerOne/code-foundry/issues/682)) ([695a0b4](https://github.com/0xPlayerOne/code-foundry/commit/695a0b437910aa8e664a481c1648dbadcc1a2de8))
140
-
141
- ## [1.39.0](https://github.com/0xPlayerOne/code-foundry/compare/v1.38.1...v1.39.0) (2026-10-01)
142
-
143
-
144
- ### Features
145
-
146
- * **ci:** surface ungated scheduled workflows in the billing pause controls ([#681](https://github.com/0xPlayerOne/code-foundry/issues/681)) ([ef48f9a](https://github.com/0xPlayerOne/code-foundry/commit/ef48f9a25aa0b22f82b0ed8a512bc1a65d08d8e9))
147
-
148
-
149
- ### Maintenance
150
-
151
- * register the adea-ai ui and themes consumers in the fleet manifest ([#680](https://github.com/0xPlayerOne/code-foundry/issues/680)) ([f50e6c6](https://github.com/0xPlayerOne/code-foundry/commit/f50e6c6a4ef4b7f0396cdce21f53070fec818c50))
152
-
153
148
  <!-- code-foundry: packaged changelog -->
154
149
 
155
150
  ---
156
151
 
157
- This packaged changelog lists the 20 most recent releases; 229 older releases are omitted to keep the package small.
152
+ This packaged changelog lists the 20 most recent releases; 231 older releases are omitted to keep the package small.
158
153
  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.44.9",
3
+ "version": "1.44.11",
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": {