Development - #169
Draft
HardeepAsrani wants to merge 61 commits into
Draft
Conversation
…/phpstan/phpstan-2.2.1 chore(deps-dev): bump phpstan/phpstan from 2.1.31 to 2.2.1
Bumps [codeinwp/themeisle-sdk](https://github.com/Codeinwp/themeisle-sdk) from 3.3.51 to 3.3.54. - [Release notes](https://github.com/Codeinwp/themeisle-sdk/releases) - [Changelog](https://github.com/Codeinwp/themeisle-sdk/blob/v3.3.54/CHANGELOG.md) - [Commits](Codeinwp/themeisle-sdk@v3.3.51...v3.3.54) --- updated-dependencies: - dependency-name: codeinwp/themeisle-sdk dependency-version: 3.3.52 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @wordpress/scripts from 27.9.0 to 32.5.0 Bumps [@wordpress/scripts](https://github.com/WordPress/gutenberg/tree/HEAD/packages/scripts) from 27.9.0 to 32.5.0. - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/scripts/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/scripts@32.5.0/packages/scripts) --- updated-dependencies: - dependency-name: "@wordpress/scripts" dependency-version: 31.2.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * fix: migrate eslint config to flat format Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: openai-code-agent[bot] <242516109+Codex@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.1.17 to 4.3.1. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/tailwindcss) --- updated-dependencies: - dependency-name: tailwindcss dependency-version: 4.1.18 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [filenamify](https://github.com/sindresorhus/filenamify) from 4.3.0 to 7.0.2. - [Release notes](https://github.com/sindresorhus/filenamify/releases) - [Commits](sindresorhus/filenamify@v4.3.0...v7.0.2) --- updated-dependencies: - dependency-name: filenamify dependency-version: 7.0.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 19.0.5 to 25.0.5. - [Release notes](https://github.com/semantic-release/semantic-release/releases) - [Commits](semantic-release/semantic-release@v19.0.5...v25.0.5) --- updated-dependencies: - dependency-name: semantic-release dependency-version: 25.0.2 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….3 (#137) * chore(deps-dev): bump szepeviktor/phpstan-wordpress from 2.0.2 to 2.0.3 Bumps [szepeviktor/phpstan-wordpress](https://github.com/szepeviktor/phpstan-wordpress) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/szepeviktor/phpstan-wordpress/releases) - [Commits](szepeviktor/phpstan-wordpress@v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: szepeviktor/phpstan-wordpress dependency-version: 2.0.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * fix: resolve phpstan issues after phpstan-wordpress bump Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: openai-code-agent[bot] <242516109+Codex@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
Bumps [cssnano](https://github.com/cssnano/cssnano) from 7.1.1 to 8.0.2. - [Release notes](https://github.com/cssnano/cssnano/releases) - [Commits](https://github.com/cssnano/cssnano/compare/cssnano@7.1.1...cssnano@8.0.2) --- updated-dependencies: - dependency-name: cssnano dependency-version: 7.1.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) Bumps [wp-coding-standards/wpcs](https://github.com/WordPress/WordPress-Coding-Standards) from 3.2.0 to 3.3.0. - [Release notes](https://github.com/WordPress/WordPress-Coding-Standards/releases) - [Changelog](https://github.com/WordPress/WordPress-Coding-Standards/blob/develop/CHANGELOG.md) - [Commits](WordPress/WordPress-Coding-Standards@3.2.0...3.3.0) --- updated-dependencies: - dependency-name: wp-coding-standards/wpcs dependency-version: 3.3.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [grunt-version](https://github.com/kswedberg/grunt-version) from 3.0.1 to 3.0.2. - [Commits](kswedberg/grunt-version@3.0.1...3.0.2) --- updated-dependencies: - dependency-name: grunt-version dependency-version: 3.0.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.5.0 to 4.5.1. - [Release notes](https://github.com/chartjs/Chart.js/releases) - [Commits](chartjs/Chart.js@v4.5.0...v4.5.1) --- updated-dependencies: - dependency-name: chart.js dependency-version: 4.5.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [replace-in-file](https://github.com/adamreisnz/replace-in-file) from 7.2.0 to 8.4.0. - [Release notes](https://github.com/adamreisnz/replace-in-file/releases) - [Changelog](https://github.com/adamreisnz/replace-in-file/blob/main/CHANGELOG.md) - [Commits](adamreisnz/replace-in-file@v7.2.0...v8.4.0) --- updated-dependencies: - dependency-name: replace-in-file dependency-version: 8.4.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @wordpress/env from 10.32.0 to 11.9.0 Bumps [@wordpress/env](https://github.com/WordPress/gutenberg/tree/HEAD/packages/env) from 10.32.0 to 11.9.0. - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/env/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/env@11.9.0/packages/env) --- updated-dependencies: - dependency-name: "@wordpress/env" dependency-version: 10.37.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * test(e2e): support wp-json and rest_route API URLs in Playwright mocks Agent-Logs-Url: https://github.com/Codeinwp/hyve-lite/sessions/9d6041cb-f96b-48c9-8f3b-af3f9d4f985b Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: openai-code-agent[bot] <242516109+Codex@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
* fix: improve chat button accessibility * test(e2e): support wp-json and rest_route URL patterns Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> * test(e2e): target floating chat open button by stable selector Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Co-authored-by: openai-code-agent[bot] <242516109+Codex@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…riant (#170) * Initial plan * fix: show distinct placeholder for chat bubble block Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan-phar-composer-source) from 2.2.2 to 2.2.3. - [Commits](https://github.com/phpstan/phpstan-phar-composer-source/commits) --- updated-dependencies: - dependency-name: phpstan/phpstan dependency-version: 2.2.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.3.1 to 4.3.2. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/tailwindcss) --- updated-dependencies: - dependency-name: tailwindcss dependency-version: 4.3.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.15 to 8.5.16. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.15...8.5.16) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.16 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [grunt](https://github.com/gruntjs/grunt) from 1.6.1 to 1.6.2. - [Release notes](https://github.com/gruntjs/grunt/releases) - [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG) - [Commits](gruntjs/grunt@v1.6.1...v1.6.2) --- updated-dependencies: - dependency-name: grunt dependency-version: 1.6.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@wordpress/env](https://github.com/WordPress/gutenberg/tree/HEAD/packages/env) from 11.9.0 to 11.10.0. - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/env/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/blocks@11.10.0/packages/env) --- updated-dependencies: - dependency-name: "@wordpress/env" dependency-version: 11.10.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@wordpress/icons](https://github.com/WordPress/gutenberg/tree/HEAD/packages/icons) from 10.32.0 to 15.1.0. - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/icons/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/v15.1.0/packages/icons) --- updated-dependencies: - dependency-name: "@wordpress/icons" dependency-version: 15.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
… Base (#179) Private posts were excluded from the Add Data list because the listing and re-index queries filtered to the 'publish' status only. Include the 'private' status so private posts can be added and stay in sync when edited. (Password-protected posts already matched 'publish' and were addable.) Because added content is surfaced to any chat visitor regardless of the post's original visibility, adding a private or password-protected post now requires an explicit confirmation.
Surface whether the saved OpenAI API key is connected, mirroring the License field's status feedback. Previously saving a key gave no visual confirmation that it was valid and working. - Add Main::is_api_key_connected(), exposed as `isApiKeyConnected` in the dashboard options data. A key counts as connected when it is set and the last stored OpenAI error is not one that invalidates the key itself (transient errors such as rate limiting stay connected). - Show a "Connected" / "Not connected" indicator under the API Key field in Advanced settings, and hide the "Get an API key" link once connected. - Add unit tests for the connection helper. Part of Codeinwp/hyve#208
Add Hyve's data-processing disclosure to the core Privacy Policy guide (Settings -> Privacy) via wp_add_privacy_policy_content(). Covers that visitor messages are stored on the site and sent to OpenAI (third party, US) for moderation, embeddings and completion. When Qdrant is connected, an additional line discloses that the message embedding is sent to Qdrant for lookup. Available in Lite.
Titles from get_the_title() pass through the the_title filter (wptexturize/convert_chars), which emits HTML entities such as – for dashes. These were rendered raw in the add data field and also stored in the embedding text. Decode them with html_entity_decode() so the UI and embeddings get clean text.
* feat: control chat visibility from the dashboard Replace the single Enable/Disable toggle with visibility rules on the dashboard: show on all pages, only on selected content, everywhere except selected content, or not automatically (block/shortcode only). Selected content is matched by URL path using contains/matches operators. The legacy chat_enabled flag is migrated to the new display_mode setting via the SDK migrator, with a read-time fallback for installs that have not migrated yet. * fix: render inline chat regardless of display mode and show its welcome message
Bumps [@wordpress/icons](https://github.com/WordPress/gutenberg/tree/HEAD/packages/icons) from 10.32.0 to 15.1.0. - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/icons/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/v15.1.0/packages/icons) --- updated-dependencies: - dependency-name: "@wordpress/icons" dependency-version: 15.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan-phar-composer-source) from 2.2.2 to 2.2.3. - [Commits](https://github.com/phpstan/phpstan-phar-composer-source/commits) --- updated-dependencies: - dependency-name: phpstan/phpstan dependency-version: 2.2.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ment/wordpress/env-11.10.0 chore(deps-dev): bump @wordpress/env from 11.9.0 to 11.10.0
Bumps [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) from 4.1.17 to 4.3.2. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-postcss) --- updated-dependencies: - dependency-name: "@tailwindcss/postcss" dependency-version: 4.3.2 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ment/tailwindcss/postcss-4.3.2 chore(deps-dev): bump @tailwindcss/postcss from 4.1.17 to 4.3.2
Bumps [@wordpress/scripts](https://github.com/WordPress/gutenberg/tree/HEAD/packages/scripts) from 32.5.0 to 32.6.0. - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/scripts/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/scripts@32.6.0/packages/scripts) --- updated-dependencies: - dependency-name: "@wordpress/scripts" dependency-version: 32.6.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ment/wordpress/scripts-32.6.0 chore(deps-dev): bump @wordpress/scripts from 32.5.0 to 32.6.0
HardeepAsrani
force-pushed
the
development
branch
from
July 4, 2026 01:40
0d0e570 to
31de6a9
Compare
Improve OpenAI error handling and surfacing and route ingestion sources through the shared pipeline.
* feat: modernize chat widget and add customization options - Redesign the frontend chat widget (header with avatar/name/status, modern bubbles, pill input, refined launcher, entrance animation). - Add a global "Chat Sound" toggle and a per-visitor mute control in the chat menu; remove the open/close click sound. - Add a "Message Timestamp" show/hide toggle. - Show the welcome message and suggested questions on first load of the inline chat block. - Inline the chat-button SVGs server-side (no runtime fetch / icon flash) and use a bundled SVG as the default icon instead of an emoji. - Keep the typing dots, suggestion chips, and menu legible on similar colors, and theme the menu from the chat colors. - Resolve outstanding PHPStan issues (gmdate guard, require_once ignore). * refactor: match Appearance colors upsell to Pro tile design --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
The embedding vector was built from post_content alone, so a knowledge base entry whose question lived in the title — the Q&A custom data pattern — was never matched semantically. Prepend the title to the text sent for embedding, matching the token budget Tokenizer::tokenize() already reserves for it. Existing entries benefit after a re-index (the embedding is regenerated on add/update). Closes Codeinwp/hyve#228 Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
* feat: remove moderation threshold settings The per-category moderation sliders only ever loosened OpenAI's built-in moderation and were effectively unused. Remove the setting, its validation, and the settings tab. Moderation still runs on chat input and knowledge base imports using default thresholds, now tunable with the hyve_moderation_threshold filter. The Failed Moderation list and per-item override are unchanged. * fix: show a distinct message when a chat message is flagged A moderation block returned the generic "please try again" error, which implied a temporary issue and invited the user to resend flagged input. Return a content_flagged code from the chat endpoint and show a dedicated message for it, keeping the try-again message for genuine technical failures. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
Add the Hyve Lite pieces the Pro document importer builds on, plus related improvements surfaced while building it: - OpenAI::detect_sensitive_data() to flag personal data before content is stored, and batch the moderation endpoint (one request per group of chunks instead of one request per chunk). - Shared BaseAPI::query_page() so list endpoints detect further pages without a found-rows count; fixes a stale "Load more" when the total exceeds a page. - PostsTable renders a caller-provided status per row while staying generic, used by the Pro import queue. - A Documents source tile in the Knowledge Base (Premium upsell in free). Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
* feat: modernize chat widget and add customization options - Redesign the frontend chat widget (header with avatar/name/status, modern bubbles, pill input, refined launcher, entrance animation). - Add a global "Chat Sound" toggle and a per-visitor mute control in the chat menu; remove the open/close click sound. - Add a "Message Timestamp" show/hide toggle. - Show the welcome message and suggested questions on first load of the inline chat block. - Inline the chat-button SVGs server-side (no runtime fetch / icon flash) and use a bundled SVG as the default icon instead of an emoji. - Keep the typing dots, suggestion chips, and menu legible on similar colors, and theme the menu from the chat colors. - Resolve outstanding PHPStan issues (gmdate guard, require_once ignore). * feat: stream chat responses with automatic poll fallback Reveal the assistant's reply progressively over Server-Sent Events, with a graceful fallback to the existing background + polling flow on hosts that buffer or cannot stream, so the bot keeps working everywhere. - Add a custom admin-ajax streaming endpoint (Stream) that proxies OpenAI's stream to the browser; the API key stays server-side. - Share a single prompt, JSON schema and response interpreter across the streaming and poll paths so replies never diverge by transport. - The widget tries streaming first and falls back to polling when no event arrives in time; the outcome is cached per browser and re-probed after 24h. - Decode the streamed `response` field incrementally via json_decode so escapes and surrogate-pair emoji render correctly while streaming. - Preserve existing contracts: moderation stays up front, hyve_chat_request and hyve_chat_response fire once per reply, analytics unaffected. Closes Codeinwp/hyve#183 * feat: modernize chat widget and add customization options - Redesign the frontend chat widget (header with avatar/name/status, modern bubbles, pill input, refined launcher, entrance animation). - Add a global "Chat Sound" toggle and a per-visitor mute control in the chat menu; remove the open/close click sound. - Add a "Message Timestamp" show/hide toggle. - Show the welcome message and suggested questions on first load of the inline chat block. - Inline the chat-button SVGs server-side (no runtime fetch / icon flash) and use a bundled SVG as the default icon instead of an emoji. - Keep the typing dots, suggestion chips, and menu legible on similar colors, and theme the menu from the chat colors. - Resolve outstanding PHPStan issues (gmdate guard, require_once ignore). * fix: message count not invalidating after each message * fix: resolve remaining Test JS lint issues Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> Co-authored-by: openai-code-agent[bot] <242516109+Codex@users.noreply.github.com>
* feat: modernize chat widget and add customization options - Redesign the frontend chat widget (header with avatar/name/status, modern bubbles, pill input, refined launcher, entrance animation). - Add a global "Chat Sound" toggle and a per-visitor mute control in the chat menu; remove the open/close click sound. - Add a "Message Timestamp" show/hide toggle. - Show the welcome message and suggested questions on first load of the inline chat block. - Inline the chat-button SVGs server-side (no runtime fetch / icon flash) and use a bundled SVG as the default icon instead of an emoji. - Keep the typing dots, suggestion chips, and menu legible on similar colors, and theme the menu from the chat colors. - Resolve outstanding PHPStan issues (gmdate guard, require_once ignore). * feat: stream chat responses with automatic poll fallback Reveal the assistant's reply progressively over Server-Sent Events, with a graceful fallback to the existing background + polling flow on hosts that buffer or cannot stream, so the bot keeps working everywhere. - Add a custom admin-ajax streaming endpoint (Stream) that proxies OpenAI's stream to the browser; the API key stays server-side. - Share a single prompt, JSON schema and response interpreter across the streaming and poll paths so replies never diverge by transport. - The widget tries streaming first and falls back to polling when no event arrives in time; the outcome is cached per browser and re-probed after 24h. - Decode the streamed `response` field incrementally via json_decode so escapes and surrogate-pair emoji render correctly while streaming. - Preserve existing contracts: moderation stays up front, hyve_chat_request and hyve_chat_response fire once per reply, analytics unaffected. Closes Codeinwp/hyve#183 * feat: modernize chat widget and add customization options - Redesign the frontend chat widget (header with avatar/name/status, modern bubbles, pill input, refined launcher, entrance animation). - Add a global "Chat Sound" toggle and a per-visitor mute control in the chat menu; remove the open/close click sound. - Add a "Message Timestamp" show/hide toggle. - Show the welcome message and suggested questions on first load of the inline chat block. - Inline the chat-button SVGs server-side (no runtime fetch / icon flash) and use a bundled SVG as the default icon instead of an emoji. - Keep the typing dots, suggestion chips, and menu legible on similar colors, and theme the menu from the chat colors. - Resolve outstanding PHPStan issues (gmdate guard, require_once ignore). * feat: add reply-data filter and generic suggestion rendering Add the hyve_chat_reply_data filter on both the streaming and poll reply paths so extensions can attach extra data to a reply, and generalize the frontend suggestion rendering into renderSuggestions so per-turn chips reuse the predefined-questions UI. Chips are built with textContent to avoid markup injection and scrolled into view after the reply lands. Part of Codeinwp/hyve#184. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
* feat: modernize chat widget and add customization options - Redesign the frontend chat widget (header with avatar/name/status, modern bubbles, pill input, refined launcher, entrance animation). - Add a global "Chat Sound" toggle and a per-visitor mute control in the chat menu; remove the open/close click sound. - Add a "Message Timestamp" show/hide toggle. - Show the welcome message and suggested questions on first load of the inline chat block. - Inline the chat-button SVGs server-side (no runtime fetch / icon flash) and use a bundled SVG as the default icon instead of an emoji. - Keep the typing dots, suggestion chips, and menu legible on similar colors, and theme the menu from the chat colors. - Resolve outstanding PHPStan issues (gmdate guard, require_once ignore). * feat: stream chat responses with automatic poll fallback Reveal the assistant's reply progressively over Server-Sent Events, with a graceful fallback to the existing background + polling flow on hosts that buffer or cannot stream, so the bot keeps working everywhere. - Add a custom admin-ajax streaming endpoint (Stream) that proxies OpenAI's stream to the browser; the API key stays server-side. - Share a single prompt, JSON schema and response interpreter across the streaming and poll paths so replies never diverge by transport. - The widget tries streaming first and falls back to polling when no event arrives in time; the outcome is cached per browser and re-probed after 24h. - Decode the streamed `response` field incrementally via json_decode so escapes and surrogate-pair emoji render correctly while streaming. - Preserve existing contracts: moderation stays up front, hyve_chat_request and hyve_chat_response fire once per reply, analytics unaffected. Closes Codeinwp/hyve#183 * feat: support private and password-protected content in the Knowledge Base Private posts were excluded from the Add Data list because the listing and re-index queries filtered to the 'publish' status only. Include the 'private' status so private posts can be added and stay in sync when edited. (Password-protected posts already matched 'publish' and were addable.) Because added content is surfaced to any chat visitor regardless of the post's original visibility, adding a private or password-protected post now requires an explicit confirmation. * feat: prototype source link in chat responses Append a compact source citation to chat answers, shown only for publicly accessible sources. Adds a Settings toggle and a hyve_chat_source_link filter for source-type-specific resolution. * feat: modernize chat widget and add customization options - Redesign the frontend chat widget (header with avatar/name/status, modern bubbles, pill input, refined launcher, entrance animation). - Add a global "Chat Sound" toggle and a per-visitor mute control in the chat menu; remove the open/close click sound. - Add a "Message Timestamp" show/hide toggle. - Show the welcome message and suggested questions on first load of the inline chat block. - Inline the chat-button SVGs server-side (no runtime fetch / icon flash) and use a bundled SVG as the default icon instead of an emoji. - Keep the typing dots, suggestion chips, and menu legible on similar colors, and theme the menu from the chat colors. - Resolve outstanding PHPStan issues (gmdate guard, require_once ignore). * feat: show up to three relevance-ranked sources as numbered citations * fix: remove duplicate settings validators causing PHPStan/PHPCS failures Agent-Logs-Url: https://github.com/Codeinwp/hyve-lite/sessions/da19ee32-5f21-4b9c-9cb2-49c699cee9cf Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> Co-authored-by: openai-code-agent[bot] <242516109+Codex@users.noreply.github.com>
* feat: modernize chat widget and add customization options - Redesign the frontend chat widget (header with avatar/name/status, modern bubbles, pill input, refined launcher, entrance animation). - Add a global "Chat Sound" toggle and a per-visitor mute control in the chat menu; remove the open/close click sound. - Add a "Message Timestamp" show/hide toggle. - Show the welcome message and suggested questions on first load of the inline chat block. - Inline the chat-button SVGs server-side (no runtime fetch / icon flash) and use a bundled SVG as the default icon instead of an emoji. - Keep the typing dots, suggestion chips, and menu legible on similar colors, and theme the menu from the chat colors. - Resolve outstanding PHPStan issues (gmdate guard, require_once ignore). * feat: stream chat responses with automatic poll fallback Reveal the assistant's reply progressively over Server-Sent Events, with a graceful fallback to the existing background + polling flow on hosts that buffer or cannot stream, so the bot keeps working everywhere. - Add a custom admin-ajax streaming endpoint (Stream) that proxies OpenAI's stream to the browser; the API key stays server-side. - Share a single prompt, JSON schema and response interpreter across the streaming and poll paths so replies never diverge by transport. - The widget tries streaming first and falls back to polling when no event arrives in time; the outcome is cached per browser and re-probed after 24h. - Decode the streamed `response` field incrementally via json_decode so escapes and surrogate-pair emoji render correctly while streaming. - Preserve existing contracts: moderation stays up front, hyve_chat_request and hyve_chat_response fire once per reply, analytics unaffected. Closes Codeinwp/hyve#183 * feat: modernize chat widget and add customization options - Redesign the frontend chat widget (header with avatar/name/status, modern bubbles, pill input, refined launcher, entrance animation). - Add a global "Chat Sound" toggle and a per-visitor mute control in the chat menu; remove the open/close click sound. - Add a "Message Timestamp" show/hide toggle. - Show the welcome message and suggested questions on first load of the inline chat block. - Inline the chat-button SVGs server-side (no runtime fetch / icon flash) and use a bundled SVG as the default icon instead of an emoji. - Keep the typing dots, suggestion chips, and menu legible on similar colors, and theme the menu from the chat colors. - Resolve outstanding PHPStan issues (gmdate guard, require_once ignore). * feat: add privacy policy notice to chat interface Adds an optional, dismissible privacy notice above the chat input that links to the site's Privacy Policy page. Off by default, toggled from Settings > General, and hidden when no policy page is set (with an admin warning). The notice is theme-aware and, in the free version, replaces the 'Powered by Hyve' credit until dismissed. Dismissal (via the close button or sending a message) is remembered per browser. Includes PHP unit and Playwright e2e coverage. * fix: clear frontend lint errors Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
Retrieval embedded only the current message, so follow-up questions with no topic keywords matched nothing and returned the fallback. Blend the last few turns of the thread into the text used for the retrieval embedding so the topic carries into the search. Only the retrieval query changes; the message sent to the model is unchanged. Tunable via the hyve_retrieval_history_count, hyve_retrieval_history_message_length and hyve_retrieval_query filters. Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
GPT-3.5 doesn't support the structured-output (json_schema) response format Hyve requires, so it errored on every chat. Remove it and add the GPT-5.4 family (5.4 / 5.4-mini / 5.4-nano) alongside the existing GPT-4.1 and GPT-4o families. Every listed model is verified against the live API to support structured outputs plus the temperature/top_p controls. Switch the model picker to a compact dropdown (the radio list grew too tall), surfacing the selected model's description as help text. Existing sites set to GPT-3.5 fall back to GPT-4o mini (resolve_chat_model), and a still-valid but no-longer-listed saved model is preserved in the picker. Closes Codeinwp/hyve#221
Contributor
🌍 i18n String Review Report📊 Summary
➕ Added Strings (334) - Click to expand
➖ Removed Strings (123) - Click to expand
|
Add two custom capabilities so support staff can review conversations without full dashboard access: - hyve_read_messages: view the Messages page and read conversations - hyve_manage_messages: delete conversations and export them Administrators receive both automatically; other roles can be granted either capability with a role-editor plugin or WP_Role::add_cap(). Also register every dashboard section as a WP submenu that deep-links into the app. Messages is gated on hyve_read_messages, the rest on manage_options, so a read-only user only sees Messages and the app opens in a messages-only view. The threads REST endpoints are gated per action (read for listing, manage for deleting).
* feat: add custom system prompt for the assistant * fix: make custom system prompt reliably override the built-in tone * fix: set translations workflow permissions Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
* chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * fix: align App.js indentation Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> * wip * wip * fix: qa issues * chore: gate pro features --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
* chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * fix: align App.js indentation Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> * wip * wip * chore: add about us page --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
* chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * feat: proactive chat teaser for the widget Show a configurable invite bubble next to the closed launcher when a trigger fires: time on page, exit intent (desktop only), or scroll depth. The teaser is UI only, so no thread or API call happens until the visitor sends a message. It shows at most once per session, never returns after dismissal, and is suppressed for open windows, active conversations, inline placements, and the admin preview. It follows the assistant background color with is-dark contrast, plays the chat sound where autoplay allows, and announces itself via role=status without moving focus. The Chat Behavior screen gets a pro-gated Proactive message card: trigger select (Disabled by default), per-trigger setting, and an invite message field with a preview button that drives the floating admin preview widget through the new previewTeaser method. * test: cover the locked proactive message card on free * fix: align App.js indentation Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> * wip * wip * fix: qa issues * chore: gate pro features * chore: gate pro features * chore: gate pro features --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
* chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * chore: save progress * feat: encrypt sensitive settings * fix: resolve merge conflicts with origin/development Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HardeepAsrani <2649903+HardeepAsrani@users.noreply.github.com>
Bumps [codeinwp/themeisle-sdk](https://github.com/Codeinwp/themeisle-sdk) from 3.3.54 to 3.3.57. - [Release notes](https://github.com/Codeinwp/themeisle-sdk/releases) - [Changelog](https://github.com/Codeinwp/themeisle-sdk/blob/v3.3.57/CHANGELOG.md) - [Commits](Codeinwp/themeisle-sdk@v3.3.54...v3.3.57) --- updated-dependencies: - dependency-name: codeinwp/themeisle-sdk dependency-version: 3.3.57 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) Bumps [wp-coding-standards/wpcs](https://github.com/WordPress/WordPress-Coding-Standards) from 3.3.0 to 3.4.0. - [Release notes](https://github.com/WordPress/WordPress-Coding-Standards/releases) - [Changelog](https://github.com/WordPress/WordPress-Coding-Standards/blob/develop/CHANGELOG.md) - [Commits](WordPress/WordPress-Coding-Standards@3.3.0...3.4.0) --- updated-dependencies: - dependency-name: wp-coding-standards/wpcs dependency-version: 3.4.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan-phar-composer-source) from 2.2.3 to 2.2.5. - [Commits](https://github.com/phpstan/phpstan-phar-composer-source/commits) --- updated-dependencies: - dependency-name: phpstan/phpstan dependency-version: 2.2.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fix: add UTM params to copyright link
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked issues
This release will close the following issues once merged:
Public changelog