code-foundry 1.36.2 → 1.36.3

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.
@@ -17,7 +17,7 @@ updates:
17
17
  github-actions:
18
18
  applies-to: version-updates
19
19
  patterns: ['*']
20
- - package-ecosystem: npm
20
+ - package-ecosystem: bun
21
21
  directory: /
22
22
  target-branch: staging
23
23
  schedule:
@@ -25,7 +25,7 @@ updates:
25
25
  day: sunday
26
26
  open-pull-requests-limit: 99
27
27
  groups:
28
- npm-dependencies:
28
+ bun-dependencies:
29
29
  applies-to: version-updates
30
30
  patterns: ['*']
31
31
  ignore:
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.36.3](https://github.com/0xPlayerOne/code-foundry/compare/v1.36.2...v1.36.3) (2026-09-29)
4
+
5
+
6
+ ### Maintenance
7
+
8
+ * track the JavaScript Dependabot ecosystem as bun by default ([#648](https://github.com/0xPlayerOne/code-foundry/issues/648)) ([6aa9712](https://github.com/0xPlayerOne/code-foundry/commit/6aa9712904340a7e4783f697a0e02d2be6ab1dce))
9
+
3
10
  ## [1.36.2](https://github.com/0xPlayerOne/code-foundry/compare/v1.36.1...v1.36.2) (2026-09-29)
4
11
 
5
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "1.36.2",
3
+ "version": "1.36.3",
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": {
@@ -818,11 +818,13 @@ function removeWorkflowBlock(content, blockId) {
818
818
 
819
819
  /**
820
820
  * Dependabot updates land on the repository's integration branch. Direct
821
- * repositories have no staging branch, so every update targets main. Cargo,
822
- * npm, and pip updates are emitted only when Rust, TypeScript, or Python is
823
- * part of the configured language set, respectively; weekly updater runs
824
- * fail when an ecosystem has no manifests to read, so unconfigured
825
- * ecosystems are dropped instead of left to error.
821
+ * repositories have no staging branch, so every update targets main. The
822
+ * JavaScript ecosystem block ships as `bun` (the fleet default) and is
823
+ * retargeted to `npm` for consumers whose `package_manager` is npm; Cargo,
824
+ * the JavaScript block, and pip updates are emitted only when Rust,
825
+ * TypeScript, or Python is part of the configured language set,
826
+ * respectively; weekly updater runs fail when an ecosystem has no manifests
827
+ * to read, so unconfigured ecosystems are dropped instead of left to error.
826
828
  *
827
829
  * The billing pause must also cover Dependabot: its update runs execute as
828
830
  * Actions workflows under the `dynamic` event, so the `CI_BILLING_PAUSED`
@@ -843,11 +845,20 @@ export function renderDependabot(content, config, languages) {
843
845
  rendered = stripDependabotEcosystem(rendered, 'cargo')
844
846
  }
845
847
  if (!includesValue(languages, 'typescript')) {
846
- rendered = stripDependabotEcosystem(rendered, 'npm')
848
+ rendered = stripDependabotEcosystem(rendered, 'bun')
847
849
  }
848
850
  if (!includesValue(languages, 'python')) {
849
851
  rendered = stripDependabotEcosystem(rendered, 'pip')
850
852
  }
853
+ if (
854
+ includesValue(languages, 'typescript') &&
855
+ configured(config.package_manager, 'bun') === 'npm'
856
+ ) {
857
+ // The template tracks the fleet's bun majority; an npm-locked consumer
858
+ // needs the npm ecosystem or Dependabot fails with misconfigured_tooling
859
+ // (it cannot read bun.lock).
860
+ rendered = swapBunEcosystemForNpm(rendered)
861
+ }
851
862
  if (configured(config.billing_paused, 'false') === 'true') {
852
863
  rendered = pauseDependabot(rendered)
853
864
  }
@@ -855,6 +866,19 @@ export function renderDependabot(content, config, languages) {
855
866
  return rendered.replaceAll('target-branch: staging', 'target-branch: main')
856
867
  }
857
868
 
869
+ /**
870
+ * Retarget the JavaScript ecosystem block to npm for npm-locked consumers.
871
+ * Exact-string based so template drift fails loudly at Dependabot time
872
+ * instead of silently scanning the wrong lockfile.
873
+ * @param {string} content
874
+ * @returns {string}
875
+ */
876
+ function swapBunEcosystemForNpm(content) {
877
+ return content
878
+ .replace(' - package-ecosystem: bun\n', ' - package-ecosystem: npm\n')
879
+ .replace(' bun-dependencies:\n', ' npm-dependencies:\n')
880
+ }
881
+
858
882
  /**
859
883
  * Disable Dependabot version updates for every remaining ecosystem. The
860
884
  * transformations are regex-based so they hold for any ecosystem count and