diff --git a/1e2a-retry-individual-oids-on-not-our-ref.md b/1e2a-retry-individual-oids-on-not-our-ref.md index a9cf38a..36722f5 100644 --- a/1e2a-retry-individual-oids-on-not-our-ref.md +++ b/1e2a-retry-individual-oids-on-not-our-ref.md @@ -48,6 +48,25 @@ This is particularly problematic because: ## Progress +### 2026-01-27 [Session 17:30] +- **Completed:** Basic retry logic implemented in migration-v2 branch + - Retry loop that excludes failed OIDs and retries with remaining OIDs (src/purgatory/sync/context.rs:363-471) + - Debug-level logging for retry operations + - Proper error reporting with URLs for all failure cases + +- **Remaining work:** + - Throttling integration: Respect domain throttling limits between retries + - Metrics: Track retry attempts, successes, and confirmed missing OIDs + - OID prioritization: Implement tiered fetching strategy: + - First: Latest state events (kind 30617) + - Second: Earlier state events + - Third: PR refs + - After successful fetch, retry to get remaining OIDs that aren't confirmed missing + - Note: Rate limiting retries is better handled through throttling integration rather than separate backoff logic + +- **Not needed:** + - Partial success handling (git servers don't support partial fetches - they fail atomically) + ### 2026-01-27 [Session] - Implemented Phase 1: retry logic for "not our ref" errors - When fetch fails with "not our ref", extracts missing OID and retries with remaining OIDs