Build durable extraction backend with recovery, OAuth and MCP - #1
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The previous extraction loop ran inside HTTP requests, relied on process-local locks/pub-sub, and simulated healing with a shared flag. This change makes Lippy a backend-only service with persisted asynchronous execution, actual fixture selector repair, and documented Bright Data Scraper Studio integration.
Behavior
.env.example, a runnable fixture demo, CI and an architecture/failure walkthrough.Validation
Configuration and limits
Live Bright Data and Google sign-in still require credentials from
.env.example; live-account integration is not claimed as verified. Semantic verification is contract-rule-based, not general AI truth verification. Upstream repair is approved/saved before local re-extraction; there is no isolated candidate scraper or automatic upstream rollback. The event log supports pub/sub readers, not outbound webhook delivery.Existing databases must baseline the original schema before the second migration. Legacy history is preserved and unowned contracts are paused. Dedicated collector IDs are now unique per contract. See README for the migration procedure.
Compatible dependency updates were applied, including Next.js 15.5.25. npm audit still reports transitive advisories in Prisma/deepmerge-ts, Vitest/mocker and Next's PostCSS; major upgrades/overrides were not forced as part of this feature PR.