Releases: charlesjones-dev/replyqueue
Releases · charlesjones-dev/replyqueue
v1.1.3 - LinkedIn Post URL Fix
Changes
- Fixed "View" button generating invalid LinkedIn URLs
- Post URLs now correctly extracted from LinkedIn's tracking scope data for proper deep linking
- Improved console logging to avoid format string security warnings
Full Changelog: v1.1.2...v1.1.3
v1.1.2 - LinkedIn Selector Updates
What's Changed
Fixed
- Updated LinkedIn DOM selectors for February 2026 LinkedIn UI changes
- LinkedIn switched to CSS-in-JS with hashed class names, breaking previous selectors
- Post detection now uses stable
data-view-nameanddata-testidattributes instead of class names - Post ID extraction uses
componentkeyattribute instead of deprecateddata-urn
Technical Details
LinkedIn's UI update introduced dynamically-generated class names that change between builds. This release updates all selectors to use stable HTML attributes:
data-view-name="feed-full-update"for post containersdata-view-name="feed-actor-image"for author infodata-testid="expandable-text-box"for post contentcomponentkeyattribute pattern for post ID extraction
Legacy selectors are preserved as fallbacks for older LinkedIn versions.
Full Changelog: v1.1.1...v1.1.2
v1.1.1 - Chrome Web Store Review Optimization
What's Changed
Added
- Package scripts for Chrome Web Store submission (
scripts/package.ps1for Windows,scripts/package.shfor macOS/Linux)
Changed
- Disabled minification in production builds to speed up Chrome Web Store review process (unminified code is easier for reviewers to verify)
This release optimizes the extension for faster Chrome Web Store review by submitting unminified source code. No functional changes from v1.1.0.
Full Changelog: v1.1.0...v1.1.1
v1.1.0 - Dark Mode, Selective AI Matching & UI Improvements
What's New
Selective AI Matching
- Checkbox selection on queued posts to match only specific posts
- Individual "AI Match" button on each queued post for single-post matching
- Button dynamically changes from "AI Match All" to "AI Match Selected (N)" when posts are selected
Dark Mode
- Three-state toggle (system/light/dark) in header
- Defaults to system preference
Reset Extension
- Reset button on setup wizard pages to abandon setup and clear saved config
- Reset section in settings to clear all settings and return to setup wizard
Configurable RSS Feed Limits
- Max RSS Items setting (default 25)
- Max Blog Items in AI Prompts setting (default 25)
- New RSS Preferences collapsible section in Settings
Changes
- Moved Matching Preferences into collapsible section within AI Model settings
- Removed Jump button from post cards; View button now opens post in new tab
- Reply Suggestions section now collapsed by default
- Replied and Skipped tabs now hidden when empty
- Filter tabs now display count below the label instead of inline
Bug Fixes
- Post content now preserves newlines and paragraph breaks
- RSS feed validation now properly prompts for host permission during setup
- AI model now correctly selected by default on Settings page after setup wizard
- ModelSelector now auto-selects first available model if stored model is filtered out
- Post status tags now display correct labels ("Matched" vs "Unmatched")
- Side panel now detects posts when opened on already-loaded LinkedIn pages
- AI Match now waits for all API calls to complete before switching tabs
Full Changelog: v1.0.0...v1.1.0
v1.0.0 - AI-Powered Social Media Engagement
ReplyQueue v1.0.0
The first stable release of ReplyQueue, a Chrome extension that helps content creators identify social media posts relevant to their blog content and generate AI-powered reply suggestions.
Features
Core Functionality
- LinkedIn Feed Extraction - Automatically extracts posts from your LinkedIn feed using MutationObserver for real-time detection
- AI-Powered Matching - Semantic analysis matches posts to your RSS feed content using OpenRouter API
- Reply Suggestions - Generate contextual, personalized reply suggestions that reference your blog posts
- Heat Check - AI-powered tone analysis classifies posts as positive, educational, question, negative, promotional, or neutral
Configuration
- RSS Feed Integration - Connect any RSS/Atom feed to match against your blog content
- Model Selection - Choose from available OpenRouter models with filtering by provider, capabilities, and pricing
- Writing Style Examples - Provide example comments to match your tone and voice
- Communication Preferences - Custom rules for how replies should be crafted
- Configurable Limits - Adjust character limits for blog content and post content in AI prompts
Queue Management
- Tab Workflow - Queued posts awaiting analysis, Matched posts with suggestions, Unmatched posts, and Skipped posts
- Skip Button - Skip queued posts before AI analysis
- Status Tracking - Track queued, replied, and skipped posts
Security
- Origin Validation - Content script messages validated against allowed origins
- Secure Storage - API keys stored in chrome.storage.local, never synced or exposed
- Security Tooling - ESLint security plugin and Semgrep CI integration
- Input Validation - All user inputs sanitized before use
Installation
- Download the release zip
- Extract to a folder
- Open
chrome://extensions - Enable "Developer mode"
- Click "Load unpacked" and select the extracted folder
Requirements
- Chrome browser (Manifest V3)
- OpenRouter API key for AI features
- RSS feed URL from your blog
Tech Stack
- Vue 3 with Composition API
- TypeScript (strict mode)
- Vite + CRXJS for Chrome extension bundling
- Tailwind CSS
- Vitest for testing