code-foundry 0.31.7 → 0.31.9

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.
@@ -8,7 +8,7 @@ dependency_review: auto
8
8
  package_manager: bun
9
9
  toolchain: auto
10
10
  runtime_repository: 0xPlayerOne/code-foundry
11
- runtime_ref: v0.31.6
11
+ runtime_ref: v0.31.7
12
12
  release_type: node
13
13
  npm_publish: true
14
14
  license: agpl-3.0-or-later
@@ -12,7 +12,7 @@ on:
12
12
  description: Code Foundry runtime tag or ref.
13
13
  required: false
14
14
  type: string
15
- default: v0.31.6
15
+ default: v0.31.7
16
16
  runner:
17
17
  description: Runner used by CI jobs.
18
18
  required: false
@@ -12,7 +12,7 @@ on:
12
12
  description: Code Foundry runtime tag or ref.
13
13
  required: false
14
14
  type: string
15
- default: v0.31.6
15
+ default: v0.31.7
16
16
  runner:
17
17
  description: Runner used by CodeQL jobs.
18
18
  required: false
@@ -17,7 +17,7 @@ on:
17
17
  description: Code Foundry runtime tag or ref.
18
18
  required: false
19
19
  type: string
20
- default: v0.31.6
20
+ default: v0.31.7
21
21
 
22
22
  permissions:
23
23
  actions: write
@@ -12,7 +12,7 @@ on:
12
12
  description: Code Foundry runtime tag or ref.
13
13
  required: false
14
14
  type: string
15
- default: v0.31.6
15
+ default: v0.31.7
16
16
  runner:
17
17
  description: Runner used by Security jobs.
18
18
  required: false
@@ -12,7 +12,7 @@ on:
12
12
  description: Code Foundry runtime tag or ref.
13
13
  required: false
14
14
  type: string
15
- default: v0.31.6
15
+ default: v0.31.7
16
16
  runner:
17
17
  description: Runner used by non-unit test jobs.
18
18
  required: false
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.31.9](https://github.com/0xPlayerOne/code-foundry/compare/v0.31.8...v0.31.9) (2026-07-30)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **doctor:** deduplicate required check contexts ([f244494](https://github.com/0xPlayerOne/code-foundry/commit/f24449448f177c99978fe216b92385909f275d89))
9
+
10
+ ## [0.31.8](https://github.com/0xPlayerOne/code-foundry/compare/v0.31.7...v0.31.8) (2026-07-30)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **runtime:** pin self workflows to v0.31.7 ([565b5bc](https://github.com/0xPlayerOne/code-foundry/commit/565b5bcc2b8f4ade8b3addc02f72c96a42308325))
16
+
3
17
  ## [0.31.7](https://github.com/0xPlayerOne/code-foundry/compare/v0.31.6...v0.31.7) (2026-07-30)
4
18
 
5
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "0.31.7",
3
+ "version": "0.31.9",
4
4
  "description": "A fast, language-aware repository factory for agent-ready workflows, testing, security, and release automation.",
5
5
  "type": "module",
6
6
  "license": "AGPL-3.0-or-later",
@@ -18,10 +18,7 @@ export function doctorGithub(root) {
18
18
  const protection = ghJson(['api', `repos/${repository}/branches/main/protection`])
19
19
  if (!protection) warnings.push('main branch protection is not readable or is not configured.')
20
20
  else {
21
- const required = [
22
- ...(protection.required_status_checks?.contexts ?? []),
23
- ...(protection.required_status_checks?.checks ?? []).map(/** @param {any} check */ (check) => check.context),
24
- ].filter(Boolean)
21
+ const required = requiredContexts(protection)
25
22
  details.requiredChecks = required
26
23
  const duplicateNames = required.filter((name) => /\b([^/]+) \/ \1\b/i.test(name))
27
24
  if (duplicateNames.length) errors.push(`required checks contain duplicate workflow prefixes: ${duplicateNames.join(', ')}`)
@@ -34,10 +31,7 @@ export function doctorGithub(root) {
34
31
  details.observedChecks = observed
35
32
  if (!observed.length) warnings.push('no check runs were observed on the current main commit; exact check validation is deferred until CI runs.')
36
33
  if (protection?.required_status_checks) {
37
- const required = [
38
- ...(protection.required_status_checks.contexts ?? []),
39
- ...(protection.required_status_checks.checks ?? []).map(/** @param {any} check */ (check) => check.context),
40
- ].filter(Boolean)
34
+ const required = requiredContexts(protection)
41
35
  const missing = required.filter((name) => observed.length && !observed.includes(name))
42
36
  if (missing.length) warnings.push(`required checks not observed on current main: ${missing.join(', ')}`)
43
37
  }
@@ -75,6 +69,14 @@ export function doctorGithub(root) {
75
69
  return { errors, warnings, details }
76
70
  }
77
71
 
72
+ /** @param {any} protection @returns {string[]} */
73
+ function requiredContexts(protection) {
74
+ return [...new Set([
75
+ ...(protection.required_status_checks?.contexts ?? []),
76
+ ...(protection.required_status_checks?.checks ?? []).map(/** @param {any} check */ (check) => check.context),
77
+ ].filter(Boolean))]
78
+ }
79
+
78
80
  /** @param {string} root @returns {{ errors: string[], warnings: string[] }} */
79
81
  function inspectWorkflows(root) {
80
82
  /** @type {string[]} */