Skip to content

Release/v1.4.3 - #48

Merged
Eva813 merged 24 commits into
mainfrom
release/v1.4.3
Jan 19, 2026
Merged

Eva813 merged 24 commits into
mainfrom
release/v1.4.3

Conversation

@Eva813

@Eva813 Eva813 commented Jan 19, 2026

Copy link
Copy Markdown
Owner

* denotes required fields

Priority*

  • High: This PR needs to be merged first, before other tasks.
  • Medium: This PR should be merged quickly to prevent conflicts due to common changes. (default)
  • Low: This PR does not affect other tasks, so it can be merged later.

Purpose of the PR*

Changes*

How to check the feature

Reference

Eva813 and others added 22 commits November 18, 2025 14:41
Update API endpoints from linxly-nextjs.vercel.app to promptbear.ai,
change localhost port to 3003, refresh extension icons, and fix context
menu duplicate creation and shadow root re-initialization errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use import.meta.env.MODE to dynamically set the dashboard URL based on
the environment (localhost:3003 for development, promptbear.ai for
production).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…w accents

- Enable Tailwind dark mode with class strategy
- Update CSS variables for dark theme (gray-700 bg, white text, yellow-400 accents)
- Add dark mode classes to all content-ui components
- Update side-panel form components with dark mode styling
- Toggle sidebar button: yellow background with white arrow
- Search highlight uses yellow in dark mode
- Insert prompt arrow uses yellow in dark mode

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…pace selector

- Update CSS variables to use neutral gray scale (no blue tint)
- Add sidebar-header (#333333) and sidebar-content CSS variables
- Workspace dropdown: gray background with yellow text for selected item
- Header background darker for better contrast
- Organize dark mode variables for better maintainability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add PromptBear.ai footer to sidebar bottom
- Make toggle sidebar button smaller (h-6 w-4)
- Reduce toggle button arrow icon size (12px)
- Make "To Dashboard" text smaller (text-xs)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update version in package.json from 1.3.2 to 1.4.0
- Update version in manifest.json from 1.3.2 to 1.4.0
- Format manifest.json with proper indentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add custom dark mode and sidebar colors to ESLint whitelist
  - bg-sidebar-header, bg-sidebar-content
  - border-dark-elevated, bg-dark-elevated
  - text-dark-text-secondary, text-dark-text-primary
  - bg-dark-accent-bg
- Fix unused onClick parameter in SharedWithMeIndicator
- Auto-fix Tailwind class order in PromptSpaceSelector

This preserves the original color design while fixing CI lint failures.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Content script was incorrectly setting apiDomain to window.location.origin
when detecting any NextAuth session, causing API requests to go to wrong
domains (e.g., chatgpt.com instead of promptbear.ai).

Changes:
- Remove apiDomain setting from content script session detection
- Add domain validation in getApiDomain() to only accept PromptBear domains
- Auto-clear invalid apiDomain values from storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Prevent errors when trying to send messages to tabs that don't support
content scripts (e.g., chrome://, edge://, about: pages).

Changes:
- Add isContentScriptSupported() helper to validate http/https URLs
- Check URL before sending toggleSlidePanel messages
- Add proper error handling for keyboard shortcut triggers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add handling for <pre> and <code> tags in parseHtmlToText function
to extract content without preserving tag structure, fixing issue
where code blocks would insert literal "<pre><code>" text.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…detection

- Remove MutationObserver from content script to reduce DOM monitoring overhead
- Use visibilitychange event to check session when user switches back to tab
- Add enabled option to useSharedFolders for lazy loading
- Disable useSharedFoldersCount hook (return static values)
- Add unified environment detection utility (packages/shared/lib/env)
- Remove unnecessary dev warning in useContainerClassUpdater

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello @Eva813, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on preparing the extension for a new release by updating API endpoints, significantly enhancing the release process documentation, and introducing comprehensive dark mode support across the user interface. It also improves the extension's stability by adding context validation for content scripts and refines the shared folders feature. These changes collectively aim to improve the developer experience, user interface, and overall robustness of the extension.

Highlights

  • API Domain Update: The primary API domain for the extension has been updated from linxly-nextjs.vercel.app to promptbear.ai across various configuration files, manifest, and documentation. Local development environments have also been updated from localhost:3000 to localhost:3003.
  • Enhanced Release Guide: The .claude/release-guide.md file has been significantly expanded and updated with detailed, automated steps for creating a clean Chrome extension release package. This includes commands for cleaning, installing dependencies, building for production, verifying the build, checking the version, and creating a versioned ZIP file.
  • Dark Mode Implementation: Extensive dark mode support has been added across the extension's UI. This includes defining a new neutral grayscale color system in Tailwind CSS, applying these dark mode classes to numerous React components (e.g., Header, PromptSpaceSelector, FolderItem, ErrorState, LoadingState, PromptView, SharedFolderItem, Form components), and updating global styles to ensure a consistent dark theme experience.
  • Extension Context Validation: New logic has been introduced in pages/content/src/index.ts to validate the extension's context (checkExtensionContext). This prevents errors and ensures proper cleanup (e.g., clearing timeouts, input handlers, and prompt cache) when the extension context is invalidated, such as during an extension reload.
  • Shared Folders Feature Refinement: The useSharedFoldersCount hook has been temporarily disabled, and the 'Shared with Me' indicator button is now marked as 'Coming soon'. The useSharedFolders hook now supports an enabled option, allowing conditional data loading, which improves performance by only fetching shared folders when the modal is open.
  • Content Script URL Safety: A new utility function isContentScriptSupported has been added to chrome-extension/src/background/core/eventManager.ts to check if a URL supports content scripts (i.e., http:// or https://). Messages to content scripts are now only sent if the URL is supported, preventing errors on unsupported pages like chrome:// URLs.
  • Version Bump: The extension's version has been updated from 1.3.2 to 1.4.2 in manifest.json and package.json.
  • Unified Environment Detection: A new shared utility packages/shared/lib/env/index.ts has been added to provide a consistent and runtime-safe way to detect the development mode across Chrome Extension and browser environments.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new release, v1.4.3. The changes are extensive and well-implemented, primarily focusing on a domain name update from linxly-nextjs.vercel.app to promptbear.ai and the introduction of a comprehensive dark mode theme. The version number has been correctly updated across package.json and manifest.json. Additionally, there are significant reliability improvements, especially in the content script which now handles extension context invalidation gracefully, and in the background script with better event handling. The release documentation has also been updated. I've found one minor issue in the release guide where a user-specific absolute path is hardcoded, which I've commented on. Overall, this is a solid release with great enhancements.

Comment thread .claude/release-guide.md
- pnpm 已安裝並更新至最新版本
- 位於專案根目錄 `/Users/black-star-point-frontend/snippets-extension
nvm use v22.12.0 , 並遵循 /Users/black-star-point-frontend/snippets-extension/.claude/release-guide.md 產出打包文件
- 位於專案根目錄 `/Users/Eva/snippets-extension`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The file path in this guide is hardcoded to a specific user's absolute path (/Users/Eva/snippets-extension). This makes the documentation less portable for other developers.

It would be better to use a more generic placeholder or instruction, such as mentioning "the project's root directory" or using a relative path.

Suggested change
- 位於專案根目錄 `/Users/Eva/snippets-extension`
- In the project root directory

@Eva813
Eva813 merged commit 6b2508e into main Jan 19, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants