code-foundry 0.27.0 → 0.27.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.
@@ -438,6 +438,24 @@ runs:
438
438
  REPO_FOUNDRY_TASK_RUST: ${{ inputs.task-rust }}
439
439
  REPO_FOUNDRY_CACHE_PACKAGES: ${{ inputs.cache-packages }}
440
440
 
441
+ - name: Install native test libraries
442
+ if: >-
443
+ inputs.install == 'true' &&
444
+ inputs.task == 'unit' &&
445
+ hashFiles('**/package.json') != '' &&
446
+ steps.profile.outputs.javascript == 'true'
447
+ shell: bash
448
+ run: |
449
+ if node -e '
450
+ const fs = require("node:fs");
451
+ const p = JSON.parse(fs.readFileSync("package.json", "utf8"));
452
+ const all = { ...p.dependencies, ...p.devDependencies, ...p.optionalDependencies };
453
+ process.exit(all["matchstick-as"] ? 0 : 1);
454
+ ' 2>/dev/null; then
455
+ sudo apt-get update -qq
456
+ sudo apt-get install -y -qq libpq5
457
+ fi
458
+
441
459
  - name: Setup Node
442
460
  if: >-
443
461
  steps.profile.outputs.toolchain_mode != 'mise' &&
@@ -66,7 +66,10 @@ jobs:
66
66
  if: steps.applicability.outputs.applicable == 'true'
67
67
  uses: ./.github/actions/setup
68
68
  with:
69
- install: 'false'
69
+ # Repository format scripts normally call a project-local formatter
70
+ # (for example, Prettier). Install dependencies before running them;
71
+ # otherwise a clean runner cannot resolve the declared tool.
72
+ install: 'true'
70
73
  cache-format: 'true'
71
74
  cache-lint: 'false'
72
75
  cache-build: 'false'
@@ -149,6 +152,11 @@ jobs:
149
152
  build:
150
153
  name: Build
151
154
  runs-on: ${{ inputs.runner }}
155
+ env:
156
+ # Framework builds may validate server-side configuration at build time.
157
+ # Consumers can provide the real value; the fallback is intentionally
158
+ # CI-only and must never be used at runtime.
159
+ NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET || 'code-foundry-ci-placeholder-0123456789' }}
152
160
  steps:
153
161
  - name: Checkout
154
162
  uses: actions/checkout@v7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.27.1](https://github.com/0xPlayerOne/code-foundry/compare/v0.27.0...v0.27.1) (2026-07-28)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **ci:** cover framework and native test prerequisites ([53b8209](https://github.com/0xPlayerOne/code-foundry/commit/53b8209104cf52972e867eba65fed46d0b8f57bb))
9
+ * **ci:** install project format and Python tooling ([13fb972](https://github.com/0xPlayerOne/code-foundry/commit/13fb972e774e26c2d5794421a17c4ac685a28b0c))
10
+
3
11
  ## [0.27.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.26.0...v0.27.0) (2026-07-28)
4
12
 
5
13
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "0.27.0",
3
+ "version": "0.27.1",
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",
package/src/runtime.mjs CHANGED
@@ -107,7 +107,12 @@ function install() {
107
107
  }
108
108
  if (hasLanguage('python') && (existsSync(resolve(root, 'pyproject.toml')) || existsSync(resolve(root, 'requirements.txt')))) {
109
109
  if (commandExists('uv') && existsSync(resolve(root, 'uv.lock'))) run('uv', ['sync', '--frozen'])
110
- else if (!existsSync(resolve(root, '.venv'))) run('python', ['-m', 'venv', '.venv'])
110
+ else {
111
+ if (!existsSync(resolve(root, '.venv'))) run('python', ['-m', 'venv', '.venv'])
112
+ const python = resolve(root, '.venv/bin/python')
113
+ if (existsSync(resolve(root, 'requirements.txt'))) run(python, ['-m', 'pip', 'install', '--disable-pip-version-check', '-r', 'requirements.txt'])
114
+ if (existsSync(resolve(root, 'requirements-dev.txt'))) run(python, ['-m', 'pip', 'install', '--disable-pip-version-check', '-r', 'requirements-dev.txt'])
115
+ }
111
116
  }
112
117
  if (hasLanguage('rust') && existsSync(resolve(root, 'Cargo.toml'))) run('cargo', ['fetch'])
113
118
  }