Skip to content

Commit 8cc75a4

Browse files
authored
Merge pull request #153 from SentienceAPI/sync-extension-v2.8.3
Sync Extension: v2.8.3
2 parents a649832 + 1fadc99 commit 8cc75a4

File tree

4 files changed

+125
-79
lines changed

4 files changed

+125
-79
lines changed

src/extension/background.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import init, { analyze_page_with_options, analyze_page, prune_for_api } from "../pkg/sentience_core.js";
1+
import init, { analyze_page_with_options, analyze_page, prune_for_api } from "./pkg/sentience_core.js";
22

33
let wasmReady = !1, wasmInitPromise = null;
44

src/extension/injected_api.js

Lines changed: 77 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -792,38 +792,84 @@
792792
}
793793
});
794794
} catch (error) {}
795-
const processed = await function(rawData, options) {
796-
return new Promise((resolve, reject) => {
797-
const requestId = Math.random().toString(36).substring(7);
798-
let resolved = !1;
799-
const timeout = setTimeout(() => {
800-
resolved || (resolved = !0, window.removeEventListener("message", listener), reject(new Error("WASM processing timeout - extension may be unresponsive. Try reloading the extension.")));
801-
}, 25e3), listener = e => {
802-
if ("SENTIENCE_SNAPSHOT_RESULT" === e.data.type && e.data.requestId === requestId) {
803-
if (resolved) return;
804-
resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener),
805-
e.data.error ? reject(new Error(e.data.error)) : resolve({
806-
elements: e.data.elements,
807-
raw_elements: e.data.raw_elements,
808-
duration: e.data.duration
809-
});
795+
const fallbackElementsFromRaw = raw => (raw || []).map(r => {
796+
const rect = r && r.rect || {
797+
x: 0,
798+
y: 0,
799+
width: 0,
800+
height: 0
801+
}, attrs = r && r.attributes || {}, role = attrs.role || r && (r.inferred_role || r.inferredRole) || (r && "a" === r.tag ? "link" : "generic"), href = attrs.href || r && r.href || null, isClickable = "link" === role || "button" === role || "textbox" === role || "checkbox" === role || "radio" === role || "combobox" === role || !!href;
802+
return {
803+
id: Number(r && r.id || 0),
804+
role: String(role || "generic"),
805+
text: r && (r.text || r.semantic_text || r.semanticText) || null,
806+
importance: 1,
807+
bbox: {
808+
x: Number(rect.x || 0),
809+
y: Number(rect.y || 0),
810+
width: Number(rect.width || 0),
811+
height: Number(rect.height || 0)
812+
},
813+
visual_cues: {
814+
is_primary: !1,
815+
is_clickable: !!isClickable
816+
},
817+
in_viewport: !0,
818+
is_occluded: !(!r || !r.occluded && !r.is_occluded),
819+
z_index: 0,
820+
name: attrs.aria_label || attrs.ariaLabel || null,
821+
value: r && r.value || null,
822+
input_type: attrs.type_ || attrs.type || null,
823+
checked: "boolean" == typeof (r && r.checked) ? r.checked : null,
824+
disabled: "boolean" == typeof (r && r.disabled) ? r.disabled : null,
825+
expanded: "boolean" == typeof (r && r.expanded) ? r.expanded : null
826+
};
827+
});
828+
let processed = null;
829+
try {
830+
processed = await function(rawData, options) {
831+
return new Promise((resolve, reject) => {
832+
const requestId = Math.random().toString(36).substring(7);
833+
let resolved = !1;
834+
const timeout = setTimeout(() => {
835+
resolved || (resolved = !0, window.removeEventListener("message", listener), reject(new Error("WASM processing timeout - extension may be unresponsive. Try reloading the extension.")));
836+
}, 25e3), listener = e => {
837+
if ("SENTIENCE_SNAPSHOT_RESULT" === e.data.type && e.data.requestId === requestId) {
838+
if (resolved) return;
839+
resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener),
840+
e.data.error ? reject(new Error(e.data.error)) : resolve({
841+
elements: e.data.elements,
842+
raw_elements: e.data.raw_elements,
843+
duration: e.data.duration
844+
});
845+
}
846+
};
847+
window.addEventListener("message", listener);
848+
try {
849+
window.postMessage({
850+
type: "SENTIENCE_SNAPSHOT_REQUEST",
851+
requestId: requestId,
852+
rawData: rawData,
853+
options: options
854+
}, "*");
855+
} catch (error) {
856+
resolved || (resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener),
857+
reject(new Error(`Failed to send snapshot request: ${error.message}`)));
810858
}
811-
};
812-
window.addEventListener("message", listener);
813-
try {
814-
window.postMessage({
815-
type: "SENTIENCE_SNAPSHOT_REQUEST",
816-
requestId: requestId,
817-
rawData: rawData,
818-
options: options
819-
}, "*");
820-
} catch (error) {
821-
resolved || (resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener),
822-
reject(new Error(`Failed to send snapshot request: ${error.message}`)));
823-
}
824-
});
825-
}(allRawElements, options);
826-
if (!processed || !processed.elements) throw new Error("WASM processing returned invalid result");
859+
});
860+
}(allRawElements, options);
861+
} catch (error) {
862+
processed = {
863+
elements: fallbackElementsFromRaw(allRawElements),
864+
raw_elements: allRawElements,
865+
duration: null
866+
};
867+
}
868+
processed && processed.elements || (processed = {
869+
elements: fallbackElementsFromRaw(allRawElements),
870+
raw_elements: allRawElements,
871+
duration: null
872+
});
827873
let screenshot = null;
828874
options.screenshot && (screenshot = await function(options) {
829875
return new Promise(resolve => {

src/extension/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"manifest_version": 3,
33
"name": "Sentience Semantic Visual Grounding Extractor",
4-
"version": "2.8.1",
4+
"version": "2.8.3",
55
"description": "Extract semantic visual grounding data from web pages",
66
"permissions": ["activeTab", "scripting"],
77
"host_permissions": ["<all_urls>"],

src/extension/release.json

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
11
{
2-
"url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279238797",
3-
"assets_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279238797/assets",
4-
"upload_url": "https://uploads.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279238797/assets{?name,label}",
5-
"html_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/tag/v2.8.1",
6-
"id": 279238797,
2+
"url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279250819",
3+
"assets_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279250819/assets",
4+
"upload_url": "https://uploads.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279250819/assets{?name,label}",
5+
"html_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/tag/v2.8.3",
6+
"id": 279250819,
77
"author": {
8-
"login": "rcholic",
9-
"id": 135060,
10-
"node_id": "MDQ6VXNlcjEzNTA2MA==",
11-
"avatar_url": "https://avatars.githubusercontent.com/u/135060?v=4",
8+
"login": "github-actions[bot]",
9+
"id": 41898282,
10+
"node_id": "MDM6Qm90NDE4OTgyODI=",
11+
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
1212
"gravatar_id": "",
13-
"url": "https://api.github.com/users/rcholic",
14-
"html_url": "https://github.com/rcholic",
15-
"followers_url": "https://api.github.com/users/rcholic/followers",
16-
"following_url": "https://api.github.com/users/rcholic/following{/other_user}",
17-
"gists_url": "https://api.github.com/users/rcholic/gists{/gist_id}",
18-
"starred_url": "https://api.github.com/users/rcholic/starred{/owner}{/repo}",
19-
"subscriptions_url": "https://api.github.com/users/rcholic/subscriptions",
20-
"organizations_url": "https://api.github.com/users/rcholic/orgs",
21-
"repos_url": "https://api.github.com/users/rcholic/repos",
22-
"events_url": "https://api.github.com/users/rcholic/events{/privacy}",
23-
"received_events_url": "https://api.github.com/users/rcholic/received_events",
24-
"type": "User",
13+
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
14+
"html_url": "https://github.com/apps/github-actions",
15+
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
16+
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
17+
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
18+
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
19+
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
20+
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
21+
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
22+
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
23+
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
24+
"type": "Bot",
2525
"user_view_type": "public",
2626
"site_admin": false
2727
},
28-
"node_id": "RE_kwDOQshiJ84QpNiN",
29-
"tag_name": "v2.8.1",
28+
"node_id": "RE_kwDOQshiJ84QpQeD",
29+
"tag_name": "v2.8.3",
3030
"target_commitish": "main",
31-
"name": "Release v2.8.1",
31+
"name": "Release v2.8.3",
3232
"draft": false,
3333
"immutable": false,
3434
"prerelease": false,
35-
"created_at": "2026-01-23T04:58:13Z",
36-
"updated_at": "2026-01-23T05:00:02Z",
37-
"published_at": "2026-01-23T04:58:45Z",
35+
"created_at": "2026-01-23T06:12:02Z",
36+
"updated_at": "2026-01-23T06:14:22Z",
37+
"published_at": "2026-01-23T06:13:11Z",
3838
"assets": [
3939
{
40-
"url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/344633711",
41-
"id": 344633711,
42-
"node_id": "RA_kwDOQshiJ84UirFv",
40+
"url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/344654926",
41+
"id": 344654926,
42+
"node_id": "RA_kwDOQshiJ84UiwRO",
4343
"name": "extension-files.tar.gz",
4444
"label": "",
4545
"uploader": {
@@ -65,17 +65,17 @@
6565
},
6666
"content_type": "application/gzip",
6767
"state": "uploaded",
68-
"size": 78755,
69-
"digest": "sha256:436c0c5b8bbe34988b2dd43fccc0d8b0675f1d1d6f1a5164e30740b5bdccaf21",
68+
"size": 79317,
69+
"digest": "sha256:0d8979ec6c3cde0fb679501f89e5fdb0db8d547661b1da7d6299f28262ad1fc4",
7070
"download_count": 0,
71-
"created_at": "2026-01-23T05:00:02Z",
72-
"updated_at": "2026-01-23T05:00:02Z",
73-
"browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.8.1/extension-files.tar.gz"
71+
"created_at": "2026-01-23T06:13:12Z",
72+
"updated_at": "2026-01-23T06:13:12Z",
73+
"browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.8.3/extension-files.tar.gz"
7474
},
7575
{
76-
"url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/344633712",
77-
"id": 344633712,
78-
"node_id": "RA_kwDOQshiJ84UirFw",
76+
"url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/344654925",
77+
"id": 344654925,
78+
"node_id": "RA_kwDOQshiJ84UiwRN",
7979
"name": "extension-package.zip",
8080
"label": "",
8181
"uploader": {
@@ -101,15 +101,15 @@
101101
},
102102
"content_type": "application/zip",
103103
"state": "uploaded",
104-
"size": 80234,
105-
"digest": "sha256:238136c6dee79502b6fa71980af14bb9f4552b63d836de61867051a0e75b797b",
104+
"size": 80784,
105+
"digest": "sha256:cc80691d6efc868a9d4009fe1b8bdb94f33017666a7d2db429a1f4aaee978616",
106106
"download_count": 0,
107-
"created_at": "2026-01-23T05:00:02Z",
108-
"updated_at": "2026-01-23T05:00:02Z",
109-
"browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.8.1/extension-package.zip"
107+
"created_at": "2026-01-23T06:13:12Z",
108+
"updated_at": "2026-01-23T06:13:12Z",
109+
"browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.8.3/extension-package.zip"
110110
}
111111
],
112-
"tarball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/tarball/v2.8.1",
113-
"zipball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/zipball/v2.8.1",
114-
"body": ""
112+
"tarball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/tarball/v2.8.3",
113+
"zipball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/zipball/v2.8.3",
114+
"body": "**Full Changelog**: https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/compare/v2.8.2...v2.8.3"
115115
}

0 commit comments

Comments
 (0)