Summary
The public run --env option advertises YAML files, but the action sends every supplied path to a dotenv-only loader. The exact frozen loader accepts the FOO=bar control while rejecting both the minimized YAML mapping FOO: bar and the repository's env-public.yaml fixture with a missing-'=' error, causing the command to exit before executing requests.
Validation source commit: 5f109383e0b03f6db46ab30938d1328943fb19d1.
Code path
packages/voiden-runner/src/index.ts:490-490: Role A: public Commander help declares that --env accepts a .env or .yaml file.
packages/voiden-runner/src/index.ts:41-55: Role B: loadEnvFile parses only KEY=VALUE lines and throws when a non-comment line lacks '='.
packages/voiden-runner/src/index.ts:525-537: Shared product path: the run action passes opts.env directly to loadEnvFile and exits on its error.
apps/electron/src/sample-project/env-public.yaml:1-3: Repository-owned YAML environment fixture rejected by the runner loader.
apps/electron/src/main/env.ts:198-220: Neighboring Electron product path demonstrates repository-owned YAML environment parsing through YAML.parse.
Steps to reproduce
This report is based on a source-control-flow validation against the commit above.
- Check out the source commit listed in this report.
- Inspect the code path and contract anchors listed above.
- Exercise the described boundary/state path: Parse advertised YAML environment files with a YAML-capable loader instead of the dotenv-only parser.
- Compare the observed behavior with the expected contract below.
Validation note: It executes the frozen loadEnvFile body after erasing only its two TypeScript annotations and verifies the declaration and call-site remain present. Replay exits 0 with claimPresent=true, callPathPresent=true, dotenvControl={FOO:'bar'}, minimalYaml.threw='Malformed line 1 in .env file: missing "="', repositorySampleYaml.threw with the same error, and contradictionReproduced=true.
Expected behavior
The implementation should preserve the repository contract described by the documentation, public type, parser, serializer, or sibling implementation anchors above.
Actual behavior
The public run --env option advertises YAML files, but the action sends every supplied path to a dotenv-only loader. The exact frozen loader accepts the FOO=bar control while rejecting both the minimized YAML mapping FOO: bar and the repository's env-public.yaml fixture with a missing-'=' error, causing the command to exit before executing requests.
Existing coverage
I did not find an existing issue or PR title that appears to cover this exact root cause in the pre-submission check.
Suggested fix
Runner YAML environment loading
Suggested tests
- Add a regression test for: Parse advertised YAML environment files with a YAML-capable loader instead of the dotenv-only parser.
- Include the boundary value or state transition described above so the old behavior fails before the fix.
Submitted with Codex.
Summary
The public run --env option advertises YAML files, but the action sends every supplied path to a dotenv-only loader. The exact frozen loader accepts the FOO=bar control while rejecting both the minimized YAML mapping FOO: bar and the repository's env-public.yaml fixture with a missing-'=' error, causing the command to exit before executing requests.
Validation source commit:
5f109383e0b03f6db46ab30938d1328943fb19d1.Code path
packages/voiden-runner/src/index.ts:490-490: Role A: public Commander help declares that --env accepts a .env or .yaml file.packages/voiden-runner/src/index.ts:41-55: Role B: loadEnvFile parses only KEY=VALUE lines and throws when a non-comment line lacks '='.packages/voiden-runner/src/index.ts:525-537: Shared product path: the run action passes opts.env directly to loadEnvFile and exits on its error.apps/electron/src/sample-project/env-public.yaml:1-3: Repository-owned YAML environment fixture rejected by the runner loader.apps/electron/src/main/env.ts:198-220: Neighboring Electron product path demonstrates repository-owned YAML environment parsing through YAML.parse.Steps to reproduce
This report is based on a source-control-flow validation against the commit above.
Validation note: It executes the frozen loadEnvFile body after erasing only its two TypeScript annotations and verifies the declaration and call-site remain present. Replay exits 0 with claimPresent=true, callPathPresent=true, dotenvControl={FOO:'bar'}, minimalYaml.threw='Malformed line 1 in .env file: missing "="', repositorySampleYaml.threw with the same error, and contradictionReproduced=true.
Expected behavior
The implementation should preserve the repository contract described by the documentation, public type, parser, serializer, or sibling implementation anchors above.
Actual behavior
The public run --env option advertises YAML files, but the action sends every supplied path to a dotenv-only loader. The exact frozen loader accepts the FOO=bar control while rejecting both the minimized YAML mapping FOO: bar and the repository's env-public.yaml fixture with a missing-'=' error, causing the command to exit before executing requests.
Existing coverage
I did not find an existing issue or PR title that appears to cover this exact root cause in the pre-submission check.
Suggested fix
Runner YAML environment loading
Suggested tests
Submitted with Codex.