Fix: Comparison “View Full Details” links no longer show the 🔗 emoji — rendered as plain markdown links.
Fix: Implicit comparison pattern expanded — “which one is good?”, “whic one is better?” (typo), “should I buy”, “help me choose/decide/pick” now all trigger context-based comparison.
1.1.13
Fix: “which is better” with no product names now uses the two products shown in context instead of falling through to the single-product handler.
Fix: Comparison price for variable products no longer shows screen-reader span text — uses a clean price helper that formats min/max range directly from WooCommerce price data.
1.1.12
Fix: Comparison now picks the most relevant product per side using title keyword scoring — “Electromax cooler” now correctly selects Electromax Room Cooler over Electromax Sun Heater even when the heater has a lower product ID.
1.1.11
Fix: Comparison now shows exactly one product per side — takes only the top search result for each name instead of merging all results, preventing 6-product comparisons when a brand has multiple matching items.
1.1.10
Fix: Comparison responses now show a formatted text comparison (name, price, description, View Full Details link) instead of product cards with Add to Cart buttons.
1.1.09
Fix: Comparison queries (“which is better X or Y”) now correctly show both products — searches each name separately instead of combining into one AND-query that WordPress search could never match across two products.
1.1.08
Fix: Return status detection now matches messages with typos — “returen” (for “returned”) and “recvied” (for “received”) now correctly trigger the return status handler using prefix-matching patterns (returw+, recw+) instead of requiring exact spelling.
1.1.04
Fix: “thanks”, “thank you”, “thx”, “ty”, “cheers” now always return a friendly acknowledgement — added early-exit in process_query() and explicit thanks case in generate_response() so the message can never fall through to a search-failure response.
1.1.03
Fix: “thanks/ok/great” exact-match messages no longer misfire as information-intent queries — added conversational exclusion pattern to check_information_intent.
Fix: “how are you” now always routes to how_are_you conversation handler — reordered check_conversation_intent patterns so how_are_you is checked before greeting.
Fix: “thx” and “ty” now recognised as thanks in the conversation handler.
Fix: handle_explicit_comparison now passes an empty context to product search so stale previous-session products don’t pollute comparison results.
Fix: is_discount_query now matches “sale items”, “items on sale”, and “products on sale”.
Fix: “any other options” as a standalone message now routes to browse-more instead of variant-query — removed “options” from is_variant_query and added it to is_browse_more_request.
Fix: New is_product_count_query and handle_product_count_query methods added — “how many products do you have?” now returns an accurate live count.
Fix: New is_order_status_query and handle_order_status_query methods added — order-tracking queries are now intercepted before the purchase-intent step and directed to My Account / Contact.
Fix: New get_return_status_info method and return_status detection added — “where is my return/refund?” returns a direct contact-us response instead of the full return policy.
Fix: detect_price_filter now matches “budget of X”, “my budget is X”, “I have a budget of X”, and “spending limit of X”.
Fix: dropped_brand_note now only fires for proper nouns (keyword starts with a capital letter in the original message) — generic words like “cheap” or “best” no longer produce false “we don’t carry X” notes.
Fix: No-results messages now use “that product” instead of a quoted keyword when the keyword is too short (≤3 chars) or vowel-poor to read naturally in a sentence.
Fix: Product card flex content div now has min-width:0 and overflow:hidden — prevents long product names from overflowing the chat bubble.
Fix: Product card CSS — added max-width:100%, box-sizing:border-box, word-break:break-word, and responsive img rules to prevent card overflow on narrow screens.
1.1.02
Fix: Removed hardcoded “Standard delivery is 3-5 days. Returns accepted within 14 days.” from the knowledge base fallback — every store has different policies.
Fix: Return policy response now shows actual page content instead of hardcoded bullet points that assumed a specific store’s policy (defective items, unused packaging, change-of-mind shipping).
Fix: About store fallback now uses the store name dynamically instead of generic marketing copy.
Fix: Scanned entire plugin for store-specific strings — no store-specific hardcoded references found beyond the above.
1.1.01
Fix: Provider dropdown now correctly locks and Remove Key button stays visible after page refresh — fixed hasSavedKey detection in change handler to read data-has-saved-key attribute, and changed .remove() to .hide() so the Remove button is never permanently deleted from the DOM.
1.1.00
Fix: API key UI now correctly shows Remove Key button and locks the provider dropdown after page refresh — root cause was PHP not setting data-original-value on the input, so JS could not detect the saved key state after reload.
Fix: Added data-has-saved-key attribute to the key input in PHP — JS initialization now reads this directly instead of relying on trigger(‘change’) which could lose the disabled state.
1.0.99
Fix: Provider dropdown now correctly locks (disabled) on page load when a key is saved.
Fix: Remove Key and Show Key buttons now correctly appear on page load when a key is configured — JS now reads PHP-rendered data-has-key attribute instead of inferring state from masked input value.
Fix: Quick API Setup Guide now hidden on page load when any provider has a saved key.
1.0.98
Fix: Remove Key and Show Key buttons now correctly appear when an API key is saved — added explicit page-load initialisation that reads the provider from the selected option element directly, fixing a disabled-select edge case where trigger(‘change’) could leave the row hidden or buttons in the wrong state.
1.0.97
Fix: “Error saving API key” message after successful save eliminated — removed dead call to winalt_fetch_provider_models() that was deleted in the previous release but not cleaned up from the save handler, causing a PHP fatal error.
1.0.96
Fix: Removed dynamic model selector from admin UI — replaced with fixed smart defaults per provider (Groq: llama-3.3-70b-versatile, OpenAI: gpt-4o, Claude: claude-haiku-4-5, Gemini: gemini-2.0-flash).
Fix: Removed winalt_fetch_models AJAX handler and all provider model fetch functions — no longer needed.
1.0.95
Fix: Updated Gemini test and chat models from deprecated gemini-1.5-flash/pro to gemini-2.0-flash.
Fix: Gemini chat model now reads from saved option, falling back to gemini-2.0-flash.
Fix: Added support contact section to plugin description.
1.0.94
Fix: Gemini API key validation now accepts Google AI Studio keys (AQ.Ab prefix) in addition to legacy AIza keys.
Fix: Provider names updated in readme for clarity (Groq — LLaMA, ChatGPT (OpenAI), Claude (Anthropic), Gemini (Google)).
1.0.92
Fix: Corrected Tested up to version to 6.7.
Fix: Cleaned up changelog entry HTML.
Fix: Contributor username updated.
1.0.91
Fix: Removed blank gaps between product cards by hiding
extra line-break elements injected between card HTML blocks.