=== Sideconvo === Contributors: sideconvo Tags: ai, search, content, sync, chat Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.0.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Sync your WordPress content to Sideconvo's AI-powered semantic search platform. == Description == Sideconvo integrates AI-powered semantic search into your WordPress site by syncing your content to a vector database. Enable your visitors to find relevant information quickly using natural language queries. = Key Features = * Seamless integration with Sideconvo platform * Automatic content synchronization * Support for posts, pages, and custom post types * Taxonomy syncing (categories, tags, custom taxonomies) * Selective content indexing with exclusions * Real-time sync status monitoring * Environment-based configuration (dev, qa, prod) * Memory-optimized batch processing * Automatic expiration and reconciliation = How It Works = 1. Connect your WordPress site to Sideconvo using your API key 2. Select which content types to sync (posts, pages, custom post types, taxonomies) 3. Initial indexing runs automatically 4. Ongoing changes sync in real-time 5. Your content becomes searchable via Sideconvo's AI = Requirements = * PHP 7.4 or higher * WordPress 6.0 or higher * Sideconvo account and API key == External Services == Important: This plugin connects to external Sideconvo services to provide AI-powered content indexing and search functionality. This plugin integrates with Sideconvo (https://www.sideconvo.ai), a third-party AI platform that indexes your WordPress content and makes it searchable via natural language queries. = When does the connection occur? = The plugin communicates with Sideconvo's API in the following situations: * When you authenticate using your API key during initial setup * When content is published, updated, or deleted on your WordPress site * When the reconciliation tool runs to compare local and remote sync state * When bulk sync or remove actions are triggered from the WP admin list tables * When the scheduled WP-Cron task checks for expired content No data is transmitted until you connect your site with a valid Sideconvo API key. = What data is transmitted? = When the plugin syncs content to Sideconvo, the following data is sent to Sideconvo's servers: * Post or term ID (used as the unique record identifier) * Post or term title * Post or term URL * Post or term body content (HTML) * Featured image URL * Last modified timestamp * Your site's namespace (derived from your API key) = Data Processing = All content indexing and AI search processing is handled on Sideconvo's servers. Sideconvo uses this data to: * Index your content in a vector database for semantic search * Respond to natural language queries from your site visitors * Maintain sync state between your WordPress site and the platform = Privacy & Terms = For more information about how Sideconvo handles your data, please review: * Sideconvo Privacy Policy: https://www.sideconvo.ai/privacy/ * Sideconvo Terms of Service: https://www.sideconvo.ai/terms = Your Responsibilities = As a site owner using this plugin, you are responsible for: * Informing your visitors that your site content is indexed by Sideconvo's AI platform * Including Sideconvo's privacy policy information in your site's privacy documentation * Obtaining necessary user consent per applicable privacy regulations (GDPR, CCPA, etc.) * Understanding Sideconvo's data handling practices * Ensuring compliance with your local data protection laws = Service Provider = This external service is provided by: Sideconvo AI * Website: https://www.sideconvo.ai * API: https://api.sideconvo.ai * Service: AI-powered content indexing and semantic search platform = Stripe = The Sideconvo platform, which is loaded via an iframe inside the plugin's admin interface, uses Stripe for payment processing. Stripe JavaScript is loaded within that iframe context to handle billing for Sideconvo subscriptions. No payment data is collected or transmitted by this WordPress plugin directly — all Stripe interactions occur entirely within the Sideconvo platform iframe. This service is provided by Stripe, Inc.: * Terms of Service: https://stripe.com/legal/ssa * Privacy Policy: https://stripe.com/privacy == Installation == 1. Upload the plugin files to `/wp-content/plugins/sideconvo/`, or install through the WordPress plugins screen 2. Activate the plugin through the 'Plugins' screen in WordPress 3. Navigate to the 'Sideconvo' menu in wp-admin 4. Click 'Connect to Sideconvo' to authenticate with your API key 5. Select the content types you want to sync 6. Wait for initial indexing to complete == Source Code == The JavaScript and CSS assets in this plugin are compiled from TypeScript/React source code using [@wordpress/scripts](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-scripts/) (webpack + Babel). The full source code is available on [Bitbucket](https://bitbucket.org/itxi/sideconvo-wp-plugin). = Build Requirements = * Node.js 18+ * npm 8+ = Build Instructions = 1. Clone the repository 2. Install dependencies: `npm install` 3. Build for production: `npm run build` 4. Build for development (with watch): `npm run start` == Frequently Asked Questions == = Do I need a Sideconvo account? = Yes, you'll need to sign up at https://platform.sideconvo.ai/ to get your API key. = What content can I sync? = You can sync posts, pages, custom post types, and taxonomies (categories, tags, custom taxonomies). = Can I exclude specific content from syncing? = Yes, you can exclude individual items or use the metabox on edit screens to control sync settings. = How much does Sideconvo cost? = Pricing information is available at https://www.sideconvo.ai/pricing = Is my data secure? = Yes, all communication with Sideconvo uses encrypted HTTPS connections. Your API key is stored securely in WordPress options. = What happens if I deactivate the plugin? = Your sync data is preserved. Reactivating the plugin will resume syncing from where it left off. = What happens if I uninstall the plugin? = All plugin data including sync state and settings will be permanently deleted from WordPress. Your content remains in Sideconvo's database. == Screenshots == 1. Splash screen with platform connection 2. Content type selection wizard 3. Indexing progress with status table 4. Main dashboard with sync statistics 5. Post edit metabox with sync controls == Changelog == = 1.0.0 = * Fixed HTTP 429 rate-limit handling: sync queue now pauses for the exact Retry-After duration and resumes automatically without user interaction * Fixed batch sync items failing silently with progress banner stuck at "0 of N items processed" * Fixed stale "Pages Indexed" count on Sync screen after all WordPress content is removed * Fixed race condition in delete batch lock using atomic add_option() DB mutex (TOCTOU-safe) * Fixed stale PHP-localized scope count triggering unwanted auto-indexing when all content types are removed in the same page session * Fixed out-of-scope posts and taxonomy terms being re-synced after removal from scope * Fixed unpublished/deleted posts being marked as failed instead of excluded during batch processing * Improved sync progress banner: now shows items attempted (not just successfully indexed) and surfaces failed count inline * Improved batch retry logic: server_broken early-abort prevents hammering the API when server is systematically failing * Improved reconciliation: auto-triggers when scope drops to zero to surface orphaned Pinecone items * Removed forced navigation guard (SyncGuard) that blocked access to dashboard routes before initial sync = 0.8.1 = * Added CSRF nonce protection to widget params handler (handle_widget_params) * Added Source Code section to readme.txt with build instructions = 0.8.0 = * Fixed broken privacy policy URL in readme.txt * Added HTTP 429 rate-limit handling with backoff and retry logic * Added configurable sync delay setting (0 = immediate dispatch, >0 = deferred) * Improved save_post hook debouncing to prevent duplicate API calls on publish * Improved delayed queue dispatch after publish to reduce API fatigue * Improved API key security: lazy-loaded on reveal/copy only, no logging or accidental exposure, key rotation support * Replaced echo style tag with wp_add_inline_style() per WordPress coding standards * Scoped list-table CSS to admin post screens only to prevent style leakage * Documented Stripe as an external service in readme.txt * Removed background sync toggle and WP-Cron batch runner = 0.7.0 = * Fixed encoding issues with special characters in post titles and content * Fixed reconciliation not catching orphaned records after re-connection * Improved add/remove content type sync flow with better bulk remove handling * Improved overall admin experience and error messaging = 0.6.0 = * Fixed Sync All looping infinitely when no content types are in scope * Fixed title encoding for posts containing HTML entities * Fixed sync and expiration logic edge cases * Added "Expired" filter to WP List Tables for easier content management * Improved unsync/sync behaviour when content types are added or removed * Stability improvements for batch delete operations = 0.5.0 = * Initial public release * Plugin scaffold with PSR-4 autoloading and React admin interface * Environment configuration system (dev/qa/prod) * Sideconvo platform authentication via iframe login flow * Site configuration wizard with content type and taxonomy selection * Batch indexing with memory-optimised batch sizing (128MB/512MB thresholds) * Post-wizard app shell with left navigation and platform iframes * Metabox on post and term edit screens with per-item sync controls * Expiration date support for time-limited content indexing * Automatic sync hooks on post save, status transition, and deletion * Taxonomy sync fields mirroring the post metabox UI * WP List Table enhancements: bulk Sync/Remove actions and sync status filter * Custom sync status column on post and taxonomy list screens * Reconciliation engine comparing WordPress and Sideconvo state * Admin notices summarising bulk action results * WP-Cron scheduled expiration checks * Full i18n support with sideconvo text domain * Security hardening: nonces, capability checks, input sanitisation, output escaping == Upgrade Notice == = 1.0.0 = Recommended update. Resolves rate-limit handling, silent batch failures, stale sync counts, and a delete lock race condition. Improves sync progress feedback and reconciliation accuracy. = 0.8.1 = WordPress.org compliance update. Fixes CSRF vulnerability in widget params handler, corrects privacy policy URL, includes plugin source code, and documents all external services. = 0.8.0 = Recommended update. Includes rate-limit handling, API key security hardening, WordPress.org compliance improvements, and simplification of sync behaviour (fixed 5-second delay, background sync removed). = 0.7.0 = Recommended update. Fixes sync reliability issues, encoding problems, and improves the content type add/remove flow. = 0.6.0 = Bug fix release. Resolves infinite sync loop, title encoding issues, and improves expiration handling. = 0.5.0 = Initial public release of the Sideconvo WordPress plugin.