overengineeringstudio / overengineeringstudio/effect-utils

fix(genie): dispatchAlignmentStep still uses nix run nixpkgs#gh instead of plain gh

Open
#598 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type:agent-tooling type:bug
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.