Continuing on StyloBot this weekend, staging site showed a regression after my new work on Browser Modes so working through that - code llm drifted away from a core pattern in a big refactor...as it always does.
Core lesson: make your test apps *fail loudly* LLMs are great at papering over spreading, structural cracks in your system.
Distillation phase; not planned work as it's responding to live detection issues. Where a single homan controlled browser sends different headers, request 'shape' for stuff like data / resources / api calls / content.
Each of those is a different 'mode' which NORMALLY bot detectors will just toss the strange differences and merge into a single 'identity based' fingerprint.
*However* in StyloBot it can tell them apart because it doesn't throw away these extra discriminators. The bug appeared like multiple clients requesting from the same IP but different 'deceptive' browsers (as I expected all the headers etc). Same goes for AdBlock on/off...it changes what your browser *looks like* by stripping headers etc...
So instead I actually detect these 'modes' and use them to add to discriminaton signal; the proportion and timing cadence is SUPER hard to fake for automation; humans run browsers in 'noisy' computational environments, bots tend to be synthetically 'cleaner'.
Anyway that's my weekend, the code llm decided (as it tends to) to layer another parallel system on top of the existing one and it SUCKS - 2s a response as it does a full *db* match against ALL our 'prototyes' each request.
It got the idea but forgot the pattern; I use a single consolidated behaviourally shaped LFU 'transparent' - you don't worry about DB just read and wwrite through the cache and it handles updates etc - LAZY CQRS with none of the guarantees for *super* high speed & in memory.
As usual this is an *odd* archutecture of this sub-feature so the Code LLM (Calude) SMEARS it towards the normative for this.
I told it new in memory stores are not allowed; as it will ALWAYS add these (IMemoryCache) in ASP.NET apps...try and stop it!
So it decided this was a direct to DB operation; it followed one constraint then SKIPPED all the others.
#stylobot #botdetection #botprotection




