code-foundry 1.3.0 → 1.3.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.
@@ -9,17 +9,16 @@ permissions:
9
9
  contents: read
10
10
 
11
11
  jobs:
12
- # One job: the release-please branch gate stays at the job level so
13
- # ordinary pull requests render a single skipped check instead of two.
14
- # The scan itself still runs only for generated release pull requests
15
- # (or manual dispatch) with the scanner configured and keyed.
16
- scan:
17
- name: OpenCode Security / Scan
12
+ detect:
13
+ name: OpenCode Security / Detect
18
14
  if: >-
19
15
  vars.CI_BILLING_PAUSED != 'true' &&
20
16
  (github.event_name == 'workflow_dispatch' ||
21
17
  startsWith(github.event.pull_request.head.ref, 'release-please--branches--main'))
22
18
  runs-on: ubuntu-slim
19
+ outputs:
20
+ enabled: ${{ steps.detect.outputs.enabled }}
21
+ token: ${{ steps.detect.outputs.token }}
23
22
  steps:
24
23
  - name: Checkout
25
24
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
@@ -36,17 +35,27 @@ jobs:
36
35
  if [ -n "$OPENCODE_API_KEY" ]; then token=true; fi
37
36
  echo "enabled=$enabled" >> "$GITHUB_OUTPUT"
38
37
  echo "token=$token" >> "$GITHUB_OUTPUT"
39
- - name: Scan
40
- if: steps.detect.outputs.enabled == 'true' && steps.detect.outputs.token == 'true'
41
- uses: 0xPlayerOne/opencode-security/.github/workflows/opencode-security.yml@137698ef3545204af8fad00fc8bd64d663c8122e # main
42
- with:
43
- # This is the scanner checkout ref, not the consumer PR ref. The
44
- # reusable workflow already checks out the consumer repository.
45
- source_ref: 137698ef3545204af8fad00fc8bd64d663c8122e
46
- runner: ubuntu-latest
47
- model: opencode-go/muse-spark-1.3-contributor
48
- mode: standard
49
- fail_on_severity: high
50
- max_cost_usd: 1
51
- secrets:
52
- OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
38
+
39
+ # Reusable workflows can only be called from a job level, so the scan is
40
+ # its own job gated on the detect outputs. The scan itself still runs only
41
+ # for generated release pull requests (or manual dispatch) with the
42
+ # scanner configured and keyed.
43
+ scan:
44
+ name: OpenCode Security / Scan
45
+ needs: detect
46
+ if: >-
47
+ vars.CI_BILLING_PAUSED != 'true' &&
48
+ needs.detect.outputs.enabled == 'true' &&
49
+ needs.detect.outputs.token == 'true'
50
+ uses: 0xPlayerOne/opencode-security/.github/workflows/opencode-security.yml@137698ef3545204af8fad00fc8bd64d663c8122e # main
51
+ with:
52
+ # This is the scanner checkout ref, not the consumer PR ref. The
53
+ # reusable workflow already checks out the consumer repository.
54
+ source_ref: 137698ef3545204af8fad00fc8bd64d663c8122e
55
+ runner: ubuntu-latest
56
+ model: opencode-go/muse-spark-1.3-contributor
57
+ mode: standard
58
+ fail_on_severity: high
59
+ max_cost_usd: 1
60
+ secrets:
61
+ OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.3.0...v1.3.1) (2026-09-07)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * restore job-level OpenCode scanner call; preserve consumer oxlint ignores on sync ([#473](https://github.com/0xPlayerOne/code-foundry/issues/473)) ([171ac3d](https://github.com/0xPlayerOne/code-foundry/commit/171ac3dc57368a6ad1e21d8b439a34cbbe2eca58))
9
+
3
10
  ## [1.3.0](https://github.com/0xPlayerOne/code-foundry/compare/v1.2.1...v1.3.0) (2026-09-07)
4
11
 
5
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "1.3.0",
3
+ "version": "1.3.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": {
@@ -227,7 +227,12 @@ export function syncRepository(options) {
227
227
  }
228
228
  if (file === '.oxfmtrc.json' && existsSync(destination)) {
229
229
  content = Buffer.from(
230
- mergeOxfmtConfig(content.toString('utf8'), readFileSync(destination, 'utf8'))
230
+ mergeIgnorePatternsConfig(content.toString('utf8'), readFileSync(destination, 'utf8'))
231
+ )
232
+ }
233
+ if (file === '.oxlintrc.json' && existsSync(destination)) {
234
+ content = Buffer.from(
235
+ mergeIgnorePatternsConfig(content.toString('utf8'), readFileSync(destination, 'utf8'))
231
236
  )
232
237
  }
233
238
  if (!existsSync(destination) || !buffersEqual(content, readFileSync(destination))) {
@@ -776,13 +781,14 @@ function mergeGitignore(baseline, existing) {
776
781
  }
777
782
 
778
783
  /**
779
- * Merge the baseline Oxfmt config with the consumer's current config. The
780
- * baseline owns every key except `ignorePatterns`, where consumer-specific
781
- * patterns (added by sync migrations or by the repository) are preserved so
782
- * repeated syncs never churn them.
784
+ * Merge a baseline Oxc config (.oxfmtrc.json / .oxlintrc.json) with the
785
+ * consumer's current config. The baseline owns every key except
786
+ * `ignorePatterns`, where consumer-specific patterns (added by sync
787
+ * migrations or by the repository) are preserved so repeated syncs never
788
+ * churn them.
783
789
  * @param {string} baseline @param {string} existing @returns {string}
784
790
  */
785
- function mergeOxfmtConfig(baseline, existing) {
791
+ function mergeIgnorePatternsConfig(baseline, existing) {
786
792
  /** @type {string[]} */
787
793
  let extra = []
788
794
  try {