From 389b8640209d31a63b60019489072b22abe1e3a1 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Tue, 25 Nov 2025 14:53:27 +0530 Subject: [PATCH 1/6] fix: click event for billing support (#12942) --- .../dashboard/routes/dashboard/settings/billing/Index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/dashboard/routes/dashboard/settings/billing/Index.vue b/app/javascript/dashboard/routes/dashboard/settings/billing/Index.vue index 8ba3d69a9..4ae140120 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/billing/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/billing/Index.vue @@ -217,7 +217,7 @@ onMounted(handleBillingPageLogic); solid slate icon="i-lucide-life-buoy" - @open="onToggleChatWindow" + @click="onToggleChatWindow" > {{ $t('BILLING_SETTINGS.CHAT_WITH_US.BUTTON_TXT') }} From f0538b25ed43ca7a983f0f2c97280daf805e0673 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Tue, 25 Nov 2025 18:47:18 +0530 Subject: [PATCH 2/6] fix: Reactive assistantId issue in Captain Inbox after route changes (#12939) --- .../routes/dashboard/captain/assistants/inboxes/Index.vue | 5 +++-- .../routes/dashboard/captain/responses/Pending.vue | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/javascript/dashboard/routes/dashboard/captain/assistants/inboxes/Index.vue b/app/javascript/dashboard/routes/dashboard/captain/assistants/inboxes/Index.vue index f270af3d7..62db5e495 100644 --- a/app/javascript/dashboard/routes/dashboard/captain/assistants/inboxes/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/captain/assistants/inboxes/Index.vue @@ -13,6 +13,8 @@ import InboxPageEmptyState from 'dashboard/components-next/captain/pageComponent const store = useStore(); const dialogType = ref(''); const route = useRoute(); + +const assistantId = computed(() => route.params.assistantId); const assistantUiFlags = useMapGetter('captainAssistants/getUIFlags'); const uiFlags = useMapGetter('captainInboxes/getUIFlags'); const isFetchingAssistant = computed(() => assistantUiFlags.value.fetchingItem); @@ -47,10 +49,9 @@ const handleCreateClose = () => { selectedInbox.value = null; }; -const assistantId = Number(route.params.assistantId); onMounted(() => store.dispatch('captainInboxes/get', { - assistantId: assistantId, + assistantId: assistantId.value, }) ); diff --git a/app/javascript/dashboard/routes/dashboard/captain/responses/Pending.vue b/app/javascript/dashboard/routes/dashboard/captain/responses/Pending.vue index f702387e6..b26658f9c 100644 --- a/app/javascript/dashboard/routes/dashboard/captain/responses/Pending.vue +++ b/app/javascript/dashboard/routes/dashboard/captain/responses/Pending.vue @@ -34,7 +34,7 @@ const selectedResponse = ref(null); const deleteDialog = ref(null); const bulkDeleteDialog = ref(null); -const selectedAssistantId = Number(route.params.assistantId); +const selectedAssistantId = computed(() => route.params.assistantId); const dialogType = ref(''); const searchQuery = ref(''); const { t } = useI18n(); @@ -45,7 +45,7 @@ const backUrl = computed(() => ({ name: 'captain_assistants_responses_index', params: { accountId: route.params.accountId, - assistantId: selectedAssistantId, + assistantId: selectedAssistantId.value, }, })); @@ -125,8 +125,8 @@ const updateURLWithFilters = (page, search) => { const fetchResponses = (page = 1) => { const filterParams = { page, status: 'pending' }; - if (selectedAssistantId) { - filterParams.assistantId = selectedAssistantId; + if (selectedAssistantId.value) { + filterParams.assistantId = selectedAssistantId.value; } if (searchQuery.value) { filterParams.search = searchQuery.value; From 46eb6f39f3d43d0232b72519e7537340c3c0dada Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Tue, 25 Nov 2025 18:47:31 +0530 Subject: [PATCH 3/6] fix: Resolve z-index issue in assistant switcher (#12940) --- .../assistant/settings/AssistantBasicSettingsForm.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/assistant/settings/AssistantBasicSettingsForm.vue b/app/javascript/dashboard/components-next/captain/pageComponents/assistant/settings/AssistantBasicSettingsForm.vue index 42c075ea1..70cc75dea 100644 --- a/app/javascript/dashboard/components-next/captain/pageComponents/assistant/settings/AssistantBasicSettingsForm.vue +++ b/app/javascript/dashboard/components-next/captain/pageComponents/assistant/settings/AssistantBasicSettingsForm.vue @@ -118,6 +118,7 @@ watch( :placeholder="t('CAPTAIN.ASSISTANTS.FORM.DESCRIPTION.PLACEHOLDER')" :message="formErrors.description" :message-type="formErrors.description ? 'error' : 'info'" + class="z-0" />
From fa07b9158a10cb259b65a2e94c2b1b56229ef836 Mon Sep 17 00:00:00 2001 From: Aakash Bakhle <48802744+aakashb95@users.noreply.github.com> Date: Tue, 25 Nov 2025 19:36:47 +0530 Subject: [PATCH 4/6] fix: switch label suggestions to gpt-5-nano (#12945) --- .../lib/enterprise/integrations/openai_processor_service.rb | 2 +- lib/integrations/openai_base_service.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/enterprise/lib/enterprise/integrations/openai_processor_service.rb b/enterprise/lib/enterprise/integrations/openai_processor_service.rb index 5a98ad4c4..594c5d806 100644 --- a/enterprise/lib/enterprise/integrations/openai_processor_service.rb +++ b/enterprise/lib/enterprise/integrations/openai_processor_service.rb @@ -65,7 +65,7 @@ module Enterprise::Integrations::OpenaiProcessorService return value_from_cache if content.blank? { - model: self.class::GPT_MODEL, + model: self.class::LABEL_SUGGESTION_MODEL, messages: [ { role: 'system', diff --git a/lib/integrations/openai_base_service.rb b/lib/integrations/openai_base_service.rb index c19f605c1..116352a8f 100644 --- a/lib/integrations/openai_base_service.rb +++ b/lib/integrations/openai_base_service.rb @@ -7,7 +7,7 @@ class Integrations::OpenaiBaseService # 120000 * 4 = 480,000 characters (rounding off downwards to 400,000 to be safe) TOKEN_LIMIT = 400_000 GPT_MODEL = ENV.fetch('OPENAI_GPT_MODEL', 'gpt-4o-mini').freeze - + LABEL_SUGGESTION_MODEL = 'gpt-5-nano'.freeze ALLOWED_EVENT_NAMES = %w[rephrase summarize reply_suggestion fix_spelling_grammar shorten expand make_friendly make_formal simplify].freeze CACHEABLE_EVENTS = %w[].freeze From e635122ff6ef3f2c7b5ea458db078165d3832ebc Mon Sep 17 00:00:00 2001 From: Gabriel Jablonski Date: Tue, 25 Nov 2025 11:41:15 -0300 Subject: [PATCH 5/6] fix: add presence validation for account name (#12636) ## Description When a user tries creating a new account through the Super Admin dashboard, and they forget to fill in the account name, they're faced with an ugly error (generic "Something went wrong" on production). This PR simply adds the `validates :name, presence: true` model validation on `Account` model, which is translated as a proper error message on the Super Admin UI. --- app/models/account.rb | 1 + spec/models/account_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/app/models/account.rb b/app/models/account.rb index 7efb13bb5..06767939d 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -48,6 +48,7 @@ class Account < ApplicationRecord check_for_column: false }.freeze + validates :name, presence: true validates :domain, length: { maximum: 100 } validates_with JsonSchemaValidator, schema: SETTINGS_PARAMS_SCHEMA, diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 8504c6a04..0656870c8 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -22,6 +22,12 @@ RSpec.describe Account do describe 'length validations' do let(:account) { create(:account) } + it 'validates name presence' do + account.name = '' + account.valid? + expect(account.errors[:name]).to include("can't be blank") + end + it 'validates name length' do account.name = 'a' * 256 account.valid? From 7b20ecd27b18a84b759c76831705e6233c6b67e4 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Tue, 25 Nov 2025 21:36:13 +0530 Subject: [PATCH 6/6] chore: Revert pagination formatting and pluralization (#12954) --- .../pagination/PaginationFooter.vue | 32 +-- .../dashboard/i18n/locale/en/companies.json | 2 +- .../dashboard/i18n/locale/en/components.json | 4 +- .../dashboard/i18n/locale/en/contact.json | 2 +- .../specs/useNumberFormatter.spec.js | 240 ------------------ .../shared/composables/useNumberFormatter.js | 67 ----- 6 files changed, 15 insertions(+), 332 deletions(-) delete mode 100644 app/javascript/shared/composables/specs/useNumberFormatter.spec.js delete mode 100644 app/javascript/shared/composables/useNumberFormatter.js diff --git a/app/javascript/dashboard/components-next/pagination/PaginationFooter.vue b/app/javascript/dashboard/components-next/pagination/PaginationFooter.vue index 0a919dbbf..e58b2db86 100644 --- a/app/javascript/dashboard/components-next/pagination/PaginationFooter.vue +++ b/app/javascript/dashboard/components-next/pagination/PaginationFooter.vue @@ -1,7 +1,6 @@ @@ -99,11 +91,9 @@ const pageInfo = computed(() => { />
- {{ formatFullNumber(currentPage) }} - - - {{ pageInfo }} + {{ currentPage }} + {{ pageInfo }}