[codex] Add local-first GitHub sync catch-up - #179
Conversation
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (15)
📝 WalkthroughWalkthroughThis PR implements a local-first caching strategy with webhook-driven signal streaming for GitHub data. It introduces Changes
Sequence DiagramsequenceDiagram
participant Component
participant LocalCache as Cache Layer
participant SignalStream as Signal Stream
participant Server
participant WebSocket as WebSocket/Events
Component->>LocalCache: Request data (getGitHubResourceLocalFirst)
LocalCache->>LocalCache: Check cache status<br/>(fresh/stale/miss)
LocalCache-->>Component: Return cached data immediately<br/>+ metadata
LocalCache->>Server: Background refresh (if stale/miss)
Server-->>LocalCache: New data + refresh timestamp
LocalCache->>LocalCache: Update cache entry<br/>+ fetchedAt timestamp
LocalCache->>SignalStream: Broadcast refreshed signal keys
WebSocket->>Server: GitHub webhook event
Server->>SignalStream: Emit revalidation signal
SignalStream->>SignalStream: Compare signal timestamp<br/>vs cached fetchedAt
SignalStream->>Component: Trigger query revalidation
Component->>LocalCache: Request data (cache miss/refresh)
LocalCache-->>Component: Return updated data
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Uh oh!
There was an error while loading. Please reload this page.
Summary
Make the dashboard more local-first by serving cached GitHub data immediately, catching up after missed webhook signals, and actively refreshing workflow approval state.
Changes
Test Plan
pnpm installpnpm --filter dashboard check-typespnpm --filter dashboard exec vitest run src/lib/use-github-signal-stream.test.tsScreenshots
Summary by CodeRabbit
Release Notes
New Features
Improvements