From bd3c8cff3f6e575c7c87801d540ae850d01fb06d Mon Sep 17 00:00:00 2001
From: Bersabel Tadesse
Date: Fri, 14 Aug 2026 22:21:39 -0700
Subject: [PATCH 1/5] Add inspectable Browser context mentions
---
package-lock.json | 6 +-
plugins/browser-context/README.md | 6 +-
plugins/browser-context/app.css | 125 ++-
plugins/browser-context/app.test.tsx | 307 ++++---
plugins/browser-context/app.tsx | 428 +++++++--
plugins/browser-context/docs/screenshot.png | Bin 103884 -> 91272 bytes
plugins/browser-context/package.json | 6 +-
plugins/browser-context/server.test.ts | 391 +++++----
plugins/browser-context/server.ts | 828 ++++++++++--------
.../types/bb-plugin-sdk-app.d.ts | 76 +-
.../browser-context/types/bb-plugin-sdk.d.ts | 17 +-
.../types/bb-plugin-sdk-app.d.ts | 76 +-
.../design-doctrine/types/bb-plugin-sdk.d.ts | 17 +-
.../types/bb-plugin-sdk-app.d.ts | 76 +-
.../improve-prompt/types/bb-plugin-sdk.d.ts | 17 +-
.../vendor/bb-plugin-sdk-0.5.0.tgz | Bin 125081 -> 130913 bytes
.../types/bb-plugin-sdk-app.d.ts | 76 +-
.../types/bb-plugin-sdk.d.ts | 17 +-
.../types/bb-plugin-sdk-app.d.ts | 76 +-
.../thread-organizer/types/bb-plugin-sdk.d.ts | 17 +-
.../types/bb-plugin-sdk-app.d.ts | 76 +-
.../types/bb-plugin-sdk.d.ts | 17 +-
.../vendor/bb-plugin-sdk-0.5.0.tgz | Bin 125081 -> 130913 bytes
tooling/vendor/bb-plugin-sdk-0.5.0.tgz | Bin 125081 -> 130913 bytes
tooling/vendor/sdk-provenance.json | 8 +-
25 files changed, 1852 insertions(+), 811 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 2d7f379..dcb4195 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -113,7 +113,7 @@
"node_modules/@bb/plugin-sdk": {
"version": "0.5.0",
"resolved": "file:tooling/vendor/bb-plugin-sdk-0.5.0.tgz",
- "integrity": "sha512-avMbN5Go1w8QfvSF7/QuexaSXlgYnBzx1B58C/S1F4l07JVqG4BacXY/PaKZzXbA77HQTHNQlEWULHn9JEnYJA==",
+ "integrity": "sha512-TdtL3Szyx8jzGhETJQPd4Wrr0P283OmRHH7eZeaEQl91WVmMqssDAVlu+tsU7yBYCdURAQKORbpmTne/4yN6Mw==",
"dev": true,
"peerDependencies": {
"@testing-library/react": "^16.3.2",
@@ -5153,7 +5153,7 @@
"plugins/improve-prompt/node_modules/@bb/plugin-sdk": {
"version": "0.5.0",
"resolved": "file:plugins/improve-prompt/vendor/bb-plugin-sdk-0.5.0.tgz",
- "integrity": "sha512-avMbN5Go1w8QfvSF7/QuexaSXlgYnBzx1B58C/S1F4l07JVqG4BacXY/PaKZzXbA77HQTHNQlEWULHn9JEnYJA==",
+ "integrity": "sha512-TdtL3Szyx8jzGhETJQPd4Wrr0P283OmRHH7eZeaEQl91WVmMqssDAVlu+tsU7yBYCdURAQKORbpmTne/4yN6Mw==",
"dev": true,
"peerDependencies": {
"@testing-library/react": "^16.3.2",
@@ -5275,7 +5275,7 @@
"plugins/timeline-comments/node_modules/@bb/plugin-sdk": {
"version": "0.5.0",
"resolved": "file:plugins/timeline-comments/vendor/bb-plugin-sdk-0.5.0.tgz",
- "integrity": "sha512-avMbN5Go1w8QfvSF7/QuexaSXlgYnBzx1B58C/S1F4l07JVqG4BacXY/PaKZzXbA77HQTHNQlEWULHn9JEnYJA==",
+ "integrity": "sha512-TdtL3Szyx8jzGhETJQPd4Wrr0P283OmRHH7eZeaEQl91WVmMqssDAVlu+tsU7yBYCdURAQKORbpmTne/4yN6Mw==",
"dev": true,
"peerDependencies": {
"@testing-library/react": "^16.3.2",
diff --git a/plugins/browser-context/README.md b/plugins/browser-context/README.md
index efeffe8..3f84a63 100644
--- a/plugins/browser-context/README.md
+++ b/plugins/browser-context/README.md
@@ -1,8 +1,8 @@
# Browser Context
-Select an element or drag over a region in BB's Browser, annotate the captured preview, then add it to the current thread composer.
+Select elements or drag over regions in BB's Browser, annotate the numbered captures, then add the batch to the current thread composer.
-
+
## Install
@@ -12,7 +12,7 @@ bb plugin install git:https://github.com/brsbl/bb-plugins.git@plugin/browser-con
## Use
-Open a Browser tab and click the Browser Context action to enter selection mode. Click an element or drag over a region, then add an optional comment. Choose **Add to prompt** to preserve the existing draft, attach the screenshot, and append the comment followed by a compact quoted summary of the page, target, DOM, relevant styles, and available framework or accessibility hints. The user request stays primary while supporting context can collapse naturally, and the standard Send or Queue flow remains in control.
+Open a Browser tab and click the Browser Context action to enter selection mode. Click an element or drag over a region, add an optional comment, and use **Select another** to build a numbered batch. Hover or focus a staged row to return its target to the live preview, edit any comment in place, or remove one selection without affecting the rest. Choose **Add to prompt** once to preserve the existing draft and append one inspectable mention pill followed by its ordinary editable comment for every selection. Activate a pill to reopen its capture preview and exact metadata. Screenshots remain preview-only and are never sent; immutable DOM, React, accessibility, and geometry metadata resolves into hidden agent context at send time. The standard Send or Queue flow remains in control.
## Develop
diff --git a/plugins/browser-context/app.css b/plugins/browser-context/app.css
index f6b9886..4db54ae 100644
--- a/plugins/browser-context/app.css
+++ b/plugins/browser-context/app.css
@@ -106,15 +106,23 @@
0 3px 12px rgb(16 24 40 / 24%);
cursor: help;
outline: none;
+ opacity: 0.68;
+ transition:
+ background-color 120ms ease,
+ border-color 120ms ease,
+ box-shadow 120ms ease,
+ opacity 120ms ease;
}
.bb-browser-context-target:hover,
- .bb-browser-context-target:focus-visible {
+ .bb-browser-context-target:focus-visible,
+ .bb-browser-context-target[data-active="true"] {
border-color: #1747c8;
background: rgb(56 103 232 / 23%);
box-shadow:
0 0 0 2px rgb(255 255 255 / 92%),
0 4px 16px rgb(16 24 40 / 30%);
+ opacity: 1;
}
.bb-browser-context-target-badge,
@@ -282,6 +290,103 @@
outline: none;
}
+ .bb-browser-context-selection-list {
+ display: grid;
+ max-height: 148px;
+ gap: 3px;
+ overflow-y: auto;
+ margin: 0;
+ padding: 2px 0;
+ list-style: none;
+ }
+
+ .bb-browser-context-selection-list li {
+ display: flex;
+ min-width: 0;
+ align-items: center;
+ border-radius: 7px;
+ }
+
+ .bb-browser-context-selection-list li[data-active="true"] {
+ background: var(--state-hover, rgb(0 0 0 / 6%));
+ }
+
+ .bb-browser-context-selection-row {
+ display: flex;
+ min-width: 0;
+ flex: 1;
+ align-items: center;
+ gap: 7px;
+ padding: 5px 4px 5px 6px;
+ border: 0;
+ background: transparent;
+ color: var(--foreground, #101828);
+ cursor: pointer;
+ text-align: left;
+ }
+
+ .bb-browser-context-selection-row > span:last-child {
+ display: grid;
+ min-width: 0;
+ }
+
+ .bb-browser-context-selection-row strong,
+ .bb-browser-context-selection-row small {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .bb-browser-context-selection-row strong {
+ font-size: 11px;
+ font-weight: 650;
+ }
+
+ .bb-browser-context-selection-row small {
+ color: var(--muted-foreground, #667085);
+ font-size: 10px;
+ }
+
+ .bb-browser-context-selection-row:focus-visible,
+ .bb-browser-context-remove:focus-visible {
+ outline: 2px solid var(--ring, #4c76e8);
+ outline-offset: -1px;
+ }
+
+ .bb-browser-context-remove {
+ display: inline-flex;
+ width: 25px;
+ height: 25px;
+ flex: none;
+ align-items: center;
+ justify-content: center;
+ margin-right: 2px;
+ border: 0;
+ border-radius: 6px;
+ background: transparent;
+ color: var(--muted-foreground, #667085);
+ cursor: pointer;
+ }
+
+ .bb-browser-context-remove:hover:not(:disabled) {
+ background: color-mix(
+ in srgb,
+ var(--destructive, #b42318) 10%,
+ transparent
+ );
+ color: var(--destructive, #b42318);
+ }
+
+ .bb-browser-context-remove:disabled {
+ cursor: wait;
+ opacity: 0.5;
+ }
+
+ .bb-browser-context-remove svg {
+ width: 13px;
+ height: 13px;
+ }
+
.bb-browser-context-comment-card textarea:focus-visible {
border-color: var(--ring, #4c76e8);
box-shadow: 0 0 0 2px
@@ -299,12 +404,17 @@
.bb-browser-context-review-actions {
display: flex;
- justify-content: flex-end;
+ align-items: center;
+ justify-content: space-between;
gap: 6px;
margin-top: 2px;
}
.bb-browser-context-review-actions button {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ gap: 5px;
height: 30px;
padding: 0 10px;
border: 1px solid var(--border, #d0d5dd);
@@ -318,6 +428,17 @@
sans-serif;
}
+ .bb-browser-context-review-actions button svg {
+ width: 13px;
+ height: 13px;
+ }
+
+ .bb-browser-context-review-actions .bb-browser-context-secondary {
+ border-color: transparent;
+ background: transparent;
+ color: var(--muted-foreground, #667085);
+ }
+
.bb-browser-context-review-actions button:hover:not(:disabled) {
background: var(--state-hover, #f2f4f7);
}
diff --git a/plugins/browser-context/app.test.tsx b/plugins/browser-context/app.test.tsx
index a627884..9bebd36 100644
--- a/plugins/browser-context/app.test.tsx
+++ b/plugins/browser-context/app.test.tsx
@@ -54,40 +54,63 @@ const capture: ExperimentalBrowserInspectionResult = {
const regionCapture: ExperimentalBrowserInspectionResult = {
...capture,
kind: "region",
+ rect: { x: 280, y: 160, width: 360, height: 220 },
element: null,
region: {
- elements: [
+ commonAncestor: {
+ kind: "element",
+ absoluteLocator: { selectors: ["main > section.settings"] },
+ },
+ targets: [
{
- selector: "main > section",
- tag: "section",
- id: null,
- classNames: ["settings"],
- text: "Settings",
- rect: { x: 20, y: 30, width: 420, height: 260 },
+ absoluteLocator: {
+ selectors: ["main > section.settings > button#save"],
+ },
+ relativeLocator: { selectors: [":scope > button#save"] },
+ text: "Save",
+ rect: { x: 300, y: 180, width: 180, height: 36 },
+ accessibility: {
+ source: "dom-hint",
+ roleHint: "button",
+ nameHint: "Save",
+ attributes: {},
+ },
},
],
+ groups: [],
+ omittedTargetCount: 0,
+ omittedGroupCount: 0,
},
};
-function preparedCapture(comment: string) {
+function preparedBatch(count: number) {
return {
- promptText: [
- comment,
- "",
- '> Browser context ·
+ {annotations.length > 1 ? (
+
+ {annotations.map((annotation, index) => {
+ const label = captureTargetLabel(annotation.capture);
+ const selected = annotation.id === active.id;
+ return (
+ -
+ onSelect(annotation.id)}
+ onMouseEnter={() => onSelect(annotation.id)}
+ onFocus={() => onSelect(annotation.id)}
+ >
+
+ {index + 1}
+
+
+ {label}
+
+ {annotation.comment.trim() || "No comment yet"}
+
+
+
+ onRemove(annotation.id)}
+ >
+
+
+
+ );
+ })}
+
+ ) : null}
) : null}
+
+
+ Select another
+
();
const composer = useComposer();
- const addAttachment = composer.experimental_addAttachment;
- const [capture, setCapture] =
- useState(null);
- const [comment, setComment] = useState("");
+ const [annotations, setAnnotations] = useState([]);
+ const [activeId, setActiveId] = useState(null);
const [operation, setOperation] = useState<"selecting" | "staging" | null>(
null,
);
const [error, setError] = useState(null);
const operationRef = useRef(null);
+ const annotationsRef = useRef([]);
+ const nextIdRef = useRef(1);
+
+ useEffect(() => {
+ annotationsRef.current = annotations;
+ }, [annotations]);
const overlayRoot = props.experimental_overlayRoot ?? null;
const hasThread = props.threadId !== null && props.projectId !== null;
const supported =
- props.experimental_inspectionAvailable &&
- addAttachment !== undefined &&
- overlayRoot !== null;
+ props.experimental_inspectionAvailable && overlayRoot !== null;
const canStart = supported && hasThread && props.url.length > 0;
const disabledReason = !supported
? "Browser annotations require a newer BB desktop app."
@@ -338,8 +535,9 @@ function BrowserContextAction(props: PluginBrowserActionProps) {
operationRef.current?.abort();
operationRef.current = null;
setOperation(null);
- setCapture(null);
- setComment("");
+ annotationsRef.current = [];
+ setAnnotations([]);
+ setActiveId(null);
setError(null);
props.experimental_setOverlayOpen(false);
};
@@ -356,8 +554,9 @@ function BrowserContextAction(props: PluginBrowserActionProps) {
operationRef.current?.abort();
operationRef.current = null;
setOperation(null);
- setCapture(null);
- setComment("");
+ annotationsRef.current = [];
+ setAnnotations([]);
+ setActiveId(null);
props.experimental_setOverlayOpen(false);
}, [props.projectId, props.tabId, props.threadId]);
@@ -367,8 +566,6 @@ function BrowserContextAction(props: PluginBrowserActionProps) {
operationRef.current?.abort();
operationRef.current = controller;
setOperation("selecting");
- setCapture(null);
- setComment("");
setError(null);
props.experimental_setOverlayOpen(false);
try {
@@ -376,11 +573,31 @@ function BrowserContextAction(props: PluginBrowserActionProps) {
{ kind: "auto" },
{ signal: controller.signal },
);
- if (controller.signal.aborted || result === null) return;
+ if (controller.signal.aborted || result === null) {
+ if (annotationsRef.current.length > 0) {
+ props.experimental_setOverlayOpen(true);
+ }
+ return;
+ }
+ const annotation: PendingAnnotation = {
+ id: nextIdRef.current++,
+ capture: result,
+ comment: "",
+ };
+ setAnnotations((current) => {
+ const next = [...current, annotation];
+ annotationsRef.current = next;
+ return next;
+ });
+ setActiveId(annotation.id);
props.experimental_setOverlayOpen(true);
- setCapture(result);
} catch (selectionError) {
- if (!controller.signal.aborted) setError(errorMessage(selectionError));
+ if (!controller.signal.aborted) {
+ setError(errorMessage(selectionError));
+ if (annotationsRef.current.length > 0) {
+ props.experimental_setOverlayOpen(true);
+ }
+ }
} finally {
if (operationRef.current === controller) {
operationRef.current = null;
@@ -390,10 +607,9 @@ function BrowserContextAction(props: PluginBrowserActionProps) {
};
const addToPrompt = async () => {
- const stageAttachment = addAttachment;
+ const pending = annotationsRef.current;
if (
- capture === null ||
- stageAttachment === undefined ||
+ pending.length === 0 ||
props.threadId === null ||
props.projectId === null
) {
@@ -405,26 +621,35 @@ function BrowserContextAction(props: PluginBrowserActionProps) {
setOperation("staging");
setError(null);
try {
- const prepared = await rpc.call("prepareCapture", {
+ const prepared = await rpc.call("createCaptureMentions", {
threadId: props.threadId,
projectId: props.projectId,
- comment,
- capture: cloneCapture(capture),
+ annotations: pending.map((annotation) => ({
+ comment: annotation.comment,
+ capture: cloneCapture(annotation.capture),
+ })),
});
if (controller.signal.aborted) return;
- for (const attachment of prepared.attachments) {
- stageAttachment(attachment);
- }
composer.updateText((current) => {
- const prefix = current.trimEnd();
- return prefix.length === 0
- ? prepared.promptText
- : `${prefix}\n\n${prepared.promptText}`;
+ if (current.length === 0 || current.endsWith("\n\n")) return current;
+ return current.endsWith("\n") ? `${current}\n` : `${current}\n\n`;
+ });
+ prepared.mentions.forEach((mention, index) => {
+ composer.insertMention({
+ provider: "captures",
+ id: mention.id,
+ label: mention.label,
+ preview: mention.preview,
+ experimental_inspectable: true,
+ });
+ const comment = pending[index]?.comment.trim() ?? "";
+ composer.updateText(
+ (current) =>
+ `${current}${comment}${index === prepared.mentions.length - 1 ? "" : "\n"}`,
+ );
});
composer.focus();
- setCapture(null);
- setComment("");
- props.experimental_setOverlayOpen(false);
+ closeReview();
} catch (stageError) {
if (!controller.signal.aborted) setError(errorMessage(stageError));
} finally {
@@ -436,17 +661,44 @@ function BrowserContextAction(props: PluginBrowserActionProps) {
};
const cancelSelection = () => {
- if (capture !== null) {
+ if (annotationsRef.current.length > 0 && operation !== "selecting") {
closeReview();
return;
}
operationRef.current?.abort();
operationRef.current = null;
setOperation(null);
+ if (annotationsRef.current.length > 0) {
+ props.experimental_setOverlayOpen(true);
+ }
+ };
+
+ const updateComment = (id: number, comment: string) => {
+ setAnnotations((current) => {
+ const next = current.map((annotation) =>
+ annotation.id === id ? { ...annotation, comment } : annotation,
+ );
+ annotationsRef.current = next;
+ return next;
+ });
+ };
+
+ const removeAnnotation = (id: number) => {
+ setAnnotations((current) => {
+ const index = current.findIndex((annotation) => annotation.id === id);
+ const next = current.filter((annotation) => annotation.id !== id);
+ annotationsRef.current = next;
+ if (next.length === 0) {
+ queueMicrotask(closeReview);
+ } else if (id === activeId) {
+ setActiveId(next[Math.min(index, next.length - 1)]!.id);
+ }
+ return next;
+ });
};
const label =
- capture !== null
+ annotations.length > 0 && operation !== "selecting"
? "Close page context preview"
: operation === "selecting"
? "Cancel page selection"
@@ -457,42 +709,50 @@ function BrowserContextAction(props: PluginBrowserActionProps) {
type="button"
className="bb-browser-context-action"
aria-label={label}
- aria-pressed={capture !== null || operation === "selecting"}
- disabled={!canStart && capture === null && operation !== "selecting"}
+ aria-pressed={annotations.length > 0 || operation === "selecting"}
+ disabled={
+ !canStart && annotations.length === 0 && operation !== "selecting"
+ }
title={disabledReason ?? label}
onClick={() => {
- if (capture !== null || operation === "selecting") {
+ if (annotations.length > 0 || operation === "selecting") {
cancelSelection();
return;
}
void startSelection();
}}
>
- {capture !== null || operation === "selecting" ? (
+ {annotations.length > 0 || operation === "selecting" ? (
) : (
)}
- {capture !== null && overlayRoot !== null
+ {annotations.length > 0 &&
+ activeId !== null &&
+ operation !== "selecting" &&
+ overlayRoot !== null
? createPortal(
void addToPrompt()}
onCancel={closeReview}
- onCommentChange={setComment}
+ onCommentChange={updateComment}
+ onRemove={removeAnnotation}
+ onSelect={setActiveId}
+ onSelectAnother={() => void startSelection()}
/>
,
overlayRoot,
)
: null}
- {error !== null && capture === null
+ {error !== null && annotations.length === 0
? createPortal(
diff --git a/plugins/browser-context/docs/screenshot.png b/plugins/browser-context/docs/screenshot.png
index 99d895fec4fe3ec5c494740931756c6a7d6383f2..b04bc8ffa530deebadefa673daa60b468b746423 100644
GIT binary patch
literal 91272
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