code-foundry 1.50.0 → 1.50.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.50.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.50.0...v1.50.1) (2026-10-29)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **sync:** replace complete consumer runtime ref ([#793](https://github.com/0xPlayerOne/code-foundry/issues/793)) ([6a0b5ef](https://github.com/0xPlayerOne/code-foundry/commit/6a0b5ef4f9a02c781745fa64f2f9748ea679f2d5))
9
+
3
10
  ## [1.50.0](https://github.com/0xPlayerOne/code-foundry/compare/v1.49.3...v1.50.0) (2026-10-29)
4
11
 
5
12
 
@@ -133,16 +140,9 @@
133
140
 
134
141
  * **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))
135
142
 
136
- ## [1.47.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.0...v1.47.1) (2026-10-08)
137
-
138
-
139
- ### Tests
140
-
141
- * **doctor:** pin the machine-hook shadow warning ([#753](https://github.com/0xPlayerOne/code-foundry/issues/753)) ([f634269](https://github.com/0xPlayerOne/code-foundry/commit/f634269424580d8d34323319288747587b6d6ae3))
142
-
143
143
  <!-- code-foundry: packaged changelog -->
144
144
 
145
145
  ---
146
146
 
147
- This packaged changelog lists the 20 most recent releases; 262 older releases are omitted to keep the package small.
147
+ This packaged changelog lists the 20 most recent releases; 263 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.50.0",
3
+ "version": "1.50.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": {
@@ -1094,6 +1094,26 @@ export function renderDevChannel(config) {
1094
1094
  )
1095
1095
  }
1096
1096
 
1097
+ /**
1098
+ * Pin consumer runtime refs without retaining the self-CI expression used by
1099
+ * the Code Foundry repository. Self callers keep their event-relative refs.
1100
+ *
1101
+ * @param {string} content
1102
+ * @param {string} ref
1103
+ * @param {boolean} selfRepository
1104
+ */
1105
+ export function pinRuntimeRefs(content, ref, selfRepository) {
1106
+ if (selfRepository) return content
1107
+ const foldedRuntimeRef =
1108
+ /^([ \t]*runtime-ref:)[ \t]*>-[ \t]*\r?\n(?:[ \t]+\$\{\{[^\r\n]*\}\}[ \t]*(?:\r?\n|$))+/gm
1109
+ return content
1110
+ .replace(
1111
+ foldedRuntimeRef,
1112
+ (match, key) => `${key} ${ref}${match.endsWith('\r\n') ? '\r\n' : '\n'}`
1113
+ )
1114
+ .replace(/^([ \t]*runtime-ref:)[ \t]+.*$/gm, (_, key) => `${key} ${ref}`)
1115
+ }
1116
+
1097
1117
  /**
1098
1118
  * @param {string} content
1099
1119
  * @param {Record<string,string>} config
@@ -1149,11 +1169,12 @@ function renderWorkflow(content, config, repository, ref, rustCodeql, file, self
1149
1169
  new RegExp(`${escapeRegExp(remotePrefix)}([^\\s@]+)`, 'g'),
1150
1170
  `$&@${ref}`
1151
1171
  )
1152
- // Pin every runtime reference in the rendered caller: the orchestrator input
1153
- // in the `with:` block and the mode job's runtime checkout. Self templates
1154
- // use ${{ github.sha }} and are only rewritten when rendered for consumers.
1155
- rendered = rendered.replace(/^(\s+runtime-ref:)\s+.*$/gm, `$1 ${ref}`)
1156
- rendered = rendered.replace(/^(\s+ref:)\s+\$\{\{\s*github\.sha\s*\}\}\s*$/gm, `$1 ${ref}`)
1172
+ // Replace complete folded self-CI runtime expressions when rendering a
1173
+ // consumer. The source repository keeps its event-relative runtime refs.
1174
+ rendered = pinRuntimeRefs(rendered, ref, selfRepository)
1175
+ if (!selfRepository) {
1176
+ rendered = rendered.replace(/^(\s+ref:)\s+\$\{\{\s*github\.sha\s*\}\}\s*$/gm, `$1 ${ref}`)
1177
+ }
1157
1178
  rendered = rendered.replace(/^(\s+runtime-repository:)\s+.*$/gm, `$1 ${repository}`)
1158
1179
  rendered = rendered.replace(
1159
1180
  new RegExp(`^(\\s+repository:)\\s+0xPlayerOne\\/code-foundry\\s*$`, 'gm'),