← Commit history

withdraw the fresh-jar claim: isolated:true does not create a separate profile (pup-bridge#112), so the warm-vs-fresh comparison ran the same profile twice; profile state is untested, not excluded

John Lauer ·69b6983ecf ·22d ago ·parent 6e76a28
1 file changed +7−7
gen.py+7−7
@@ -141,11 +141,11 @@ SITES = [   dict(slug="analog", name="Analog Devices (incl. Maxim, Linear)", domains=["www.analog.com"],   what="Manufacturer. Product pages, datasheets, LTspice models, eval boards.",-  defense="Akamai Bot Manager, strict. The single hardest case in this pack and the one that drove the 2026-09-14 investigation (see the root skill). TWO stacked causes, both measured: (1) WITHDRAWN - an earlier revision blamed the CfT build (148 denied, 152 loaded). That was not a controlled comparison: the denied trials were raw hand-rolled Chrome launches without pup's flag set, the passing ones were pup. Re-measured 2026-09-14 with screenshots, analog.com renders in pup on CfT 152 on both a warm and a brand-new isolated profile, so neither the build nor the cookie jar is the established discriminator; what works is driving it through pup's own launch path, and which part of that matters has not been isolated; (2) egress IP - even on 152, loads from a VPN/Azure egress and denies from the bare office LAN NAT.",+  defense="Akamai Bot Manager, strict. The single hardest case in this pack and the one that drove the 2026-09-14 investigation (see the root skill). TWO stacked causes, both measured: (1) WITHDRAWN - an earlier revision blamed the CfT build (148 denied, 152 loaded). That was not a controlled comparison: the denied trials were raw hand-rolled Chrome launches without pup's flag set, the passing ones were pup. Re-measured 2026-09-14 with screenshots, analog.com renders in pup on CfT 152 on the shared adom-you profile. The arm intended as a fresh jar was NOT fresh: isolated:true does not create a separate profile (pup-bridge#112), so it ran the same profile twice and profile state is UNTESTED rather than excluded; what works is driving it through pup's own launch path, and which part of that matters has not been isolated; (2) egress IP - even on 152, loads from a VPN/Azure egress and denies from the bare office LAN NAT.",   lanes={    "WebFetch": ("BLOCKED", "Akamai edge"),    "curl": ("BLOCKED", "curl (92) HTTP/2 INTERNAL_ERROR in ~100 ms"),-   "pup": ("PARTIAL", "CfT 152 REQUIRED (on 148 always denied). On 152: LOADS from a clean egress (AdomLapper VPN, winvm Azure, bmak:object), DENIED from the bare office LAN (arav-rog, ConfRoomROG, bmak:undefined). 2026-09-14"),+   "pup": ("PARTIAL", "WITHDRAWN that CfT 152 is REQUIRED (the 148 denials were uncontrolled raw launches). On 152: LOADS from a clean egress (AdomLapper VPN, winvm Azure, bmak:object), DENIED from the bare office LAN (arav-rog, ConfRoomROG, bmak:undefined). 2026-09-14"),    "nb": ("OK", "the user's real Chrome loads it (AD8232 Datasheet and Product Info); use nb when pup's egress is flagged"),   },   symptoms=["'Access Denied' + 'Reference #18.3351db17...'", "HTTP 403 from AkamaiGHost on the denied request (refused at the edge, before JS)", "HTTP/2 stream reset to curl"],@@ -383,7 +383,7 @@ PACED = {  "mouser":        "HOME PAGE loads paced on CfT 152 (was 'Access to this page has been denied' on 148). DataDome still scores CRAWLS: use the API for data, do not walk the catalog",  "digikey":       "loads paced on CfT 152",  "arrow":         "loads paced on CfT 152. Earlier BLOCKED readings came from the 20-tab burst, not from arrow",- "analog":        "loads in pup on CfT 152, verified by screenshot 2026-09-14 on BOTH the warm shared profile and a brand-new isolated jar. The earlier claim that the CfT 148 to 152 bump was the fix is WITHDRAWN: those 148 trials were raw hand-rolled Chrome launches without pup flags, not a controlled comparison",+ "analog":        "loads in pup on CfT 152, verified by screenshot 2026-09-14 on the shared profile; the arm meant to be a fresh jar was not one (isolated:true keeps the shared profile, pup-bridge#112), so profile state is UNTESTED. The earlier claim that the CfT 148 to 152 bump was the fix is WITHDRAWN: those 148 trials were raw hand-rolled Chrome launches without pup flags, not a controlled comparison",  "ti":            "loads paced on CfT 152",  "microchip":     "loads paced on CfT 152",  "nordic":        "loads paced on CfT 152",@@ -494,8 +494,8 @@ that bumping to CfT 152 fixed it. **That comparison was not controlled and the c Every denied trial was a raw hand-rolled Chrome launch carrying a copied flag list; every passing trial was pup itself. Those differ in infobar suppression, the feature-disable set and the identity shim, not only in the build number. Re-measured 2026-09-14 with screenshots: analog.com renders fully in pup on-CfT 152 on the warm shared profile AND on a brand-new isolated jar, so neither profile state nor cookie-history is the discriminator either. What IS established: these sites load when driven through pup's+CfT 152 on the shared adom-you profile. The arm intended as a fresh jar was not one, because+isolated:true keeps that same profile (pup-bridge#112), so profile state is UNTESTED, not excluded. What IS established: these sites load when driven through pup's own launch path, and WHICH element of that path is decisive has not been isolated. Keep the CfT pin near the installed Chrome as cheap hygiene, not as an explanation. `typeof bmak === "undefined"` on a denied page is a SYMPTOM, because the Access Denied page carries no sensor script at all. Keep CfT within ~1 milestone of the installed Chrome. Several sites@@ -703,7 +703,7 @@ def main():                {"label": "Which browser for DigiKey", "prompt": "which browser lane do I need to read a DigiKey product page"},                {"label": "Mouser 200 but denied", "prompt": "why does Mouser return HTTP 200 with access denied and what do I do"},                {"label": "Add a site", "prompt": "add an electronics-sites skill for nxp.com and verify its lanes"}]-    pkg = {"name": PACK, "slug": PACK, "version": "2.3.0", "type": "skill", "title": TITLE, "description": BRIEF,+    pkg = {"name": PACK, "slug": PACK, "version": "2.4.0", "type": "skill", "title": TITLE, "description": BRIEF,            "license": "MIT", "files": files, "scripts": {"install": "./install.sh", "uninstall": "./uninstall.sh"},            "dependencies": {}, "tags": TAGS, "keywords": TAGS, "discovery_triggers": TRIGGERS, "discovery_pitch": PITCH,            "sample_prompts": PROMPTS, "hero": {"path": "docs/hero.png"}}@@ -751,7 +751,7 @@ No captcha solving, no fingerprint spoofing: this pack routes around walls, it d """     write("README.md", readme)     page = json.load(open(os.path.join(ROOT, "page.json")))-    page.update({"slug": PACK, "version": "2.3.0", "title": TITLE, "brief": BRIEF, "readme": readme, "license": "MIT",+    page.update({"slug": PACK, "version": "2.4.0", "title": TITLE, "brief": BRIEF, "readme": readme, "license": "MIT",                  "tags": TAGS,                  "hero": {"type": "image", "path": "docs/hero.png"},                  "sample_prompts": PROMPTS, "discovery_triggers": TRIGGERS, "discovery_pitch": PITCH,