From e5157a600dce7849e66a8ef7a5f84ebae9f1d874 Mon Sep 17 00:00:00 2001 From: Ilyaas Kapadia <86218345+IlyaasK@users.noreply.github.com> Date: Thu, 6 Aug 2026 16:29:35 -0400 Subject: [PATCH 1/2] Document durable resource lifecycle behavior Explain profile and proxy renames, extension archive checksums, and the API-key self-delete guard so public conceptual docs match the generated API and current SDKs. --- auth/profiles.mdx | 24 ++++++++++++++++++++++++ browsers/extensions.mdx | 4 +++- info/api-keys.mdx | 4 ++++ proxies/overview.mdx | 19 +++++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) diff --git a/auth/profiles.mdx b/auth/profiles.mdx index 2e592bc..f8df1f0 100644 --- a/auth/profiles.mdx +++ b/auth/profiles.mdx @@ -69,6 +69,30 @@ func main() { ``` +## Rename a profile + +Profiles can be renamed without recreating their stored browser state. The new name must be unique within the project. + + +Rename a profile only when no browser session is using it by name. If the name changes before that session saves its changes, Kernel may not be able to save those changes back to the profile. + + + +```typescript TypeScript +await kernel.profiles.update('profiles-demo', { name: 'checkout-session' }); +``` + +```python Python +kernel.profiles.update("profiles-demo", name="checkout-session") +``` + +```go Go +_, err := client.Profiles.Update(ctx, "profiles-demo", kernel.ProfileUpdateParams{ + Name: "checkout-session", +}) +``` + + ## 2. Start a browser session using the profile and save changes After creating the profile, reference it by its `name` or `id` when creating a browser. diff --git a/browsers/extensions.mdx b/browsers/extensions.mdx index dca389f..db419a0 100644 --- a/browsers/extensions.mdx +++ b/browsers/extensions.mdx @@ -45,7 +45,9 @@ Extensions uploaded to Kernel are assigned a random ID, but you can also give th This name must be unique within your [project](/info/projects). To retrieve an extension's metadata without downloading the archive, call `GET /extensions/{id_or_name}/metadata`. -The response includes the extension's ID, name, size, and timestamps. +The response includes the extension's ID, name, size, timestamps, and, when available, a lowercase hexadecimal SHA-256 `checksum`. + +The checksum is calculated from the exact archive bytes uploaded to Kernel. It is not a normalized checksum of the unpacked extension: archive metadata, file ordering, or compression can produce a different checksum for otherwise identical files. The value can be absent for legacy extensions and Chrome Web Store extensions that Kernel repackaged. ## Using extensions in a browser diff --git a/info/api-keys.mdx b/info/api-keys.mdx index 125fc8b..5cf8560 100644 --- a/info/api-keys.mdx +++ b/info/api-keys.mdx @@ -154,6 +154,10 @@ func main() { Rename a key when the owner or purpose changes. Delete a key when the workload no longer needs access. + +An API key cannot delete itself. Authenticate with a different key when deleting a key, so the request cannot revoke the credential that is authorizing it. + + ```typescript TypeScript await kernel.apiKeys.update('key_01jwv4tn5m8k3q2v7x9p0a1bc2', { diff --git a/proxies/overview.mdx b/proxies/overview.mdx index 12058b4..49f6e4f 100644 --- a/proxies/overview.mdx +++ b/proxies/overview.mdx @@ -72,6 +72,25 @@ func main() { ``` +## Rename a proxy + +Rename a proxy without changing its type or connection settings. Proxy updates are addressed by ID, and proxy names are not unique, so use the proxy ID when a name could match more than one configuration. + + +```typescript TypeScript +await kernel.proxies.update(proxy.id, { name: 'checkout-proxy' }); +``` + +```python Python +kernel.proxies.update(proxy.id, name="checkout-proxy") +``` + +```go Go +_, err := client.Proxies.Update(ctx, proxy.ID, kernel.ProxyUpdateParams{ + Name: "checkout-proxy", +}) +``` + ## List your proxies From 52dee86115bc7b87565bd24ea721eb687a55fa80 Mon Sep 17 00:00:00 2001 From: Ilyaas Kapadia <86218345+IlyaasK@users.noreply.github.com> Date: Fri, 7 Aug 2026 11:19:21 -0400 Subject: [PATCH 2/2] Remove incorrect profile rename warning --- auth/profiles.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/auth/profiles.mdx b/auth/profiles.mdx index f8df1f0..a37a81f 100644 --- a/auth/profiles.mdx +++ b/auth/profiles.mdx @@ -73,10 +73,6 @@ func main() { Profiles can be renamed without recreating their stored browser state. The new name must be unique within the project. - -Rename a profile only when no browser session is using it by name. If the name changes before that session saves its changes, Kernel may not be able to save those changes back to the profile. - - ```typescript TypeScript await kernel.profiles.update('profiles-demo', { name: 'checkout-session' });