Updates January 26
PGrid
- Working on specs search for GPUs. While doing this, I’m trying to reduce one-off functions specific to categories and different behaviour across categories.
- Created a shared brand normalisation function (looks up DB brands) + fallback AI prompt.
- Updated the AI prompt to optionally have a review AI call in the case where it creates a new value for an important attribute like brand.
- Created a normalisation function for model name, with a shared function that can normalise to a given list.
- Added an LLM call to find keywords for a DB search, to help the model-name normalisation function get more DB examples.
- Fixed an AI-generated issue where duplicated variant URL slugs just had a number appended instead of erroring. Updated a few categories to error instead.
- Decided to have GPU variant full model names include everything, including the base chip + AIB brand. This seems easiest to output from an LLM. Then added a model series column to get the AIB-only model name.
- Minor CSS fix for the slider on iOS.
- Added
pgrid sync-gpu command similar to other sync commands.
- Added
pgrid system run-task command to manually queue tasks more easily: 
- Added
pgrid data item-search which displays data about an item so I don’t have to look in the database: 
- Updated the back button on the details page to always go back to the table page and save filter state if it exists.
- Updated the PCCG scraper to accept screenshot feature flags; investigated screenshots and determined that the Cloudflare check wasn’t picking up Cloudflare Turnstile. Updated Turnstile detection, but it turns out the PCCG scraper didn’t have Cloudflare checking imported.
- Added link previews for GPUs:

- Fixed sorting for details page tables where multi-listings with discount prices could cause issues and not sort price correctly.
- Running some CPU classification runs, saw an odd issue with the brand stage not progressing. Ended up doing a large refactor to make all brand stages work the same across all categories for classification.