Skip to content

Add OG image and favicon, and allow static asset rewrites in Vercel config - #2

Merged
esokullu merged 1 commit into
mainfrom
codex/fix-image-sharing-issue-on-website
Apr 6, 2026
Merged

esokullu merged 1 commit into
mainfrom
codex/fix-image-sharing-issue-on-website

Conversation

@esokullu

@esokullu esokullu commented Apr 6, 2026

Copy link
Copy Markdown
Collaborator

Motivation

  • Improve social sharing and branding by adding a proper Open Graph/Twitter preview image and a site favicon.
  • Replace the inline data-URL favicon with a standalone file for better cacheability and compatibility.
  • Ensure static assets (images, fonts, CSS, JS) are served correctly by adding a Vercel rewrite rule.

Description

  • Added web/og-image.svg as a 1200x630 Open Graph/Twitter preview image containing the WebBrain branding.
  • Added web/favicon.svg as the site favicon SVG (emoji brain) and updated index.html to reference it via a <link rel="icon">.
  • Updated web/index.html to include og:image, og:image:secure_url, og:image:type, og:image:alt, twitter:image, and twitter:image:alt meta tags and removed the inline data-URL favicon.
  • Modified web/vercel.json to add a rewrite for static asset paths matching common file extensions so files like .svg, .png, .css, and fonts are served directly.

Testing

  • No automated tests were added or modified for this change.
  • No automated test suite was executed as part of this change since it only affects static assets and HTML metadata.
  • Manual verification is expected for social preview rendering and favicon serving in deployment preview environments.

Codex Task

@vercel

vercel Bot commented Apr 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
webbrain Ready Ready Preview, Comment Apr 6, 2026 8:17pm

@esokullu
esokullu merged commit d6bb873 into main Apr 6, 2026
2 checks passed
@esokullu
esokullu deleted the codex/fix-image-sharing-issue-on-website branch April 6, 2026 20:17
esokullu added a commit that referenced this pull request Apr 7, 2026
Settings bug: clicking "Set Active" on a provider re-rendered the provider
list from the in-memory snapshot, silently throwing away any unsaved field
edits in OTHER provider cards. Now syncs all input values back into
providersData before re-rendering. Mirrored to firefox.

#1 Firefox capability gap documented in README. Lists all the chrome-only
features (CDP click/type, shadow DOM piercing, SPA-detect retry, conv
persistence, closed shadow roots) so users aren't surprised.

#2 .gitattributes added with text=auto eol=lf so git stops warning about
CRLF on every commit.

#3 Auto-screenshot defensive 500ms debounce. The original concern was a
misread — the per-batch flag already capped at one screenshot per turn.
Added the debounce as cheap insurance for future refactors.

#4 Site adapter mid-conversation re-injection. New _maybeReinjectAdapter
runs at the top of each LLM iteration and pushes a "Site context changed"
message when the active adapter differs from the last seen one. Seeded
in _enrichFirstUserMessage so the very first turn doesn't double-inject.
Multi-site workflows now get correct guidance throughout.

#5 Loop detection nudge persistence. Healthy non-looping calls no longer
reset the nudge counter immediately — only after 6 consecutive healthy
calls (a full window). Catches the slow-loop case where the agent
interleaves a read_page between two stuck clicks.

#6 Tool-batch executor refactored into a shared _executeToolBatch helper
called by both processMessage and processMessageStream. Eliminates the
duplication that was already drifting (loop detection, persistence,
auto-screenshot logic). Both paths are now <60 lines each. Mirrored to
firefox.

#7 Test suite. Pure-Node, zero-dependency runner at test/run.js. 23 tests
covering adapter matching (12 cases including finance precedence and
GHES strictness) and loop detection (11 cases including ABAB oscillation,
slow-loop persistence, healthy-streak reset, tab isolation). All passing.
npm test added to package.json.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@esokullu esokullu mentioned this pull request May 24, 2026
esokullu added a commit that referenced this pull request Jun 21, 2026
esokullu added a commit that referenced this pull request Jun 23, 2026
- drainQueuedContextMenuPrompts: replace shift()+continue with
  findIndex+splice so prompts for non-active tabs stay in the queue
  instead of being permanently discarded (finding #1)
- tabs.onRemoved / webNavigation.onCommitted: route cleanup through
  getContextMenuPromptStore() so local-storage fallback is cleared too;
  add navigation listener to invalidate stale prompts on page change
  (findings #2, #3)
- runContextMenuPrompt: move clear_context_menu_prompt dispatch to after
  sendMessage() so storage isn't wiped before text is captured (finding #4)
- Extract context-menu-storage.js and context-menu-prompts.js as shared
  factory modules (identical in Chrome/Firefox); remove ~160 lines of
  duplicated code from background.js and sidepanel.js (findings #5, #6)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant