Skip to content

fix(ci): dispatch to .git-private-farm, not the nonexistent dot-git-private-farm - #720

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/dispatch-target-nonexistent-repo
Aug 25, 2026
Merged

fix(ci): dispatch to .git-private-farm, not the nonexistent dot-git-private-farm#720
hyperpolymath merged 1 commit into
mainfrom
fix/dispatch-target-nonexistent-repo

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

The bug

.github/workflows/inbox-steward-intake.yml:338 POSTs to:

/repos/hyperpolymath/dot-git-private-farm/dispatches

hyperpolymath/dot-git-private-farm does not exist (gh repo view → 404). The repo is hyperpolymath/.git-private-farm.

Why it stayed invisible

Identical to the companion defect in gitbot-fleet (see hyperpolymath/gitbot-fleet#490):

  1. The call is >/dev/null 2>&1 with an ::warning::Failed to dispatch to .git-private-farm fallback — a 404 never fails the run.
  2. The log line immediately above prints the correct name: echo "Dispatching to .git-private-farm: ...". So the run log tells you it dispatched to .git-private-farm while the API path says otherwise.

Impact

Second hop of the loop documented in .git-private-farm/.github/workflows/inbox-steward-propagate.yml:

gitbot-fleet/inbox-steward → hypatia/inbox-steward-intake → farm/inbox-steward-propagate

Both the first and second hops target the nonexistent repo, so the ruleset-update propagation path has never reached the farm.

Changes

  • corrected the dispatch target (line 338)
  • corrected the misleading comment (line 336)

Verified: grep -rn dot-git-private-farm returns zero hits after the change.

Companion PR: hyperpolymath/gitbot-fleet#490

🤖 Generated with Claude Code

…rivate-farm

inbox-steward-intake.yml POSTed to
/repos/hyperpolymath/dot-git-private-farm/dispatches, which 404s — the
repo is named .git-private-farm.

Hidden by the same two mechanisms as the companion defect in
gitbot-fleet: the call is wrapped in `>/dev/null 2>&1` with an
`::warning::` fallback, and the surrounding echo already printed the
correct ".git-private-farm", so the run log never showed the real target.

Second hop of the closed loop
(gitbot-fleet/inbox-steward -> hypatia/inbox-steward-intake ->
farm/inbox-steward-propagate). See gitbot-fleet#490.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gitar-bot

gitar-bot Bot commented Aug 25, 2026

Copy link
Copy Markdown

Important

You are using the Gitar free plan. Upgrade to unlock code review, CI analysis, auto-apply, custom automations, and more.

Gitar

@hyperpolymath
hyperpolymath merged commit 83da30a into main Aug 25, 2026
30 checks passed
@hyperpolymath
hyperpolymath deleted the fix/dispatch-target-nonexistent-repo branch August 25, 2026 14:59
hyperpolymath added a commit that referenced this pull request Aug 25, 2026
…721)

## The problem

`Merge Orchestrate (scheduled)` is **active** and has been ticking
hourly at `:17`. It reads `MERGE_ORCH_STORE`, which defaults to the
in-repo `data/verisim`.

`data/verisim/` contains:

```
annealing-states  dispatch  health  neural-states  outcomes  patterns  recipes  scan-history
```

**No `observations/`.** And `lib/merge_orchestration/loop.ex:30`
documents that as exactly what the loop reads:

```
* `observations/*.json`        — per-PR observations (from `observe.sh`)
```

So every tick has sensed nothing, decided nothing, and uploaded an empty
`merge-decisions.jsonl` that expired after 7 days.

## The fix this workflow already specified

Its own header comment named it:

> *"Point MERGE_ORCH_STORE at a populated store (e.g. a checked-out
verisim-data) via a repo variable; the default `data/verisim` is the
in-repo store."*

This does that as the **default** rather than requiring a repo variable
be set by hand. Checks out `hyperpolymath/verisimdb-data` (public) at
`./store` and defaults `MERGE_ORCH_STORE` to it. The
`vars.MERGE_ORCH_STORE` override still wins.

That repo is the right target and is demonstrably live — last push
`2026-08-25T06:37Z` with commit `scan: estate rescan (run 32810961229)`,
and 20+ modules in this repo already read from it
(`verisim_connector.ex`, `fleet_dispatcher.ex`, `dispatch_manifest.ex`,
`pattern_registry.ex`, `outcome_tracker.ex`, …).

## Safety

- **The brain stays token-free.** This is a read-only checkout of a
public repo; no PAT, no write. The architecture's whole point — that a
compromised scanner cannot write to 400 repos — is preserved.
- **Nothing merges.** This only lets the cycle *see* real observations
and write a manifest artifact. `actuate.sh` remains unwired per the
owner ruling of 2026-08-25.
- **No behaviour change without the companion PR.** The producer that
fills `observations/` is hyperpolymath/.git-private-farm#127. Until that
lands, this checkout finds an empty `observations/` and the cycle
behaves exactly as it does today.

## Lockfile

No `actions.lock` change required. The added step reuses
`actions/checkout@v7.0.1`, already registered for this workflow at
`.github/workflows/actions.lock:52`. Verified rather than assumed — an
unregistered entry would kill the workflow at 0s with `startup_failure`.

## Companion

- hyperpolymath/.git-private-farm#127 — wires `observe.sh`, the producer
- #720 — unrelated, fixes the
`dot-git-private-farm` dispatch 404

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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