Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "webbrain",
"version": "33.1.4",
"version": "33.1.5",
"description": "Open-source AI browser agent \u2014 chat with pages, automate tasks, multi-provider LLM support.",
"private": true,
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion src/chrome/ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# WebBrain Chrome/Edge Extension — Architecture

> Version 33.1.4 · Manifest V3 · Service Worker background
> Version 33.1.5 · Manifest V3 · Service Worker background

## High-Level Overview

Expand Down
2 changes: 1 addition & 1 deletion src/chrome/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "WebBrain",
"version": "33.1.4",
"version": "33.1.5",
"description": "Open-source AI browser agent — chat with pages, automate tasks, multi-provider LLM support.",
"permissions": [
"sidePanel",
Expand Down
2 changes: 1 addition & 1 deletion src/chrome/src/ui/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ const VISION_UI_PROVIDER_IDS = new Set(['ollama', ...AUTO_VISION_PROVIDER_IDS]);

// Version shown in the subtitle. Kept here so it only needs one update per
// release; the subtitle string itself is translated.
const EXT_VERSION = '33.1.4';
const EXT_VERSION = '33.1.5';

const providersContainer = document.getElementById('providers');
const displaySettings = document.getElementById('display-settings');
Expand Down
2 changes: 1 addition & 1 deletion src/firefox/ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# WebBrain Firefox Extension — Architecture

> Version 33.1.4 · Manifest V2 · Background Page
> Version 33.1.5 · Manifest V2 · Background Page

## How Firefox Differs from Chrome

Expand Down
2 changes: 1 addition & 1 deletion src/firefox/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "WebBrain",
"version": "33.1.4",
"version": "33.1.5",
"description": "Open-source AI browser agent — chat with pages, automate tasks, multi-provider LLM support.",
"permissions": [
"activeTab",
Expand Down
2 changes: 1 addition & 1 deletion src/firefox/src/ui/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ const VISION_UI_PROVIDER_IDS = new Set(['ollama', ...AUTO_VISION_PROVIDER_IDS]);

// Version shown in the subtitle. Kept here so it only needs one update per
// release; the subtitle string itself is translated.
const EXT_VERSION = '33.1.4';
const EXT_VERSION = '33.1.5';

const providersContainer = document.getElementById('providers');
const displaySettings = document.getElementById('display-settings');
Expand Down
28 changes: 28 additions & 0 deletions test/run.js
Original file line number Diff line number Diff line change
Expand Up @@ -34037,7 +34037,35 @@ test('web hero social proof uses recognizable brand and users icons', () => {
/hero-proof-featured[\s\S]*?<polyline points="8\.5 12\.2 11 14\.7 15\.5 9\.5"/,
`${label}: generic featured checkmark should not remain`,
);

const productHuntIndex = html.indexOf('href="https://www.producthunt.com/products/webbrain"');
const markTechPostIndex = html.indexOf('href="https://www.marktechpost.com/2026/07/02/meet-webbrain-an-open-source-local-first-ai-browser-agent-that-reads-pages-and-automates-tasks-in-chrome-and-firefox/"');
const usersIndex = html.indexOf('class="hero-proof-cell hero-proof-users"');
assert.ok(
productHuntIndex >= 0 && markTechPostIndex > productHuntIndex && usersIndex > markTechPostIndex,
`${label}: MarkTechPost article should be the third proof, immediately after Product Hunt`,
);
assert.match(
html,
/hero-proof-press[\s\S]*?<img class="hero-proof-icon" src="\/assets\/marktechpost\.svg" alt="" aria-hidden="true"/,
`${label}: MarkTechPost proof should use its bundled favicon`,
);
}

assert.match(
template,
/\.hero-proof \{[\s\S]*?max-width: 900px;/,
'web: four social-proof items should keep enough room to share one desktop line',
);
assert.ok(
fs.existsSync(path.join(ROOT, 'web/assets/marktechpost.svg')),
'web assets: MarkTechPost favicon should be bundled locally',
);
assert.match(
fs.readFileSync(path.join(ROOT, 'web/assets/marktechpost.svg'), 'utf8'),
/<svg[^>]+width="32" height="32" viewBox="0 0 32 32"/,
'web assets: MarkTechPost favicon should preserve its square aspect ratio',
);
});

test('webbrain.one homepage showcases a localized Apocalypse Mode readiness stack', () => {
Expand Down
14 changes: 13 additions & 1 deletion web/ar/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -567,13 +567,14 @@
.hero-proof {
--marker-featured: linear-gradient(100deg, rgba(116,91,255,0.22), rgba(221,120,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,159,67,0.22), rgba(255,196,91,0.38));
--marker-press: linear-gradient(100deg, rgba(99,102,241,0.18), rgba(56,189,248,0.28));
--marker-users: linear-gradient(100deg, rgba(116,91,255,0.16), rgba(104,211,178,0.28));
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 8px 12px;
max-width: 700px;
max-width: 900px;
margin: 22px auto 0;
font-size: 13px;
line-height: 1.5;
Expand All @@ -584,6 +585,7 @@
:root[data-theme="light"] .hero-proof {
--marker-featured: linear-gradient(100deg, rgba(108,99,255,0.26), rgba(217,112,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,138,30,0.30), rgba(255,183,60,0.42));
--marker-press: linear-gradient(100deg, rgba(91,82,232,0.20), rgba(14,165,233,0.25));
--marker-users: linear-gradient(100deg, rgba(108,99,255,0.20), rgba(45,136,102,0.26));
}
.hero-proof-cell {
Expand Down Expand Up @@ -631,6 +633,10 @@
background: var(--marker-hunt);
transform: rotate(1deg) skewX(-8deg);
}
.hero-proof-press::before {
background: var(--marker-press);
transform: rotate(-0.5deg) skewX(-7deg);
}
.hero-proof-users {
z-index: 0;
gap: 6px;
Expand Down Expand Up @@ -3186,6 +3192,12 @@ <h1><span class="gradient">وكيل تصفّح ذكي</span> مفتوح المص
Product Hunt
</span>
</a>
<a class="hero-proof-cell" href="https://www.marktechpost.com/2026/07/02/meet-webbrain-an-open-source-local-first-ai-browser-agent-that-reads-pages-and-automates-tasks-in-chrome-and-firefox/" target="_blank" rel="noopener noreferrer">
<span class="hero-proof-label hero-proof-press">
<img class="hero-proof-icon" src="/assets/marktechpost.svg" alt="" aria-hidden="true" width="15" height="15" decoding="async" draggable="false">
MarkTechPost
</span>
</a>
<span class="hero-proof-cell hero-proof-users">
<svg class="hero-proof-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
آلاف المستخدمين عبر متصفحات متعددة
Expand Down
3 changes: 3 additions & 0 deletions web/assets/marktechpost.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 13 additions & 1 deletion web/bn/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -567,13 +567,14 @@
.hero-proof {
--marker-featured: linear-gradient(100deg, rgba(116,91,255,0.22), rgba(221,120,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,159,67,0.22), rgba(255,196,91,0.38));
--marker-press: linear-gradient(100deg, rgba(99,102,241,0.18), rgba(56,189,248,0.28));
--marker-users: linear-gradient(100deg, rgba(116,91,255,0.16), rgba(104,211,178,0.28));
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 8px 12px;
max-width: 700px;
max-width: 900px;
margin: 22px auto 0;
font-size: 13px;
line-height: 1.5;
Expand All @@ -584,6 +585,7 @@
:root[data-theme="light"] .hero-proof {
--marker-featured: linear-gradient(100deg, rgba(108,99,255,0.26), rgba(217,112,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,138,30,0.30), rgba(255,183,60,0.42));
--marker-press: linear-gradient(100deg, rgba(91,82,232,0.20), rgba(14,165,233,0.25));
--marker-users: linear-gradient(100deg, rgba(108,99,255,0.20), rgba(45,136,102,0.26));
}
.hero-proof-cell {
Expand Down Expand Up @@ -631,6 +633,10 @@
background: var(--marker-hunt);
transform: rotate(1deg) skewX(-8deg);
}
.hero-proof-press::before {
background: var(--marker-press);
transform: rotate(-0.5deg) skewX(-7deg);
}
.hero-proof-users {
z-index: 0;
gap: 6px;
Expand Down Expand Up @@ -3186,6 +3192,12 @@ <h1>ওপেন সোর্স এআই <span class="gradient">ব্রা
Product Hunt
</span>
</a>
<a class="hero-proof-cell" href="https://www.marktechpost.com/2026/07/02/meet-webbrain-an-open-source-local-first-ai-browser-agent-that-reads-pages-and-automates-tasks-in-chrome-and-firefox/" target="_blank" rel="noopener noreferrer">
<span class="hero-proof-label hero-proof-press">
<img class="hero-proof-icon" src="/assets/marktechpost.svg" alt="" aria-hidden="true" width="15" height="15" decoding="async" draggable="false">
MarkTechPost
</span>
</a>
<span class="hero-proof-cell hero-proof-users">
<svg class="hero-proof-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
একাধিক ব্রাউজারে হাজার হাজার ব্যবহারকারী
Expand Down
14 changes: 13 additions & 1 deletion web/build/template.html
Original file line number Diff line number Diff line change
Expand Up @@ -520,13 +520,14 @@
.hero-proof {
--marker-featured: linear-gradient(100deg, rgba(116,91,255,0.22), rgba(221,120,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,159,67,0.22), rgba(255,196,91,0.38));
--marker-press: linear-gradient(100deg, rgba(99,102,241,0.18), rgba(56,189,248,0.28));
--marker-users: linear-gradient(100deg, rgba(116,91,255,0.16), rgba(104,211,178,0.28));
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 8px 12px;
max-width: 700px;
max-width: 900px;
margin: 22px auto 0;
font-size: 13px;
line-height: 1.5;
Expand All @@ -537,6 +538,7 @@
:root[data-theme="light"] .hero-proof {
--marker-featured: linear-gradient(100deg, rgba(108,99,255,0.26), rgba(217,112,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,138,30,0.30), rgba(255,183,60,0.42));
--marker-press: linear-gradient(100deg, rgba(91,82,232,0.20), rgba(14,165,233,0.25));
--marker-users: linear-gradient(100deg, rgba(108,99,255,0.20), rgba(45,136,102,0.26));
}
.hero-proof-cell {
Expand Down Expand Up @@ -584,6 +586,10 @@
background: var(--marker-hunt);
transform: rotate(1deg) skewX(-8deg);
}
.hero-proof-press::before {
background: var(--marker-press);
transform: rotate(-0.5deg) skewX(-7deg);
}
.hero-proof-users {
z-index: 0;
gap: 6px;
Expand Down Expand Up @@ -3132,6 +3138,12 @@ <h1>{{t-html:hero.h1_html}}</h1>
{{t:hero.proof.product_hunt}}
</span>
</a>
<a class="hero-proof-cell" href="https://www.marktechpost.com/2026/07/02/meet-webbrain-an-open-source-local-first-ai-browser-agent-that-reads-pages-and-automates-tasks-in-chrome-and-firefox/" target="_blank" rel="noopener noreferrer">
<span class="hero-proof-label hero-proof-press">
<img class="hero-proof-icon" src="/assets/marktechpost.svg" alt="" aria-hidden="true" width="15" height="15" decoding="async" draggable="false">
MarkTechPost
</span>
</a>
<span class="hero-proof-cell hero-proof-users">
<svg class="hero-proof-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
{{t:hero.proof.users}}
Expand Down
14 changes: 13 additions & 1 deletion web/de/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -567,13 +567,14 @@
.hero-proof {
--marker-featured: linear-gradient(100deg, rgba(116,91,255,0.22), rgba(221,120,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,159,67,0.22), rgba(255,196,91,0.38));
--marker-press: linear-gradient(100deg, rgba(99,102,241,0.18), rgba(56,189,248,0.28));
--marker-users: linear-gradient(100deg, rgba(116,91,255,0.16), rgba(104,211,178,0.28));
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 8px 12px;
max-width: 700px;
max-width: 900px;
margin: 22px auto 0;
font-size: 13px;
line-height: 1.5;
Expand All @@ -584,6 +585,7 @@
:root[data-theme="light"] .hero-proof {
--marker-featured: linear-gradient(100deg, rgba(108,99,255,0.26), rgba(217,112,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,138,30,0.30), rgba(255,183,60,0.42));
--marker-press: linear-gradient(100deg, rgba(91,82,232,0.20), rgba(14,165,233,0.25));
--marker-users: linear-gradient(100deg, rgba(108,99,255,0.20), rgba(45,136,102,0.26));
}
.hero-proof-cell {
Expand Down Expand Up @@ -631,6 +633,10 @@
background: var(--marker-hunt);
transform: rotate(1deg) skewX(-8deg);
}
.hero-proof-press::before {
background: var(--marker-press);
transform: rotate(-0.5deg) skewX(-7deg);
}
.hero-proof-users {
z-index: 0;
gap: 6px;
Expand Down Expand Up @@ -3186,6 +3192,12 @@ <h1>Der Open-Source AI <span class="gradient">Browser Agent</span></h1>
Product Hunt
</span>
</a>
<a class="hero-proof-cell" href="https://www.marktechpost.com/2026/07/02/meet-webbrain-an-open-source-local-first-ai-browser-agent-that-reads-pages-and-automates-tasks-in-chrome-and-firefox/" target="_blank" rel="noopener noreferrer">
<span class="hero-proof-label hero-proof-press">
<img class="hero-proof-icon" src="/assets/marktechpost.svg" alt="" aria-hidden="true" width="15" height="15" decoding="async" draggable="false">
MarkTechPost
</span>
</a>
<span class="hero-proof-cell hero-proof-users">
<svg class="hero-proof-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
Tausende Nutzer über mehrere Browser hinweg
Expand Down
14 changes: 13 additions & 1 deletion web/es/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -567,13 +567,14 @@
.hero-proof {
--marker-featured: linear-gradient(100deg, rgba(116,91,255,0.22), rgba(221,120,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,159,67,0.22), rgba(255,196,91,0.38));
--marker-press: linear-gradient(100deg, rgba(99,102,241,0.18), rgba(56,189,248,0.28));
--marker-users: linear-gradient(100deg, rgba(116,91,255,0.16), rgba(104,211,178,0.28));
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 8px 12px;
max-width: 700px;
max-width: 900px;
margin: 22px auto 0;
font-size: 13px;
line-height: 1.5;
Expand All @@ -584,6 +585,7 @@
:root[data-theme="light"] .hero-proof {
--marker-featured: linear-gradient(100deg, rgba(108,99,255,0.26), rgba(217,112,255,0.34));
--marker-hunt: linear-gradient(100deg, rgba(255,138,30,0.30), rgba(255,183,60,0.42));
--marker-press: linear-gradient(100deg, rgba(91,82,232,0.20), rgba(14,165,233,0.25));
--marker-users: linear-gradient(100deg, rgba(108,99,255,0.20), rgba(45,136,102,0.26));
}
.hero-proof-cell {
Expand Down Expand Up @@ -631,6 +633,10 @@
background: var(--marker-hunt);
transform: rotate(1deg) skewX(-8deg);
}
.hero-proof-press::before {
background: var(--marker-press);
transform: rotate(-0.5deg) skewX(-7deg);
}
.hero-proof-users {
z-index: 0;
gap: 6px;
Expand Down Expand Up @@ -3186,6 +3192,12 @@ <h1>El agente de navegador con <span class="gradient">IA de código abierto</spa
Product Hunt
</span>
</a>
<a class="hero-proof-cell" href="https://www.marktechpost.com/2026/07/02/meet-webbrain-an-open-source-local-first-ai-browser-agent-that-reads-pages-and-automates-tasks-in-chrome-and-firefox/" target="_blank" rel="noopener noreferrer">
<span class="hero-proof-label hero-proof-press">
<img class="hero-proof-icon" src="/assets/marktechpost.svg" alt="" aria-hidden="true" width="15" height="15" decoding="async" draggable="false">
MarkTechPost
</span>
</a>
<span class="hero-proof-cell hero-proof-users">
<svg class="hero-proof-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
Miles de usuarios en distintos navegadores
Expand Down
Loading
Loading