name: check on: push: branches: [main] pull_request: workflow_dispatch: jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' # Fails if any tracked file is not clean UTF-8. A Windows shell round-trip # once read these sources as CP936 and destroyed the Chinese README. - name: Encoding guard run: node tools/check-utf8.mjs # Pure shape/logic assertions: bundle preamble, the six slot declarations, # composer selector purity, session-mirror event shapes, the Markdown # renderer. Needs no DSH and no Codex login, so it runs in seconds. - name: Load-time self-check run: node test/load-check.mjs # Regression guard for the worst bug this plugin had: on a machine without # the Codex CLI, `spawn codex ENOENT` became an uncaught exception and took # the whole DSH host down. This runs against a deliberately missing binary. - name: Missing-binary self-check run: node test/spawn-failure-check.mjs # The Codex desktop app ships its own CLI into a directory that a # stale-environment Electron process cannot see on PATH, so the resolver # probes a candidate list instead. Pure, and injected with a fake env. - name: CLI resolution self-check run: node test/resolve-bin-check.mjs