code-foundry 1.28.8 → 1.28.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.28.9](https://github.com/0xPlayerOne/code-foundry/compare/v1.28.8...v1.28.9) (2026-09-11)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **sync:** render the configured Rust shards into every CodeQL lane ([#612](https://github.com/0xPlayerOne/code-foundry/issues/612)) ([4e7eb2f](https://github.com/0xPlayerOne/code-foundry/commit/4e7eb2f03ba34b4fe459e8ce302bcbf3303b26cc))
9
+
3
10
  ## [1.28.8](https://github.com/0xPlayerOne/code-foundry/compare/v1.28.7...v1.28.8) (2026-09-11)
4
11
 
5
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "1.28.8",
3
+ "version": "1.28.9",
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": {
@@ -733,14 +733,23 @@ function renderWorkflow(content, config, repository, ref, rustCodeql, file, self
733
733
  if (!value) continue
734
734
  rendered = rendered.replace(new RegExp(`^(\\s+${input}:)\\s+.*$`, 'm'), `$1 ${value}`)
735
735
  }
736
- rendered = rendered.replace(/^(\s+rust-shards:)\s+.*$/m, `$1 '${rustCodeql.shards}'`)
737
- rendered = rendered.replace(/^(\s+rust-threads:)\s+.*$/m, `$1 '${rustCodeql.threads}'`)
738
- rendered = rendered.replace(/^(\s+rust-max-parallel:)\s+.*$/m, `$1 ${rustCodeql.maxParallel}`)
736
+ // Every Rust CodeQL lane in the caller must carry the configured shard
737
+ // list. A SARIF category is derived from the shard string, so a caller that
738
+ // renders the configuration into the pull-request lane while a second lane
739
+ // keeps the template literal makes the two lanes report disjoint
740
+ // categories. The default-branch baseline then never matches the pull
741
+ // request, and the code-scanning gate stalls every merge while every
742
+ // required check passes. Shards partition one scan, so the same list is
743
+ // correct in both lanes: `["all"]` stays a single pass, and a real shard
744
+ // list splits the same work in both places.
745
+ rendered = rendered.replace(/^(\s+rust-shards:)\s+.*$/gm, `$1 '${rustCodeql.shards}'`)
746
+ rendered = rendered.replace(/^(\s+rust-threads:)\s+.*$/gm, `$1 '${rustCodeql.threads}'`)
747
+ rendered = rendered.replace(/^(\s+rust-max-parallel:)\s+.*$/gm, `$1 ${rustCodeql.maxParallel}`)
739
748
  }
740
749
  if (workflow === 'codeql') {
741
- rendered = rendered.replace(/^(\s+rust-shards:)\s+.*$/m, `$1 '${rustCodeql.shards}'`)
742
- rendered = rendered.replace(/^(\s+rust-threads:)\s+.*$/m, `$1 '${rustCodeql.threads}'`)
743
- rendered = rendered.replace(/^(\s+rust-max-parallel:)\s+.*$/m, `$1 ${rustCodeql.maxParallel}`)
750
+ rendered = rendered.replace(/^(\s+rust-shards:)\s+.*$/gm, `$1 '${rustCodeql.shards}'`)
751
+ rendered = rendered.replace(/^(\s+rust-threads:)\s+.*$/gm, `$1 '${rustCodeql.threads}'`)
752
+ rendered = rendered.replace(/^(\s+rust-max-parallel:)\s+.*$/gm, `$1 ${rustCodeql.maxParallel}`)
744
753
  }
745
754
  if (workflow === 'opencode-security') {
746
755
  const model = configured(config.opencode_security_model, '').trim()