[PR #1675] [MERGED] ci: select semantic tests and fixture lanes for their guarded inputs #4745

Closed
opened 2026-10-31 00:54:36 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1675
Author: @kaoru0822-kitauji
Created: 10/11/2026
Status: ✅ Merged
Merged: 10/11/2026
Merged by: @kaoru0822-kitauji

Base: main ← Head: fix/ci-plan-unscoped-workflows-fixtures


📝 Commits (1)

  • 1e1e8c2 ci: select semantic tests and fixture lanes for their guarded inputs

📊 Changes

2 files changed (+48 additions, -0 deletions)

View changed files

📝 scripts/ci/plan.mjs (+24 -0)
📝 tests/boundary/filesystem/ciChangeScope.test.ts (+24 -0)

📄 Description

Summary

Fixes the two findings from the Codex review of #1660. Codex posted them three minutes after #1660 merged, and they still apply to main.

  1. Release and self-hosted workflow edits skipped their semantic tests. In scripts/ci/plan.mjs, every workflow except ci.yml hits continue with code: false. A PR that touches only .github/workflows/release.yml therefore skips the test shards that hold releaseWorkflow.test.ts and releaseCheckpoint.test.ts. The same happens for real-ghidra-windows.yml and realGhidraWindowsWorkflow.test.ts, which pins "runs only default-branch code on the fixed self-hosted environment". Actionlint validates syntax only. Such a PR could remove the package-before-publish gate or the registry canary, or let PR code reach the self-hosted Windows runner, and CI would not notice.
  2. Fixture sources never reached their verifiers. A change such as tests/conformance/c/fixture.c set only code. The fixtures and readiness flags were set only by a full baseline, so conformance-fixtures (the only verify:fixtures job) and reconstruction-readiness were skipped.

Change

  • GUARDED_WORKFLOWS (release.yml, real-ghidra-windows.yml) now selects code in addition to workflows. Provider lane workflows owned by a scope keep their existing behavior (real-evm-interface.yml still selects only evm). Manual workflows that no test reads (real-termux.yml) still select only workflows.
  • The directories build-conformance-fixtures.mjs compiles (c, napi, objc, swift, versions) select fixtures and readiness, because the readiness journey analyzes the built C fixture. tests/conformance/readiness/** selects readiness. Other conformance sources, such as the Ghidra fixtures, are unchanged.

Verification

  • tests/boundary/filesystem/ciChangeScope.test.ts has six new cases. Five fail against main's plan.mjs and pass here. The sixth, a Ghidra fixture that stays off both lanes, passes on both.
  • npm run test:focused -- tests/boundary/filesystem/ciChangeScope.test.ts tests/boundary/filesystem/releaseWorkflow.test.ts: 86 passed.
  • Replayed on this branch: scripts/ci/plan.mjs changed, so the plan is still the full baseline (Shared boundary: scripts/ci/plan.mjs).
  • format:check and pre-push check:fast pass.

No Hopper/Ghidra verification is needed. No provider code changed.

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/1675 **Author:** [@kaoru0822-kitauji](https://github.com/kaoru0822-kitauji) **Created:** 10/11/2026 **Status:** ✅ Merged **Merged:** 10/11/2026 **Merged by:** [@kaoru0822-kitauji](https://github.com/kaoru0822-kitauji) **Base:** `main` ← **Head:** `fix/ci-plan-unscoped-workflows-fixtures` --- ### 📝 Commits (1) - [`1e1e8c2`](https://github.com/morluto/rea/commit/1e1e8c27a57a00a2824b99e5d4a16a6f59b0d44b) ci: select semantic tests and fixture lanes for their guarded inputs ### 📊 Changes **2 files changed** (+48 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `scripts/ci/plan.mjs` (+24 -0) 📝 `tests/boundary/filesystem/ciChangeScope.test.ts` (+24 -0) </details> ### 📄 Description ## Summary Fixes the two findings from the Codex review of #1660. Codex posted them three minutes after #1660 merged, and they still apply to main. 1. **Release and self-hosted workflow edits skipped their semantic tests.** In `scripts/ci/plan.mjs`, every workflow except `ci.yml` hits `continue` with `code: false`. A PR that touches only `.github/workflows/release.yml` therefore skips the test shards that hold `releaseWorkflow.test.ts` and `releaseCheckpoint.test.ts`. The same happens for `real-ghidra-windows.yml` and `realGhidraWindowsWorkflow.test.ts`, which pins "runs only default-branch code on the fixed self-hosted environment". Actionlint validates syntax only. Such a PR could remove the package-before-publish gate or the registry canary, or let PR code reach the self-hosted Windows runner, and CI would not notice. 2. **Fixture sources never reached their verifiers.** A change such as `tests/conformance/c/fixture.c` set only `code`. The `fixtures` and `readiness` flags were set only by a full baseline, so `conformance-fixtures` (the only `verify:fixtures` job) and `reconstruction-readiness` were skipped. ## Change - `GUARDED_WORKFLOWS` (`release.yml`, `real-ghidra-windows.yml`) now selects `code` in addition to `workflows`. Provider lane workflows owned by a scope keep their existing behavior (`real-evm-interface.yml` still selects only `evm`). Manual workflows that no test reads (`real-termux.yml`) still select only `workflows`. - The directories `build-conformance-fixtures.mjs` compiles (`c`, `napi`, `objc`, `swift`, `versions`) select `fixtures` and `readiness`, because the readiness journey analyzes the built C fixture. `tests/conformance/readiness/**` selects `readiness`. Other conformance sources, such as the Ghidra fixtures, are unchanged. ## Verification - `tests/boundary/filesystem/ciChangeScope.test.ts` has six new cases. Five fail against main's `plan.mjs` and pass here. The sixth, a Ghidra fixture that stays off both lanes, passes on both. - `npm run test:focused -- tests/boundary/filesystem/ciChangeScope.test.ts tests/boundary/filesystem/releaseWorkflow.test.ts`: 86 passed. - Replayed on this branch: `scripts/ci/plan.mjs` changed, so the plan is still the full baseline (`Shared boundary: scripts/ci/plan.mjs`). - `format:check` and pre-push `check:fast` pass. No Hopper/Ghidra verification is needed. No provider code changed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 00:54:36 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#4745
No description provided.