overengineeringstudio / overengineeringstudio/effect-utils
fix(genie): dispatchAlignmentStep still uses nix run nixpkgs#gh instead of plain gh
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 82
- Forks
- 2
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 121
Description
Problem
dispatchAlignmentStep in genie/ci-workflow.ts uses nix run nixpkgs#gh to invoke the GitHub CLI. The notify-alignment job runs on ubuntu-latest (GitHub-hosted runners) which do not have Nix installed, causing every run to fail with:
/usr/bin/bash: line 1: nix: command not found
This has broken the notify-alignment job in downstream repos (e.g. livestore) on every push to dev since ~March 8, 2026.
Root cause
The fix was implemented in #417 (March 20) but then reverted in #422 (March 22) when lightweight jobs were moved to self-hosted runners. It was supposedly fixed again in #443 (March 23), but examining the file content at main HEAD (ad96132d) shows it still has the nix run version.
Possible solutions
Option A: Use pre-installed gh directly
gh is pre-installed on all GitHub-hosted runners. Remove the Nix wrapper entirely:
run: [
`printf '{"event_type":"${opts.eventType ?? 'upstream-changed'}","client_payload":{"source_repo":"%s","source_sha":"%s"}}'`,
` "${'${{ github.repository }}'}" "${'${{ github.sha }}'}"`,
`| gh api repos/${opts.targetRepo}/dispatches --input -`,
].join(' \\\n'),
Option B: Move notify-alignment to a self-hosted runner with Nix
If the intent from #422 was to run all lightweight jobs on self-hosted runners (where Nix is available), then notifyAlignmentJob should use a self-hosted runner config instead of ubuntu-latest. The current runs-on: ubuntu-latest contradicts the nix run usage.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in genie/ci-workflow.ts at dispatchAlignmentStep and inspect how notifyAlignmentJob sets its runner and invokes gh. Compare the current ubuntu-latest configuration with the two proposed approaches, then verify that the generated job no longer depends on an unavailable command or runner assumption.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, typescript
- Domain
- ci-cd
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100