- Ya
- 25 Agosti 2026, 16:50 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 66a4785
One response rather than three endpoints because it is one scan: the logo must be downloaded before its pixels can contribute a colour, and the colours are wanted on a step the member reaches before the backgrounds. Splitting it would mean scanning the site three times. The extractors stay pure readers over a parsed page. This is the only class that decides which candidates are worth a request and the only one that knows the response has a size ceiling -- which is what lets the extractors be tested against fixture HTML with no I/O at all. Assets are deduped on their BYTES, not their URL: the same logo served from /logo.png, a CDN path and the favicon is the normal case, and three identical cards is noise. A 200 is not accepted as HTML on its own -- parked domains, captive portals and JSON error pages all answer 200, and parsing one as a page yields a confidently empty scan. Failure is quiet everywhere: unreachable, unparseable or not-a-website all return 200 with empty lists. These three steps are optional and already work; telling a member their own site failed a scan on the screen where they are building their brand turns a bonus into a defect they did not cause and cannot fix.