Skip to content

fix: discover Ops across all served projects in an estate (#31) - #44

Merged
lex00 merged 1 commit into
mainfrom
fix/estate-ops-discovery
Jul 14, 2026
Merged

lex00 merged 1 commit into
mainfrom
fix/estate-ops-discovery

Conversation

@lex00

@lex00 lex00 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #31. Reported: a multi-estate showed "no Ops — add an ApplyOp to enable Sync" even though a served project had Ops.

Cause

/api/ops (and op-run / signal / auto-sync) discovered Ops from the primary project only. If the first-listed project has no Ops, the estate showed none — and Sync/Adopt/rollback were unreachable for Ops living in sibling projects.

Fix

  • discoverEstateOps(projectDirs) — discover across every served project; each OpInfo carries its own dir; name collisions keep the first project's Op.
  • OpRunner.trigger(name, env, cwd) runs the Op in its own project dir; signal + auto-sync updated likewise.

Verified

serve <no-ops-project> <has-ops-project> now surfaces the sibling's prod-apply @its-dir (Sync shows), and it runs there. tsc + 54 tests (+2: cross-project discovery, first-wins collision).

Multi-estate served the ops list from the primary project only, so a project with
no Ops shown first surfaced "no Ops — add an ApplyOp" even when a sibling in the
estate had them — misleading, and Sync/Adopt/rollback were unreachable for those Ops.

Discover Ops across every served project (discoverEstateOps), tag each with its own
dir, and run it there (OpRunner.trigger cwd, signal, auto-sync). Name collisions
keep the first project's Op.

Verified: serve <no-ops> <has-ops> now surfaces the sibling's prod-apply @its-dir
(Sync shows). tsc + 54 tests (+2 estate discovery).
@lex00
lex00 merged commit 3503ead into main Jul 14, 2026
1 check passed
@lex00
lex00 deleted the fix/estate-ops-discovery branch July 14, 2026 23:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant