From 733c41471438b94034f144088b060e3547671cae Mon Sep 17 00:00:00 2001 From: tnsardesai <18272584+tnsardesai@users.noreply.github.com> Date: Wed, 28 Oct 2026 19:01:48 +0000 Subject: [PATCH 1/3] Drop beta wording from hCaptcha solver docs --- browsers/bot-detection/stealth.mdx | 4 ++-- browsers/telemetry/pausing-for-captcha-solves.mdx | 1 - changelog.mdx | 2 +- docs.json | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/browsers/bot-detection/stealth.mdx b/browsers/bot-detection/stealth.mdx index 216316da..c7e19b35 100644 --- a/browsers/bot-detection/stealth.mdx +++ b/browsers/bot-detection/stealth.mdx @@ -126,6 +126,6 @@ When encountering a Cloudflare challenge, our auto-CAPTCHA solver will attempt t After the "Ready" message appears, don't click the Cloudflare CAPTCHA checkbox — this can interfere with the solver. -### hCaptcha (beta) +### hCaptcha -KERNEL can also attempt to solve supported hCaptcha challenges automatically. The hCaptcha solver is in beta and isn't enabled for every organization by default. To turn it on, [contact support](/info/support) with the website or workflow you're testing, your expected volume, and whether you already use stealth mode, [profiles](/browsers/profiles), or custom [proxies](/proxies/overview). +KERNEL can also attempt to solve supported hCaptcha challenges automatically. diff --git a/browsers/telemetry/pausing-for-captcha-solves.mdx b/browsers/telemetry/pausing-for-captcha-solves.mdx index aebca297..ae9b04ab 100644 --- a/browsers/telemetry/pausing-for-captcha-solves.mdx +++ b/browsers/telemetry/pausing-for-captcha-solves.mdx @@ -653,7 +653,6 @@ Durations come straight from each event's `duration_ms`, which is authoritative; - **One episode at a time.** The gate resets after each verdict; overlapping visible challenges from the same provider aren't split apart, and the telemetry docs note Kernel's own event model can't always attribute a result in that case either. - **The page probe is best-effort.** It reads the DOM for known widget markers and a response token. A site that renders its challenge somewhere those selectors miss won't be held past the logged message alone. - **GeeTest has no selector either.** The solver reports `geetest` task events, but `PROBE`'s `groups` has no GeeTest entry and `tokenPresent` checks no GeeTest field, so `widgets` never reports one and the agent proceeds as soon as the task settles, even while the challenge is still open. Add a selector for your target's GeeTest integration if you need it to hold. -- **hCaptcha coverage depends on your organization's configuration.** When the hCaptcha solver isn't enabled for your org, hCaptcha pages produce no captcha events and the gate falls through to the page probe. - **Press-and-hold has no selector at all.** It emits `captcha_challenge_result` telemetry like reCAPTCHA and hCaptcha, but `PROBE`'s `groups` has no entry for it, so `widgets` never reports one -- the tool-call handler treats that as clear and lets the agent proceed even while the challenge is still open. Add a selector for your target's specific implementation if you need it to actually hold. - **A reload within `TASK_SETTLE_MS` of the last verdict can still be missed.** `settledAt` treats an ID as fresh again once that window passes, so a genuinely new outcome for a reused `challenge_id` eventually gets through -- but if the reload happens sooner than that, its result is indistinguishable from a stale duplicate and gets dropped. diff --git a/changelog.mdx b/changelog.mdx index f8525088..5e4b0de1 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -444,7 +444,7 @@ For API library updates, see the [Node SDK](https://github.com/onkernel/kernel-n ## Documentation updates -- Added a new [hCaptcha](/browsers/bot-detection/stealth#hcaptcha-beta) page documenting beta support for hCaptcha solving. +- Added a new [hCaptcha](/browsers/bot-detection/stealth#hcaptcha) page documenting beta support for hCaptcha solving. - Refreshed [managed auth](/auth/managed-auth) documentation for May 2026: new dedicated [connection lifecycle](/auth/connection-lifecycle) page covering health checks and re-authentication, a shared [connection configuration](/auth/configuration) reference, documented `success_url` / `error_url` query parameters for the [hosted UI](/auth/hosted-ui), [`start_url`](/browsers/create-a-browser) references across browser and pool docs, a reorganized sidebar, and new FAQ entries for short-session reauth and multi-step login forms. - Clarified that managed residential proxy IPs are stable within a session but are not guaranteed to persist across sessions. - Updated the [Yutori integration guide](/integrations/computer-use/yutori) to Navigator n1.5. diff --git a/docs.json b/docs.json index 93054184..73d822ec 100644 --- a/docs.json +++ b/docs.json @@ -6,7 +6,7 @@ { "source": "/careers/backend-engineer", "destination": "https://jobs.ashbyhq.com/usekernel" }, { "source": "/careers/engineer-new-grad", "destination": "https://jobs.ashbyhq.com/usekernel" }, { "source": "/careers/customer-engineer", "destination": "https://jobs.ashbyhq.com/usekernel" }, - { "source": "/browsers/bot-detection/hcaptcha", "destination": "/browsers/bot-detection/stealth#hcaptcha-beta" }, + { "source": "/browsers/bot-detection/hcaptcha", "destination": "/browsers/bot-detection/stealth#hcaptcha" }, { "source": "/overview/products", "destination": "/overview/features" }, { "source": "/proxies/datacenter", "destination": "/proxies/isp" }, { "source": "/apps/secrets", "destination": "/apps/deploy#secrets" }, From 97c4aba7a2344a722cddc40f530a221846a946a8 Mon Sep 17 00:00:00 2001 From: tnsardesai <18272584+tnsardesai@users.noreply.github.com> Date: Wed, 28 Oct 2026 19:04:26 +0000 Subject: [PATCH 2/3] Remove hCaptcha section from stealth docs --- browsers/bot-detection/stealth.mdx | 4 ---- changelog.mdx | 2 +- docs.json | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/browsers/bot-detection/stealth.mdx b/browsers/bot-detection/stealth.mdx index c7e19b35..2d27d680 100644 --- a/browsers/bot-detection/stealth.mdx +++ b/browsers/bot-detection/stealth.mdx @@ -125,7 +125,3 @@ When encountering a Cloudflare challenge, our auto-CAPTCHA solver will attempt t After the "Ready" message appears, don't click the Cloudflare CAPTCHA checkbox — this can interfere with the solver. - -### hCaptcha - -KERNEL can also attempt to solve supported hCaptcha challenges automatically. diff --git a/changelog.mdx b/changelog.mdx index 5e4b0de1..413c708d 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -444,7 +444,7 @@ For API library updates, see the [Node SDK](https://github.com/onkernel/kernel-n ## Documentation updates -- Added a new [hCaptcha](/browsers/bot-detection/stealth#hcaptcha) page documenting beta support for hCaptcha solving. +- Added a new [hCaptcha](/browsers/bot-detection/stealth) page documenting beta support for hCaptcha solving. - Refreshed [managed auth](/auth/managed-auth) documentation for May 2026: new dedicated [connection lifecycle](/auth/connection-lifecycle) page covering health checks and re-authentication, a shared [connection configuration](/auth/configuration) reference, documented `success_url` / `error_url` query parameters for the [hosted UI](/auth/hosted-ui), [`start_url`](/browsers/create-a-browser) references across browser and pool docs, a reorganized sidebar, and new FAQ entries for short-session reauth and multi-step login forms. - Clarified that managed residential proxy IPs are stable within a session but are not guaranteed to persist across sessions. - Updated the [Yutori integration guide](/integrations/computer-use/yutori) to Navigator n1.5. diff --git a/docs.json b/docs.json index 73d822ec..9383b1f4 100644 --- a/docs.json +++ b/docs.json @@ -6,7 +6,7 @@ { "source": "/careers/backend-engineer", "destination": "https://jobs.ashbyhq.com/usekernel" }, { "source": "/careers/engineer-new-grad", "destination": "https://jobs.ashbyhq.com/usekernel" }, { "source": "/careers/customer-engineer", "destination": "https://jobs.ashbyhq.com/usekernel" }, - { "source": "/browsers/bot-detection/hcaptcha", "destination": "/browsers/bot-detection/stealth#hcaptcha" }, + { "source": "/browsers/bot-detection/hcaptcha", "destination": "/browsers/bot-detection/stealth" }, { "source": "/overview/products", "destination": "/overview/features" }, { "source": "/proxies/datacenter", "destination": "/proxies/isp" }, { "source": "/apps/secrets", "destination": "/apps/deploy#secrets" }, From 36f9ad7297dd43095b9afdab1c0574d4468bf3e2 Mon Sep 17 00:00:00 2001 From: tnsardesai <18272584+tnsardesai@users.noreply.github.com> Date: Wed, 28 Oct 2026 19:07:41 +0000 Subject: [PATCH 3/3] Revert changelog link change and note hCaptcha solver retries --- browsers/telemetry/pausing-for-captcha-solves.mdx | 1 + changelog.mdx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/browsers/telemetry/pausing-for-captcha-solves.mdx b/browsers/telemetry/pausing-for-captcha-solves.mdx index ae9b04ab..fc760435 100644 --- a/browsers/telemetry/pausing-for-captcha-solves.mdx +++ b/browsers/telemetry/pausing-for-captcha-solves.mdx @@ -653,6 +653,7 @@ Durations come straight from each event's `duration_ms`, which is authoritative; - **One episode at a time.** The gate resets after each verdict; overlapping visible challenges from the same provider aren't split apart, and the telemetry docs note Kernel's own event model can't always attribute a result in that case either. - **The page probe is best-effort.** It reads the DOM for known widget markers and a response token. A site that renders its challenge somewhere those selectors miss won't be held past the logged message alone. - **GeeTest has no selector either.** The solver reports `geetest` task events, but `PROBE`'s `groups` has no GeeTest entry and `tokenPresent` checks no GeeTest field, so `widgets` never reports one and the agent proceeds as soon as the task settles, even while the challenge is still open. Add a selector for your target's GeeTest integration if you need it to hold. +- **hCaptcha often takes several rounds.** hCaptcha challenges are hard, so the solver often fails a round and retries with a new one before the challenge clears. Each round is its own `image_challenge` task, so a finished or failed round doesn't mean the solve is over. Wait until the solver is done retrying, signaled by the `captcha_challenge_result` for that `challenge_id` (`solved` or `abandoned`), before letting the agent act on the page. If the agent is told about a single image round, have it keep waiting rather than interact with the widget. - **Press-and-hold has no selector at all.** It emits `captcha_challenge_result` telemetry like reCAPTCHA and hCaptcha, but `PROBE`'s `groups` has no entry for it, so `widgets` never reports one -- the tool-call handler treats that as clear and lets the agent proceed even while the challenge is still open. Add a selector for your target's specific implementation if you need it to actually hold. - **A reload within `TASK_SETTLE_MS` of the last verdict can still be missed.** `settledAt` treats an ID as fresh again once that window passes, so a genuinely new outcome for a reused `challenge_id` eventually gets through -- but if the reload happens sooner than that, its result is indistinguishable from a stale duplicate and gets dropped. diff --git a/changelog.mdx b/changelog.mdx index 413c708d..f8525088 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -444,7 +444,7 @@ For API library updates, see the [Node SDK](https://github.com/onkernel/kernel-n ## Documentation updates -- Added a new [hCaptcha](/browsers/bot-detection/stealth) page documenting beta support for hCaptcha solving. +- Added a new [hCaptcha](/browsers/bot-detection/stealth#hcaptcha-beta) page documenting beta support for hCaptcha solving. - Refreshed [managed auth](/auth/managed-auth) documentation for May 2026: new dedicated [connection lifecycle](/auth/connection-lifecycle) page covering health checks and re-authentication, a shared [connection configuration](/auth/configuration) reference, documented `success_url` / `error_url` query parameters for the [hosted UI](/auth/hosted-ui), [`start_url`](/browsers/create-a-browser) references across browser and pool docs, a reorganized sidebar, and new FAQ entries for short-session reauth and multi-step login forms. - Clarified that managed residential proxy IPs are stable within a session but are not guaranteed to persist across sessions. - Updated the [Yutori integration guide](/integrations/computer-use/yutori) to Navigator n1.5.