snipe/app/platforms/ebay
pyr0ball 108f63b4f2 fix(browser-pool): replace queue with thread-local storage to fix Playwright cross-thread crash (#53)
Playwright's sync API binds its greenlet event loop to the creating thread.
Sharing pre-warmed slots across threads caused "cannot switch to a different
thread" panics under uvicorn. New design: each worker thread owns its own
Playwright instance created lazily on first fetch_html() call. A registry
dict keyed by thread-id lets stop() close all slots at shutdown. Removes
ThreadPoolExecutor warmup and idle-cleanup daemon thread entirely.
2026-05-04 09:27:20 -07:00
..
__init__.py feat: add PlatformAdapter base and eBay token manager 2026-03-25 13:08:55 -07:00
adapter.py feat(monitor): background saved-search monitoring with watch alerts (#12) 2026-05-04 08:24:56 -07:00
auth.py feat: preferences store, community signals, a11y + API fixes 2026-04-14 16:15:09 -07:00
browser_pool.py fix(browser-pool): replace queue with thread-local storage to fix Playwright cross-thread crash (#53) 2026-05-04 09:27:20 -07:00
categories.py feat: community category federation in EbayCategoryCache.refresh() 2026-04-14 11:38:12 -07:00
normaliser.py feat: preferences store, community signals, a11y + API fixes 2026-04-14 16:15:09 -07:00
query_builder.py feat(snipe): eBay trust scoring MVP — search, filters, enrichment, comps 2026-03-26 23:37:09 -07:00
scraper.py feat(scraper): pre-warmed Chromium browser pool (BROWSER_POOL_SIZE=2 default) 2026-04-20 12:09:09 -07:00