teleo-infrastructure/deploy
m3taversal b57cb41e31 fix(mirror): Step 0b self-heals stuck submitted_by via cron retry
Step 4.5's submitted_by write inherits the same one-shot failure mode
that Phase 1's Step 0 sweep was designed to retire. On transient
GitHub API failure, link-only fallback writes github_pr and permanently
closes the retry window — submitted_by stays stuck on 'm3taversal'
(bot identity), and contribution_events never gets the author event.

Step 0b adds a second sweep alongside Step 0:
  SELECT ... WHERE github_pr IS NOT NULL
              AND (submitted_by IS NULL OR submitted_by = 'm3taversal')

Same idempotent cron-retry shape: SELECT empty when clean, per-row
GitHub API call + UPDATE only when stuck. Targets bidirectional
repos only (gh-pr-* branches don't exist for main_only mirrors).

Derives bidirectional GitHub repo from MIRROR_REPOS at sweep time
since Step 0 runs before sync_repo() sets GITHUB_REPO scope.

Doubles as future-proof safety net: any external PR landing during
the deploy window with submitted_by stuck on bot identity gets
self-healed on the next cron tick. No backfill script needed.

Per Ganymede line-level review of 1decf09.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 18:21:04 +01:00
..
auto-deploy.sh fix: auto-deploy.sh rsync excludes broken + add tests/ sync 2026-04-20 17:22:11 +01:00
deploy.sh fix: deploy.sh rsync excludes were broken — quotes passed literally 2026-04-20 17:17:31 +01:00
fix-ownership.sh feat: reorganize repo with clear directory boundaries and agent ownership 2026-04-14 18:20:13 +01:00
setup-infra-mirror.sh fix(mirror): setup script pushes main+tags only (consistency with sync-mirror) 2026-04-27 23:09:25 +01:00
sync-mirror.sh fix(mirror): Step 0b self-heals stuck submitted_by via cron retry 2026-04-28 18:21:04 +01:00