Public history of Gadspilot features, fixes and improvements. Auto-updated on each deploy.
October 2026
Fixmanual-364
Google API key now encrypted
We've secured the Google API key used for Safe Browsing, PageSpeed, and CrUX data by encrypting it at rest. Existing keys are automatically migrated and encrypted during the next deployment with no action required on your part.
Fixmanual-363
Memory tools now work on Google Search Console and Meta Ads
Fixed a critical issue where note-taking and changelog tools were unavailable for Google Search Console and Meta Ads accounts. These tools now properly resolve your GSC properties and Meta ad accounts, allowing you to save notes and track changes directly within those platforms via Claude.
Newmanual-362
MCP call limits now enforced by plan
Gadspilot now tracks and enforces the MCP call quotas promised in your plan: Free accounts get 15 calls per month per connected account, Plus gets 150, Pro gets 600, and Max gets 3,000. You'll see a usage gauge on your dashboard and receive email notifications at 80% and 100% of your quota. Admins have unlimited calls. Quotas reset monthly and expired plans automatically revert to Free.
Fixmanual-361
Security updates for dependencies
We've updated critical dependencies to patch three security vulnerabilities, including a denial-of-service issue in markdown processing and a regular expression vulnerability in HTTP header parsing. These updates protect your data and ensure gadspilot runs safely.
Fixmanual-360
Fixed email notification loop caused by special characters
Resolved a critical bug where notification emails were failing to send due to improperly escaped apostrophes in French labels. This was causing the support notification system to retry every 10 minutes, flooding inboxes. The fix ensures special characters in label names are properly handled.
September 2026
Fixmanual-358
Security update: XSS vulnerability in debug page
Updated Laravel framework to patch a low-severity cross-site scripting vulnerability in the debug page (CVE-2026-102279). This vulnerability only affects development environments where debug mode is enabled and does not impact production deployments. The update ensures your codebase meets current security standards.
Fixmanual-357
Tool errors now visible to Claude
When Google Ads, Google Search Console, or Meta Ads tools encounter an error, Claude can now see the actual error message instead of a generic placeholder. This helps Claude understand what went wrong and retry intelligently, rather than guessing or giving up.
Newmanual-356
Fixed video model pricing estimates
Suno video models (Seedance 2.0, 2.5, Mini, Fast, 1.5) now calculate accurate token-based pricing for budget reservations. Previously, these models fell back to a default rate that could reserve up to 5x the actual cost, quickly depleting user budgets. Pricing now uses ByteDance's standard formula based on video resolution and frame rate.
Fixmanual-355
Better error messages for OpenRouter video uploads
Fixed an issue where users would see raw technical error messages when uploading videos to OpenRouter. Now you'll receive a clear, user-friendly message instead, while our team gets the detailed diagnostic information in logs. Failed uploads are not charged to your account.
Fixmanual-354
Video generation now preserves original image aspect ratio
When generating videos from an image, gadspilot now respects the original image's aspect ratio instead of forcing a 16:9 landscape format. This means your vertical Meta Ads images (4:5 or 9:16) will stay in their intended format when converted to video, rather than being cropped and stretched.
Newmanual-352
Media Studio: Generate images and videos with Claude
Introducing Media Studio, a new way to generate images and videos directly within Claude conversations. Create images instantly with inline previews, or generate videos asynchronously and track their progress. Access is controlled by your admin with monthly budgets to manage costs. Admins can enable this feature per user and have unlimited access themselves.
Newmanual-349
AI uncertainty now alerts instead of deciding
When our AI is unsure whether an email is spam, it now sends you the full message with a warning banner and [A VERIFIER] prefix in the subject line, instead of silently filtering it. High-confidence threats still go straight to spam. This gives you the final say on borderline cases.
Newmanual-348
AI-powered fraud detection for missed threats
We've added a second layer of AI analysis to catch fraud, phishing, and impersonation attempts that traditional rules miss. Our new threat classifier reviews messages that didn't trigger existing safeguards, categorizing them as legitimate, scam, phishing, impersonation, malware lure, or cold outreach. Built-in protections ensure legitimate contacts from registered users are never misclassified as threats.
Improvementmanual-344
Faster search terms lookup for large accounts
Fixed a performance issue where fetching search terms on large Google Ads accounts could timeout. The underlying query was scanning the entire account instead of filtering to the requested campaign or ad group, causing unnecessary delays. Search terms now load significantly faster, especially for accounts with thousands of keywords.
Fixmanual-343
Fixed tool errors now properly logged
We fixed two issues affecting tool reliability. First, a date range validation bug was causing one Google Ads tool to fail on every call—we've corrected the formatting so it now works like all other tools. Second, we improved error logging so you can now see why tools fail instead of just seeing a generic error. This means better diagnostics when something goes wrong.
Newmanual-345
UTM tracking and first-touch attribution
Gadspilot now captures marketing source information (UTM parameters) on every interaction and attributes new signups to their original marketing channel using first-touch attribution. This means you can finally see which videos, posts, or campaigns drove your user growth. Attribution data syncs automatically at signup, whether users register via email or Google Sign-In.
Fixmanual-346
Fixed OpenRouter model compatibility
Corrected model identifiers for OpenRouter integration that were causing API errors. The system was using Anthropic's native model format instead of OpenRouter's expected format, resulting in failed requests. This fix ensures Claude models work correctly when accessed through OpenRouter.
August 2026
Fixmanual-342
Improved spam detection for contact form
We've strengthened our contact form protection to catch spam bots that use random gibberish text and disposable email addresses. The system now requires multiple spam signals to trigger a block, reducing the chance of accidentally filtering out legitimate messages.
Fixmanual-341
Fix silent Composer audit failures
Composer dependency audits can now fail silently if the audit tool crashes or times out, incorrectly reporting zero vulnerabilities. We've added proper exit code checking to detect when audits fail and alert you to the problem, ensuring security issues aren't missed.
Fixmanual-338
Cleaner notification emails with better formatting
Notification emails now have a cleaner, more professional layout. Subject lines no longer stack multiple prefixes, email previews no longer leak internal page titles, and the overall design is more compact with improved readability.
Fixmanual-336
Fixed outdated MCP tool counters across the site
We corrected the tool availability counters displayed throughout gadspilot to match the actual number of MCP tools available. Google Ads now shows 91 tools (previously 76–81), Google Search Console shows 24 (previously 16), and the total reflects 112 tools. These numbers now accurately represent what you can access in your integrations.
Fixmanual-335
Fixed reconnection prompts for long-term integrations
Resolved an issue where users would see a "Reconnect required" message every 30 days when using integrations with Claude.ai or ChatGPT. The problem occurred when multiple requests tried to refresh the authentication token simultaneously. We now allow a brief grace period for concurrent refresh attempts, preventing unnecessary disconnections.
Fixmanual-334
Improved security for API access tokens
We've reduced the lifetime of API access tokens from 5 years to 30 days to strengthen security. Access tokens are transmitted with every request and cannot be revoked once issued, so a shorter expiration window significantly reduces risk if a token is ever compromised. Refresh tokens remain secure on your device and can be revoked server-side if needed.
Newmanual-333
3 new SEO tools for Google Search Console
We've added three powerful new tools to help you monitor and improve your SEO performance. Content Decay detects pages losing clicks over time, helping you identify which content needs refreshing. Bulk URL Inspect lets you check up to 100 individual URLs for indexing status, coverage, and crawl details without needing a sitemap. Ranking Diff tracks how your rankings change between periods. These tools are now available in your MCP dashboard.
Newmanual-332
4 new SEO tools for Google Search Console
We've added four powerful new MCP tools to help you audit and optimize your site's search performance. Index Coverage Report lets you bulk-audit indexation status across your sitemap, surfacing orphaned URLs and accidental noindex tags. Query Cannibalization detects when multiple pages compete for the same search queries. We've also extended OAuth token lifetime from 30 days to 5 years, reducing reconnection friction.
Newmanual-331
Request URL indexing from Google Search Console
You can now request Google to re-index or remove URLs directly from gadspilot using the Google Indexing API. This new tool lets you notify Google when you've updated or deleted pages, speeding up discovery of your changes. The tool validates that URLs belong to your property and provides clear guidance if you need to reconnect your Google Search Console account with the required permissions.
Newmanual-330
Check invoice eligibility before syncing
We now check whether each connected Google Ads account can retrieve invoices via API before attempting to sync them. This preflight check shows you upfront if an account uses automatic payments instead of monthly invoicing, preventing sync failures and letting you know exactly which accounts need manual invoice retrieval.
Fixmanual-328
Fixed cache warming process pile-up
Resolved an issue where repeated deployments could spawn multiple cache-warming processes simultaneously, causing server load spikes. Added safeguards to prevent overlapping cache operations during deployment.
Fixmanual-326
Fix translated content not displaying in French and Spanish
Fixed a bug where French and Spanish pages were incorrectly displaying English content even though translations were available. The localization middleware is now properly applied to all language routes, ensuring the correct language is used to fetch translated strings.
Newmanual-322
Public contact form now available in 7 languages
We've launched a public contact form at /contact that replaces simple mailto links. The form includes spam protection with rate limiting, honeypot validation, and heuristic filtering to keep your inbox clean. It's now available in English, French, Spanish, German, Italian, Portuguese, and Dutch.
Fixmanual-320
Clearer error messages for billing setup issues
When your Google Ads account shows no monthly invoicing setup, you'll now see a more helpful error message that explains the two most common causes: your account may have been on card payment that month, or your invoices might be managed through a parent MCC (manager account). This helps you quickly understand why data appears missing and take the right next step.
Newmanual-319
Consolidated backfill invoices into single email
Backfill invoice emails are now consolidated into one message per request, regardless of period length. Previously, a 12-month backfill would generate 12 separate emails. Now all invoices for a backfill are grouped by account in a single email with subtotals, reducing inbox clutter and making it easier to review historical billing data.
Fixmanual-318
Fixed Google Ads API deprecation blocking invoices
Google has deprecated the Google Ads API version we were using, causing invoice retrieval to fail for some accounts. We've upgraded to the latest stable API version to restore full functionality. You may also notice improved form controls when managing invoice exports.
Newmanual-317
Quick select all accounts in manual backfill
When manually backfilling data, you can now select or clear all connected accounts with a single click. This saves time when you want to reprocess data across multiple accounts at once.
Fixmanual-316
Manual backfill now always accessible
The Manual backfill card now appears whenever you have at least one connected account, even if you haven't saved backfill settings yet. When initiating a backfill, you can specify custom recipient email addresses without affecting your recurring monthly backfill configuration, making it easier to send one-time reports to different team members.
Newmanual-315
Invoice delivery by date range
You can now retrieve and email invoices for a specific year or custom month range from the Invoices settings page. Select one or more accounts, choose your date range, and send invoices in PDF or CSV format using your existing email recipients and delivery preferences. This is useful for accessing historical invoices or resending statements for specific periods.
Newmanual-313
Claude.ai stays connected—no more forced re-auth
Fixed an issue where the gadspilot MCP connector in Claude.ai would ask you to reconnect every 30 days. We now issue refresh tokens alongside access tokens, so your connection stays active without interruption. You'll only need to re-authenticate if you manually disconnect.
Newmanual-311
System health monitoring and socket leak alerts
Added a new system health dashboard at /admin/system/health that monitors VPS performance in real time. The system tracks TCP socket states, CPU usage, memory, disk space, and load average, with automatic alerts when socket leaks are detected (over 500 CLOSE_WAIT connections). A background job checks health every 5 minutes to catch issues before they impact service stability.
Newmanual-310
Stats dashboard for chatbot conversations
Added a new Stats tab to the chatbot admin page showing key metrics across different time periods: today, last 7 days, last 30 days, and all-time. Track conversation volume, flagged injections, retrieval quality, and authenticated vs. anonymous usage. The tab includes helpful guidance when no conversations exist yet.
Newmanual-308
Support inbox email notifications
You now receive an email notification whenever a new support message arrives in your inbox. Notifications are sent automatically every few minutes, so you won't miss any customer requests.
Fixmanual-307
Security fix: prevent token leakage in invoice downloads
Fixed a security vulnerability in the invoice download feature that could allow attackers to steal your Google OAuth credentials through malicious campaign names or other injected content. The feature now only connects to official Google servers and never sends your credentials to unauthorized hosts.
July 2026
Newmanual-306
Legal pages now available in 7 languages
Terms of Service, Privacy Policy, and Data Deletion pages are now fully translated into Italian, German, Dutch, and Brazilian Portuguese, joining existing English, French, and Spanish versions. All core legal documentation is now accessible to users worldwide in their preferred language.
Newmanual-305
Pricing page now available in 5 new languages
The pricing page is now fully translated into Spanish, Italian, German, Dutch, and Portuguese (Brazil). All pricing tiers, billing toggles, FAQ, and call-to-action buttons are localized. Prices remain consistent across all currencies for clarity.
Newmanual-304
Single-page legal tabs with deep linking
Legal pages now load all sections in one view with tabbed navigation powered by Alpine.js. Tabs stay visible while scrolling, switch instantly without page reloads, and are deep-linkable via URL hash—so you can share a direct link to Privacy or Data Deletion and others land on the right section. Also fixed capitalization of Gadspilot throughout the app.
Newmanual-303
Legal pages now have navigation tabs
We've added consistent tab navigation across all legal pages (Terms, Privacy, Data Deletion, Legal Notice, and AI Act) so you can easily jump between them. Italian translations are now complete, with German, Dutch, and Portuguese fallbacks where needed.
Newmanual-301
Fixed cross-locale routing and updated compliance pages
We fixed a routing issue where translated page slugs would return 404 errors when accessed with the wrong language prefix (for example, /en/tarifs instead of /en/pricing). The site now automatically redirects these mismatched URLs to the correct slug in your current language. We also updated our Terms of Service pages across all supported languages to reflect current EU AI Act requirements.
Newmanual-300
Pricing page now available in English, French, and Spanish
The pricing page is now fully localized for English, French, and Spanish visitors, with currency automatically adjusted to USD, EUR, or local rates. Feature descriptions have been updated to accurately reflect gadspilot's capabilities across Google Ads, Google Search Console, and Meta Ads integrations.
Fixmanual-298
Removed beta badge from footer
We've removed the beta badge from the public footer now that gadspilot has launched its pricing tiers. The product is no longer in beta.
Newmanual-297
Launch offer: first month free on paid plans
We're offering a limited-time launch promotion: get your first month free on any paid plan (Plus, Pro, or Max). To claim your offer, click the updated call-to-action button on our pricing page, which will let you email us directly to activate your free trial. No credit card required.
Newmanual-296
Public pricing page now live
We've launched our public pricing page with four tiers: Free (15 MCP calls per month, no card required), Plus ($36/month), Pro ($74/month), and Max ($149/month with team seats). Annual billing offers 25% savings on paid plans. The page includes a monthly/annual toggle, detailed feature comparisons, and answers to common questions about our pricing.
Improvementmanual-295
Invoice Gads now nested under Google Ads
Invoice Gads has been reorganized as a sub-item under the MCP Google Ads section in the sidebar, making the navigation structure clearer and more logical. The feature remains fully accessible and visible.
Newmanual-294
Invoices feature now visible in dashboard
The Invoices feature is now discoverable directly from your dashboard sidebar, making it easier to manage your Google Ads invoice delivery settings. We've added a new Invoices menu item and an overview card that shows your current configuration or lets you set it up in one click.
Newmanual-293
Monthly Google Ads invoice emails
You can now set up automatic monthly email delivery of your Google Ads invoices. Configure the feature in Settings > Invoices by choosing a send date, adding recipient email addresses, selecting which Google Ads accounts to include, and toggling options to attach PDFs, skip empty months, or include a CSV summary. Invoices are sent automatically each month on your chosen date.
Newmanual-292
Download Google Ads invoices as PDFs
You can now retrieve and download your Google Ads invoices directly from gadspilot. Three new tools let you list your billing accounts, fetch invoices by month and year, and download PDF copies for your records or to share with your team.
Fixmanual-291
Fixed recurring production errors
We've resolved three recurring issues that were causing warnings in production. Google Search Console token refresh errors now log better details to help identify affected accounts. Google Ads brand exclusions now use the correct API fields. And changelog processing no longer crashes when commits contain non-UTF-8 characters. These fixes eliminate approximately 50 daily warnings.
Fixmanual-289
Fixed crash on Insights page for some accounts
Resolved a critical bug that caused the Insights page to crash with a parser error for certain accounts. The issue occurred when displaying large datasets with nested translations. We've updated how data is rendered to prevent this error from happening again.
Newmanual-288
User location and language now visible in admin
The admin users page now displays each user's country and language preference. This information is automatically detected during signup based on their IP address and browser settings, helping you better understand your user base and support localization efforts.
Fixmanual-287
Fixed day count display in monthly reports
Monthly reports now show the correct whole number of days instead of displaying decimal values like "30.999999999988 days". This fix ensures the date range header displays cleanly for any month.
Newmanual-286
Automated daily and monthly email reports
Receive automatic email reports every morning with a snapshot of your gadspilot activity. Each daily report includes new signups, MCP tool usage, website traffic, and how your metrics compare to the previous week's average. Reports are sent to your configured email address and can be customized via environment settings.
June 2026
Newmanual-285
Control Performance Max asset group status
Added a new MCP tool to enable or pause asset groups in Performance Max campaigns. Previously, asset groups were always created in a paused state with no way to activate them, causing campaigns to receive zero impressions without any error message. You can now manage asset group status directly after review.
Gadspilot uses only essential cookies (session, CSRF, your preferences). No analytics, no advertising tracking, no third-party scripts. Local storage stores AI Insights consent + this banner choice. See our privacy policy.