From 2a047c5cf8b6f96ef2f558d3f8027e2670e80a62 Mon Sep 17 00:00:00 2001 From: Ezana Azene Date: Tue, 14 Jul 2026 00:01:25 -0500 Subject: [PATCH] [integrations] Chrome capture: skip per-turn LLM classification on bulk sync Bulk sync captures (Claude/ChatGPT/Gemini backfill, captureMode 'sync') now send skip_classification: true on the /ingest payload. Smart-ingest gateways use the flag to skip the per-item classification LLM call, so a 400-turn backfill fires ~400 fewer LLM calls. Manual captures (user clicked Capture on one exchange) still classify. Gateways that don't support the flag ignore the extra field. All three bulk paths funnel through the shared payload builder in processCaptureRequest, and the retry queue re-sends the stored payload whole, so the flag survives retries. Bumps manifest to 0.6.1 with a README changelog entry. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01LxP7M99m4EF5Ve7rn3SNKH --- integrations/chrome-capture-extension/README.md | 1 + .../chrome-capture-extension/background/service-worker.js | 5 +++++ integrations/chrome-capture-extension/manifest.json | 2 +- integrations/chrome-capture-extension/metadata.json | 4 ++-- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/integrations/chrome-capture-extension/README.md b/integrations/chrome-capture-extension/README.md index e5c258827..4286b4874 100644 --- a/integrations/chrome-capture-extension/README.md +++ b/integrations/chrome-capture-extension/README.md @@ -230,5 +230,6 @@ If you're weighing whether to add more MCP-exposing extensions on top, see the [ ## Changelog +- **0.6.1** — Bulk sync captures now send `skip_classification: true` to the ingest gateway, skipping the per-turn LLM classification pass during backfills (manual captures still classify). Gateways that don't support the flag ignore it. - **0.5.1** — Added the branded icon set (16/32/48/128 PNGs); the toolbar button now shows the Open Brain mark instead of Chrome's default puzzle-piece glyph. - **0.5.0** — Gemini bulk history sync, host-permission hardening, error surfacing, fingerprint dedup, retry caps, and race fixes. diff --git a/integrations/chrome-capture-extension/background/service-worker.js b/integrations/chrome-capture-extension/background/service-worker.js index ae6db8ac4..77b59531d 100644 --- a/integrations/chrome-capture-extension/background/service-worker.js +++ b/integrations/chrome-capture-extension/background/service-worker.js @@ -449,6 +449,11 @@ async function processCaptureRequest(message) { source_label: capture.sourceLabel, source_type: capture.sourceType, auto_execute: capture.autoExecute, + // Bulk sync captures skip the gateway's per-turn LLM classification + // pass — a 400-turn backfill would otherwise fire 400 classification + // calls. Manual captures (user clicked Capture on one exchange) still + // classify. Gateways that don't support the flag simply ignore it. + skip_classification: capture.captureMode === 'sync', source_metadata: { ...capture.sourceMetadata, extension_capture_mode: capture.captureMode, diff --git a/integrations/chrome-capture-extension/manifest.json b/integrations/chrome-capture-extension/manifest.json index c7cbe5de1..ec420c2e4 100644 --- a/integrations/chrome-capture-extension/manifest.json +++ b/integrations/chrome-capture-extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Open Brain Capture", - "version": "0.6.0", + "version": "0.6.1", "description": "Capture AI conversations from Claude, ChatGPT, and Gemini into your Open Brain via the REST API gateway.", "icons": { "16": "icons/icon16.png", diff --git a/integrations/chrome-capture-extension/metadata.json b/integrations/chrome-capture-extension/metadata.json index a40bbb579..a8782f807 100644 --- a/integrations/chrome-capture-extension/metadata.json +++ b/integrations/chrome-capture-extension/metadata.json @@ -6,7 +6,7 @@ "name": "Alan Shurafa", "github": "alanshurafa" }, - "version": "1.1.1", + "version": "1.1.2", "requires": { "open_brain": true, "services": ["REST API gateway (integrations/open-brain-rest)"], @@ -16,5 +16,5 @@ "difficulty": "intermediate", "estimated_time": "20 minutes", "created": "2026-04-17", - "updated": "2026-06-14" + "updated": "2026-07-14" }