1:"$Sreact.fragment" 2:I[22016,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],""] 3:I[29306,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],"ProductMenu"] 4:I[5014,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],"default"] 5:I[33964,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],"PublicMobileNav"] c:X 11:X 11:C 0:{"buildId":"B8hBXTSnfA3UAgbX2EKsx","data":[{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"bricolage_grotesque_bcc75999-module__ZKECFW__variable relative min-h-screen overflow-x-clip bg-[#07090E] text-[#EAEDF2]","children":[["$","header",null,{"className":"sticky top-0 z-40 border-b border-white/[0.07] bg-[#07090E]/85 backdrop-blur-md","children":["$","div",null,{"className":"mx-auto flex max-w-7xl items-center justify-between gap-4 px-4 py-3.5 sm:px-6","children":[["$","div",null,{"className":"flex min-w-0 items-center gap-8","children":[["$","$L2",null,{"href":"/","className":"font-display inline-flex items-baseline gap-2 text-lg font-bold tracking-tight text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":[["$","span",null,{"className":"h-2 w-2 translate-y-[-1px] bg-emerald-400","aria-hidden":"true"}],"ShakerScan"]}],["$","nav",null,{"className":"hidden items-center gap-6 text-sm text-[#98A2B3] lg:flex","aria-label":"Primary","children":[["$","$L3",null,{"items":[{"label":"Scan","href":"/product/scan","description":"Repeatable DAST for web apps and APIs"},{"label":"Hunt","href":"/product/hunt","description":"Adaptive investigation with your coding agent"},{"label":"AI Security","href":"/product/ai-security","description":"Test chat, RAG, agent, and MCP systems","badge":"Preview"},{"label":"Model Intake","href":"/product/model-intake","description":"Check model artifacts before deployment","badge":"Preview"},{"label":"Attack Surface","href":"/product/attack-surface","description":"Endpoint inventory, subdomains, CT monitoring"},{"label":"Connected Devices","href":"/product/connected-devices","description":"TVs, cameras, printers, routers, appliances"}]}],[["$","a","/check/",{"href":"/check/","className":"transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":"Free check"}],["$","$L2","/docs",{"href":"/docs","className":"transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":"Docs"}],["$","$L2","/enterprise",{"href":"/enterprise","className":"transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400 font-semibold text-[#EAEDF2]","children":"Enterprise"}]],["$","a",null,{"href":"https://github.com/andriyze/shakerscan","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1.5 transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":[["$","$L4",null,{"icon":{"name":"git-fork","size":24,"node":[["circle",{"cx":"12","cy":"18","r":"3","key":"1mpf1b"}],["circle",{"cx":"6","cy":"6","r":"3","key":"1lh9wr"}],["circle",{"cx":"18","cy":"6","r":"3","key":"1h7g24"}],["path",{"d":"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9","key":"1uq4wg"}],["path",{"d":"M12 12v3","key":"158kv8"}]]},"className":"h-3.5 w-3.5","aria-hidden":"true"}],"GitHub"]}]]}]]}],["$","div",null,{"className":"flex items-center gap-2 sm:gap-4","children":[["$","$L5",null,{"items":[{"label":"Scan","href":"/product/scan"},{"label":"Hunt","href":"/product/hunt"},{"label":"AI Security","href":"/product/ai-security"},{"label":"Model Intake","href":"/product/model-intake"},{"label":"Attack Surface","href":"/product/attack-surface"},{"label":"Connected Devices","href":"/product/connected-devices"},{"label":"Free check","href":"/check/","isAnchor":true,"emphasis":false},{"label":"Docs","href":"/docs","isAnchor":false,"emphasis":false},{"label":"Enterprise","href":"/enterprise","isAnchor":false,"emphasis":true},{"label":"GitHub","href":"https://github.com/andriyze/shakerscan"},{"label":"Open Source","href":"/open-source"}]}],["$","$L2",null,{"href":"/open-source#install","className":"rounded-lg bg-emerald-400 px-3.5 py-2 text-sm font-semibold text-emerald-950 transition-colors hover:bg-emerald-300 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":"Install ShakerScan"}]]}]]}]}],"$L6","$L7"]}],["$L8","$L9"],"$La"]}],"isPartial":"$@b","staleTime":"$c","varyParams":null},{"rsc":"$Ld","isPartial":"$@e","staleTime":"$c","varyParams":null},{"rsc":"$Lf","isPartial":"$@10","staleTime":"$c","varyParams":"$11"},{"rsc":"$L12","isPartial":"$@13","staleTime":"$c","varyParams":"$11"},{"rsc":"$L14","isPartial":"$@15","staleTime":"$c","varyParams":"$11"},{"rsc":"$L16","isPartial":"$@17","staleTime":"$c","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@18","rootVaryParams":null,"needsRuntimeRequest":"$@19"} 26:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"OutletBoundary"] 27:"$Sreact.suspense" 29:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"ViewportBoundary"] 2a:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"] 2b:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"] 2c:I[39756,["/_next/static/chunks/3fntmmi971322.js"],"default"] 2d:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"] 2e:I[8821,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/22aga_6h1t_-r.js"],"default"] :HL["/_next/static/chunks/17s1t3rwlqr6e.css","style"] :HL["/_next/static/chunks/0p5_b9mq-qlz-.css","style"] 6:["$","div",null,{"className":"mx-auto max-w-7xl px-4 py-8 sm:px-6 sm:py-12 lg:grid lg:grid-cols-[230px_minmax(0,1fr)] lg:gap-10 xl:grid-cols-[230px_minmax(0,1fr)_200px]","children":[["$","aside",null,{"className":"lg:sticky lg:top-20 lg:self-start","children":[["$","details",null,{"className":"rounded-lg border border-white/10 bg-[#0C1118] lg:hidden","children":[["$","summary",null,{"className":"cursor-pointer px-4 py-3 text-sm font-medium text-white","children":"Documentation menu"}],["$","div",null,{"className":"border-t border-white/[0.07] px-4 py-4","children":["$","nav",null,{"aria-label":"Open-source documentation","className":"space-y-6","children":[["$","$L2",null,{"href":"/docs/open-source","className":"block text-sm font-semibold text-white hover:text-emerald-200","children":"Documentation home"}],[["$","div","Getting started",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Getting started"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","README.md",{"children":["$","$L2",null,{"href":"/docs/open-source/readme","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"README: install and first scan"}]}],["$","li","WALKTHROUGH.md",{"children":["$","$L2",null,{"href":"/docs/open-source/walkthrough","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"First-run walkthrough"}]}],["$","li","docs/upgrade-and-rollback.md",{"children":["$","$L2",null,{"href":"/docs/open-source/upgrade-and-rollback","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Upgrade and rollback"}]}],["$","li","docs/client.md",{"children":["$","$L2",null,{"href":"/docs/open-source/client","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Client, CLI and public checks"}]}],["$","li","skills/README.md",{"children":["$","$L2",null,{"href":"/docs/open-source/skills","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Agent skills and setup"}]}]]}]]}],["$","div","Workflows",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Workflows"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","docs/product-model.md",{"children":["$","$L2",null,{"href":"/docs/open-source/product-model","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Product model and vocabulary"}]}],["$","li","docs/hunt-architecture.md",{"children":["$","$L2",null,{"href":"/docs/open-source/hunt-architecture","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Hunt architecture"}]}],["$","li","docs/hunt-authorization-workflow.md",{"children":["$","$L2",null,{"href":"/docs/open-source/hunt-authorization-workflow","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Hunt authorization workflow"}]}],["$","li","docs/hunt-authorization-behavior.md",{"children":["$","$L2",null,{"href":"/docs/open-source/hunt-authorization-behavior","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Hunt authorization behavior"}]}],["$","li","docs/AI_TEST_WORKFLOWS.md",{"children":["$","$L2",null,{"href":"/docs/open-source/AI_TEST_WORKFLOWS","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"AI test workflows"}]}],"$L1a","$L1b"]}]]}],"$L1c","$L1d"],"$L1e"]}]}]]}],"$L1f"]}],"$L20","$L21"]}] 7:["$","footer",null,{"className":"border-t border-white/[0.07]","children":["$","div",null,{"className":"mx-auto max-w-7xl px-4 py-12 sm:px-6 sm:py-16","children":[["$","div",null,{"className":"grid gap-10 sm:grid-cols-2 lg:grid-cols-[1.4fr_1fr_1fr_1fr]","children":[["$","div",null,{"children":[["$","$L2",null,{"href":"/","className":"font-display inline-flex items-baseline gap-2 text-lg font-bold tracking-tight text-white","children":[["$","span",null,{"className":"h-2 w-2 translate-y-[-1px] bg-emerald-400","aria-hidden":"true"}],"ShakerScan"]}],["$","p",null,{"className":"mt-3 max-w-xs text-sm leading-6 text-[#7C8798]","children":"Open-source security testing platform for web applications, APIs, AI systems, and network-connected devices. Self-hosted in Docker."}],["$","p",null,{"className":"mt-4 text-xs leading-5 text-[#5F6B7A]","children":"Only test systems you own or are explicitly authorized to assess."}]]}],[["$","div","Product",{"children":[["$","h4",null,{"className":"font-mono text-[11px] tracking-[0.22em] text-[#5F6B7A] uppercase","children":"Product"}],["$","ul",null,{"className":"mt-4 space-y-2.5","children":[["$","li","/product/scan",{"children":["$","$L2",null,{"href":"/product/scan","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Scan"}]}],["$","li","/product/hunt",{"children":["$","$L2",null,{"href":"/product/hunt","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Hunt"}]}],["$","li","/product/ai-security",{"children":["$","$L2",null,{"href":"/product/ai-security","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"AI Security"}]}],["$","li","/product/model-intake",{"children":["$","$L2",null,{"href":"/product/model-intake","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Model Intake"}]}],["$","li","/product/attack-surface",{"children":["$","$L2",null,{"href":"/product/attack-surface","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Attack Surface"}]}],["$","li","/product/connected-devices",{"children":["$","$L2",null,{"href":"/product/connected-devices","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Connected Devices"}]}]]}]]}],["$","div","Resources",{"children":[["$","h4",null,{"className":"font-mono text-[11px] tracking-[0.22em] text-[#5F6B7A] uppercase","children":"Resources"}],["$","ul",null,{"className":"mt-4 space-y-2.5","children":[["$","li","/open-source",{"children":["$","$L2",null,{"href":"/open-source","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Open Source"}]}],["$","li","/check/",{"children":["$","a",null,{"href":"/check/","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Free posture check"}]}],["$","li","/docs",{"children":["$","$L2",null,{"href":"/docs","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Documentation"}]}],["$","li","/research",{"children":["$","$L2",null,{"href":"/research","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Research"}]}],["$","li","/about",{"children":["$","$L2",null,{"href":"/about","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"About"}]}]]}]]}],["$","div","Trust",{"children":[["$","h4",null,{"className":"font-mono text-[11px] tracking-[0.22em] text-[#5F6B7A] uppercase","children":"Trust"}],["$","ul",null,{"className":"mt-4 space-y-2.5","children":[["$","li","/security",{"children":["$","$L2",null,{"href":"/security","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Security"}]}],"$L22","$L23","$L24"]}]]}]]]}],"$L25"]}]}] 8:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17s1t3rwlqr6e.css","precedence":"next"}] 9:["$","script","script-0",{"src":"/_next/static/chunks/0ahwd129-7-30.js","async":true}] a:["$","$L26",null,{"children":["$","$27",null,{"name":"Next.MetadataOutlet","children":"$@28"}]}] d:["$","$1","h",{"children":[null,["$","$L29",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L2a",null,{"children":["$","$27",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"ShakerScan 2.3.6 — ShakerScan Docs"}],["$","meta","1",{"name":"description","content":"Three new surfaces arrive gated or read-only — authenticated-scan assurance, AI application boundary verification, and Service Intelligence — alongside…"}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://shakerscan.com/docs/open-source/releases/2.3.6"}],["$","meta","4",{"property":"og:title","content":"ShakerScan 2.3.6 — ShakerScan Docs"}],["$","meta","5",{"property":"og:description","content":"Three new surfaces arrive gated or read-only — authenticated-scan assurance, AI application boundary verification, and Service Intelligence — alongside…"}],["$","meta","6",{"property":"og:url","content":"https://shakerscan.com/docs/open-source/releases/2.3.6"}],["$","meta","7",{"property":"og:site_name","content":"ShakerScan"}],["$","meta","8",{"property":"og:type","content":"article"}],["$","meta","9",{"name":"twitter:card","content":"summary"}],["$","meta","10",{"name":"twitter:title","content":"ShakerScan 2.3.6 — ShakerScan Docs"}],["$","meta","11",{"name":"twitter:description","content":"Three new surfaces arrive gated or read-only — authenticated-scan assurance, AI application boundary verification, and Service Intelligence — alongside…"}],["$","link","12",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","13",{"rel":"apple-touch-icon","href":"/apple-icon.svg","type":"image/svg+xml"}],["$","$L2b","14",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] f:["$","$1","c",{"children":[null,["$","$L2c",null,{"parallelRouterKey":"children","template":["$","$L2d",null,{}]}]]}] 12:["$","$1","c",{"children":[null,["$","$L2c",null,{"parallelRouterKey":"children","template":["$","$L2d",null,{}]}]]}] 14:["$","$1","c",{"children":[null,["$","$L2c",null,{"parallelRouterKey":"children","template":["$","$L2d",null,{}]}]]}] 16:["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0p5_b9mq-qlz-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/3fntmmi971322.js","async":true}]],["$","html",null,{"lang":"en","data-theme":"dark","style":{"colorScheme":"dark"},"children":["$","body",null,{"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased","children":["$","$L2c",null,{"parallelRouterKey":"children","error":"$2e","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/22aga_6h1t_-r.js","async":true}]],"template":["$","$L2d",null,{}],"notFound":[["$","div",null,{"className":"flex min-h-screen flex-col items-center justify-center bg-stone-950 text-stone-100","children":[["$","h1",null,{"className":"text-6xl font-bold tracking-tight text-stone-400","children":"404"}],["$","p",null,{"className":"mt-4 text-lg text-stone-500","children":"Page not found"}],["$","$L2",null,{"href":"/","className":"mt-8 rounded-md bg-stone-800 px-5 py-2.5 text-sm font-medium text-stone-200 transition hover:bg-stone-700","children":"Back to home"}]]}],[]]}]}]}]]}] 1a:["$","li","docs/connected-device-security.md",{"children":["$","$L2",null,{"href":"/docs/open-source/connected-device-security","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Connected-device security"}]}] 1b:["$","li","docs/model-intake-security-review-roadmap.md",{"children":["$","$L2",null,{"href":"/docs/open-source/model-intake-security-review-roadmap","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Model Intake boundary"}]}] 1c:["$","div","Architecture and operations",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Architecture and operations"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","docs/dast-asm-architecture.md",{"children":["$","$L2",null,{"href":"/docs/open-source/dast-asm-architecture","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"DAST execution and Continuous ASM"}]}],["$","li","docs/multi-node-guide.md",{"children":["$","$L2",null,{"href":"/docs/open-source/multi-node-guide","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Multi-node Fleet guide"}]}],["$","li","docs/multi-node-architecture.md",{"children":["$","$L2",null,{"href":"/docs/open-source/multi-node-architecture","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Multi-node architecture"}]}],["$","li","docs/mcp.md",{"children":["$","$L2",null,{"href":"/docs/open-source/mcp","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"MCP adapter"}]}],["$","li","docs/owasp-coverage-matrix.md",{"children":["$","$L2",null,{"href":"/docs/open-source/owasp-coverage-matrix","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"OWASP coverage matrix"}]}],["$","li","docs/functionality-reference.md",{"children":["$","$L2",null,{"href":"/docs/open-source/functionality-reference","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Functionality reference"}]}]]}]]}] 1d:["$","div","Releases and process",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Releases and process"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","docs/release-process.md",{"children":["$","$L2",null,{"href":"/docs/open-source/release-process","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release process"}]}],["$","li","docs/sbom.md",{"children":["$","$L2",null,{"href":"/docs/open-source/sbom","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release SBOMs"}]}],["$","li","docs/releases/README.md",{"children":["$","$L2",null,{"href":"/docs/open-source/releases/README","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release notes index"}]}],["$","li","RELEASES.md",{"children":["$","$L2",null,{"href":"/docs/open-source/release-mapping","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release mapping"}]}],["$","li","benchmarks/README.md",{"children":["$","$L2",null,{"href":"/docs/open-source/benchmarks","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Benchmark fixtures"}]}],["$","li","AGENTS.md",{"children":["$","$L2",null,{"href":"/docs/open-source/agents","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Agent operating policy"}]}]]}]]}] 1e:["$","div",null,{"className":"border-t border-white/[0.07] pt-4 text-xs leading-5 text-[#5F6B7A]","children":["Rendered from"," ",["$","a",null,{"href":"https://github.com/andriyze/shakerscan/tree/v2.5.4/docs","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 text-[#98A2B3] hover:text-white","children":["v2.5.4"," ",["$","$L4",null,{"icon":{"name":"external-link","size":24,"node":[["path",{"d":"M15 3h6v6","key":"1q9fwt"}],["path",{"d":"M10 14 21 3","key":"gplh6r"}],["path",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","key":"a6xqqp"}]]},"className":"h-3 w-3","aria-hidden":"true"}]]}],", the current stable channel."]}] 1f:["$","div",null,{"className":"hidden max-h-[calc(100vh-6rem)] overflow-y-auto pr-2 lg:block","children":"$6:props:children:0:props:children:0:props:children:1:props:children"}] 20:["$","main",null,{"className":"mt-8 min-w-0 lg:mt-0","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://shakerscan.com/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docs\",\"item\":\"https://shakerscan.com/docs\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Open Source\",\"item\":\"https://shakerscan.com/docs/open-source\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"ShakerScan 2.3.6\",\"item\":\"https://shakerscan.com/docs/open-source/releases/2.3.6\"}]}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"TechArticle\",\"headline\":\"ShakerScan 2.3.6\",\"description\":\"Three new surfaces arrive gated or read-only — authenticated-scan assurance, AI application boundary verification, and Service Intelligence — alongside…\",\"url\":\"https://shakerscan.com/docs/open-source/releases/2.3.6\",\"version\":\"2.5.4\",\"inLanguage\":\"en\",\"author\":{\"@type\":\"Organization\",\"name\":\"ShakerScan\",\"url\":\"https://shakerscan.com\"},\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"ShakerScan\",\"url\":\"https://shakerscan.com\"}}"}}],["$","nav",null,{"className":"font-mono text-[11px] tracking-wide text-[#5F6B7A] uppercase","aria-label":"Breadcrumb","children":[["$","$L2",null,{"href":"/docs","className":"transition-colors hover:text-[#98A2B3]","children":"Docs"}],["$","span",null,{"className":"mx-2 text-white/20","children":"/"}],["$","$L2",null,{"href":"/docs/open-source","className":"transition-colors hover:text-[#98A2B3]","children":"Open Source"}],["$","span",null,{"className":"mx-2 text-white/20","children":"/"}],["$","span",null,{"className":"normal-case","children":"docs/releases/2.3.6.md"}]]}],["$","div",null,{"className":"mt-4 flex flex-wrap items-center gap-x-5 gap-y-2 border-b border-white/[0.07] pb-4 text-xs text-[#7C8798]","children":[["$","span",null,{"children":["Pinned to ",["$","span",null,{"className":"font-mono text-[#C6CDD8]","children":"v2.5.4"}]]}],["$","a",null,{"href":"https://github.com/andriyze/shakerscan/blob/v2.5.4/docs/releases/2.3.6.md","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 text-[#98A2B3] hover:text-white","children":["View source on GitHub ",["$","$L4",null,{"icon":"$1e:props:children:2:props:children:2:props:icon","className":"h-3 w-3","aria-hidden":"true"}]]}],["$","a",null,{"href":"https://github.com/andriyze/shakerscan/issues","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 text-[#98A2B3] hover:text-white","children":["Report an issue ",["$","$L4",null,{"icon":"$1e:props:children:2:props:children:2:props:icon","className":"h-3 w-3","aria-hidden":"true"}]]}]]}],["$","article",null,{"className":"mt-6","children":["$","div",null,{"className":"oss-markdown","children":[["$","h1","h1-0",{"id":"shakerscan-236","children":["$","a",null,{"href":"#shakerscan-236","className":"oss-heading-anchor","children":"ShakerScan 2.3.6"}]}],"\n",["$","p","p-0",{"children":"Three new surfaces arrive gated or read-only — authenticated-scan assurance, AI application\nboundary verification, and Service Intelligence — alongside correctness work on scan\naccounting, proof reporting and the remote client. Upgrade in place from 2.3.5; 0.8.18 remains\nthe oldest directly certified upgrade base. No change to the deterministic proof boundary."}],"\n",["$","h2","h2-0",{"id":"changes","children":["$","a",null,{"href":"#changes","className":"oss-heading-anchor","children":"Changes"}]}],"\n",["$","h3","h3-0",{"id":"an-external-verifier-spends-what-it-reserved-152","children":["$","a",null,{"href":"#an-external-verifier-spends-what-it-reserved-152","className":"oss-heading-anchor","children":"An external verifier spends what it reserved (#152)"}]}],"\n",["$","ul","ul-0",{"children":["\n",["$","li","li-0",{"children":["A nuclei batch attempt is paced to its reservation, as every other batched tool already was.\nIts argv fixed ","$L2f"," regardless of the hold, so a 45-second attempt holding 120\nrequests planned about 450. Each attempt tripped the wire ceiling, was charged its whole\nreservation, and reported the catch-all ","$L30",". The same attempt now plans 90\nrequests against its 120 hold."]}],"\n","$L31","\n","$L32","\n"]}],"\n","$L33","\n","$L34","\n","$L35","\n","$L36","\n","$L37","\n","$L38","\n","$L39","\n","$L3a","\n","$L3b","\n","$L3c","\n","$L3d","\n","$L3e"]}]}],"$L3f"]}] 21:["$","aside",null,{"className":"hidden xl:sticky xl:top-20 xl:block xl:self-start","children":["$","nav",null,{"aria-label":"On this page","children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"On this page"}],["$","ul",null,{"className":"mt-2.5 max-h-[calc(100vh-8rem)] space-y-1 overflow-y-auto border-l border-white/[0.07] pl-3 text-xs leading-5","children":[["$","li","changes-2",{"children":["$","a",null,{"href":"#changes","className":"block text-[#98A2B3] hover:text-white ","children":"Changes"}]}],["$","li","an-external-verifier-spends-what-it-reserved-152-3",{"children":["$","a",null,{"href":"#an-external-verifier-spends-what-it-reserved-152","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"An external verifier spends what it reserved (#152)"}]}],["$","li","missing-evidence-is-not-evidence-of-safety-136-3",{"children":["$","a",null,{"href":"#missing-evidence-is-not-evidence-of-safety-136","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"Missing evidence is not evidence of safety (#136)"}]}],["$","li","continuous-asm-stops-hammering-a-host-that-cannot-resolve-135-3",{"children":["$","a",null,{"href":"#continuous-asm-stops-hammering-a-host-that-cannot-resolve-135","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"Continuous ASM stops hammering a host that cannot resolve (#135)"}]}],["$","li","attack-surface-service-intelligence-150-153-3",{"children":["$","a",null,{"href":"#attack-surface-service-intelligence-150-153","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"Attack surface: Service Intelligence (#150, #153)"}]}],["$","li","ai-application-boundary-verification-149-3",{"children":["$","a",null,{"href":"#ai-application-boundary-verification-149","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"AI application boundary verification (#149)"}]}],["$","li","authenticated-scan-profile-and-assurance-preview-137-3",{"children":["$","a",null,{"href":"#authenticated-scan-profile-and-assurance-preview-137","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"Authenticated-scan profile and assurance preview (#137)"}]}],["$","li","the-remote-client-143-144-146-3",{"children":["$","a",null,{"href":"#the-remote-client-143-144-146","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"The remote client (#143, #144, #146)"}]}]]}]]}]}] 22:["$","li","/vulnerability-disclosure",{"children":["$","$L2",null,{"href":"/vulnerability-disclosure","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Vulnerability disclosure"}]}] 23:["$","li","/privacy",{"children":["$","$L2",null,{"href":"/privacy","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Privacy"}]}] 24:["$","li","/terms",{"children":["$","$L2",null,{"href":"/terms","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Terms"}]}] 25:["$","div",null,{"className":"mt-12 flex flex-col items-center justify-between gap-4 border-t border-white/[0.07] pt-6 sm:flex-row","children":[["$","span",null,{"className":"font-mono text-[11px] text-[#5F6B7A]","children":["© ",2026," ShakerScan. Source available under"," ",["$","a",null,{"href":"https://github.com/andriyze/shakerscan/blob/main/LICENSE","target":"_blank","rel":"noreferrer","className":"text-[#7C8798] underline decoration-white/20 underline-offset-2 transition-colors hover:text-white","children":"AGPL-3.0"}],"."]}],["$","div",null,{"className":"flex flex-wrap items-center justify-center gap-x-5 gap-y-2","children":[[["$","$L2","/enterprise",{"href":"/enterprise","className":"inline-flex items-center gap-1 font-mono text-[11px] text-[#7C8798] transition-colors hover:text-white","children":"Enterprise"}],["$","a","mailto:sales@shakerscan.com",{"href":"mailto:sales@shakerscan.com","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 font-mono text-[11px] text-[#7C8798] transition-colors hover:text-white","children":["Contact",["$","$L4",null,{"icon":"$1e:props:children:2:props:children:2:props:icon","className":"h-3 w-3","aria-hidden":"true"}]]}]],["$","a",null,{"href":"https://github.com/andriyze/shakerscan","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-2 font-mono text-[11px] text-[#7C8798] transition-colors hover:text-white","children":[["$","$L4",null,{"icon":"$0:data:0:rsc:props:children:0:props:children:0:props:children:props:children:0:props:children:1:props:children:2:props:children:0:props:icon","className":"h-3.5 w-3.5","aria-hidden":"true"}],"github.com/andriyze/shakerscan"]}]]}]]}] 28:null 19:true c:300 2f:["$","code","code-0",{"children":"-rate-limit 10"}] 30:["$","code","code-1",{"children":"adapter_failed"}] 31:["$","li","li-1",{"children":"A failed action names its cause. The public receipt carried only identifiers, timestamps,\nparser version and provenance, so an operator saw \"The capability adapter failed\" and had\nnowhere to go while the cause sat in the stored receipt. It now carries a bounded diagnostic:\nthe normalised error class, the error count, whether execution started, and the attempted and\nunattempted counts. Only the class travels, never the tool's own text."}] 32:["$","li","li-2",{"children":["The operator log no longer masks that cause. A batch prepends ",["$","code","code-0",{"children":"adapter_failed"}]," before its real\nper-attempt errors, and the classifier returned on the first unrecognised token, so every\nbatch failure read as ",["$","code","code-1",{"children":"unclassified_adapter_error"}],"."]}] 33:["$","h3","h3-1",{"id":"missing-evidence-is-not-evidence-of-safety-136","children":["$","a",null,{"href":"#missing-evidence-is-not-evidence-of-safety-136","className":"oss-heading-anchor","children":"Missing evidence is not evidence of safety (#136)"}]}] 34:["$","ul","ul-1",{"children":["\n",["$","li","li-0",{"children":["A proof batch whose manifest slice is empty because its producer was truncated or timed out\nnow reports ",["$","code","code-0",{"children":"dependency_incomplete"}]," rather than ",["$","code","code-1",{"children":"not_applicable"}],". The finalizer counted\n",["$","code","code-2",{"children":"not_applicable"}]," as a clean, complete escalation, so an upstream timeout was laundered into\ngood-looking coverage. An empty slice from a complete producer still reports ",["$","code","code-3",{"children":"not_applicable"}],"."]}],"\n"]}] 35:["$","h3","h3-2",{"id":"continuous-asm-stops-hammering-a-host-that-cannot-resolve-135","children":["$","a",null,{"href":"#continuous-asm-stops-hammering-a-host-that-cannot-resolve-135","className":"oss-heading-anchor","children":"Continuous ASM stops hammering a host that cannot resolve (#135)"}]}] 36:["$","ul","ul-2",{"children":["\n",["$","li","li-0",{"children":["A dispatch failure is recorded like every other dispatcher decision, with a ",["$","code","code-0",{"children":"next_eligible_at"}],"\nbackoff, and a target inside that backoff is skipped. Previously only the success path stamped\n",["$","code","code-1",{"children":"asm_last_test_at"}],", so an unresolvable target was retried, and logged, on every tick forever."]}],"\n"]}] 37:["$","h3","h3-3",{"id":"attack-surface-service-intelligence-150-153","children":["$","a",null,{"href":"#attack-surface-service-intelligence-150-153","className":"oss-heading-anchor","children":"Attack surface: Service Intelligence (#150, #153)"}]}] 38:["$","ul","ul-3",{"children":["\n",["$","li","li-0",{"children":"Service Intelligence relates a domain to its targets, listeners, service and version identity,\ncandidate weaknesses and investigation activities, with scoped Hunt investigation."}],"\n",["$","li","li-1",{"children":"Its services table leads with the listener and service rather than with an absent address,\norders rows by consequence so linked findings and candidate weaknesses come first, shows counts\nonly above zero, reports real time since last seen, and states the active findings that could\nnot be tied to a listener instead of leaving them a footnote."}],"\n"]}] 39:["$","h3","h3-4",{"id":"ai-application-boundary-verification-149","children":["$","a",null,{"href":"#ai-application-boundary-verification-149","className":"oss-heading-anchor","children":"AI application boundary verification (#149)"}]}] 3a:["$","ul","ul-4",{"children":["\n",["$","li","li-0",{"children":"Deterministic verification of a configured AI application boundary, with its own proof types\njoining the deterministic set. Ordinary web DAST does not select it."}],"\n"]}] 3b:["$","h3","h3-5",{"id":"authenticated-scan-profile-and-assurance-preview-137","children":["$","a",null,{"href":"#authenticated-scan-profile-and-assurance-preview-137","className":"oss-heading-anchor","children":"Authenticated-scan profile and assurance preview (#137)"}]}] 3c:["$","ul","ul-5",{"children":["\n",["$","li","li-0",{"children":["Reviewed profile metadata pinned to a credential version, explicit one-shot read-only\nvalidation, deterministic content-free evaluation, and an action-level credential gate that\nsurfaces blocked work as ",["$","code","code-0",{"children":"authentication_uncertain"}],". Gated off by default behind\n",["$","code","code-1",{"children":"SHAKERSCAN_AUTHENTICATED_ASSURANCE"}],"; its own guide lists the remaining release gates."]}],"\n"]}] 3d:["$","h3","h3-6",{"id":"the-remote-client-143-144-146","children":["$","a",null,{"href":"#the-remote-client-143-144-146","className":"oss-heading-anchor","children":"The remote client (#143, #144, #146)"}]}] 3e:["$","ul","ul-6",{"children":["\n",["$","li","li-0",{"children":"An authenticated request is never followed through a redirect. The https guard only ever\nexamined the URL the operator supplied, so a redirect re-sent the bearer token to another\norigin or to plain HTTP."}],"\n",["$","li","li-1",{"children":"A saved token is bound to its origin: it is inherited only when the effective scheme, host and\neffective port match the saved ones. An explicit credential remains a deliberate override."}],"\n",["$","li","li-2",{"children":[["$","code","code-0",{"children":"doctor"}]," exits non-zero when the health probe fails. A reachable tool catalogue does not\nestablish engine health, and onboarding runs this as a readiness check."]}],"\n",["$","li","li-3",{"children":"The published 0.3.0 client is reconciled into this line, and a release tag that is not an\nancestor of the supported line is refused."}],"\n",["$","li","li-4",{"children":"The Hunt page no longer demands an approval receipt an operator cannot create, where the\ndeployment records target authorization itself. Credential use still requires its own receipt,\nand a standalone deployment is unchanged."}],"\n"]}] 3f:["$","p",null,{"className":"mt-10 border-t border-white/[0.07] pt-4 text-xs leading-5 text-[#5F6B7A]","children":["This page is rendered from ",["$","span",null,{"className":"font-mono","children":"docs/releases/2.3.6.md"}]," in the open-source repository at ","v2.5.4",". When documentation and implementation disagree, the code, database schema, and tests at that tag are authoritative."]}] c:C 18:0 e:"$undefined" 10:"$undefined" 13:"$undefined" 15:"$undefined" 17:"$undefined" b:"$undefined"