iachat/app/javascript/dashboard/composables
Aakash Bakhle 101eca3003
feat: add captain editor events (#13524)
## Description

Adds missing analytics instrumentation for the editor AI funnel so we
can measure end-to-end usage and outcome quality.

### What was added

- Captain: Editor AI menu opened
- Captain: Generation failed
- Captain: AI-assisted message sent

### Behavior covered

- Tracks AI button click + menu open from both entry points:
    - top panel sparkle button
    - inline editor copilot button
- Tracks generation failures (initial + follow-up stages).
- Tracks whether accepted AI content was sent as-is or edited before
send.

### Notes

- Applies to editor Captain accept/send flow
(rewrite/summarize/reply_suggestion + follow-ups).
- Does not change Copilot sidebar flow instrumentation.

## Type of change

- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality not to work as expected)
- [ ] This change requires a documentation update

## How Has This Been Tested?

### Manual verification steps

<img width="1906" height="832" alt="image"
src="https://github.com/user-attachments/assets/f0ade43b-aa8d-41be-8ca2-20a091a81f60"
/>

<img width="828" height="280" alt="image"
src="https://github.com/user-attachments/assets/be76219e-fb61-4a6e-bff5-dc085b0a3cc9"
/>

<img width="415" height="147" alt="image"
src="https://github.com/user-attachments/assets/36802c5c-33a7-49ed-bf7e-f0b02d86dccc"
/>

<img width="2040" height="516" alt="image"
src="https://github.com/user-attachments/assets/74b95288-bc86-4312-a282-14211ae8f25c"
/>


1. Open a conversation with Captain tasks enabled.
2. Click AI button in top panel and inline editor.
3. Confirm analytics events fire for:
    - AI menu opened
4. Run an AI action and force a failure scenario (or empty response
path) and confirm generation-failed event.
5. Accept AI output, then:
    - send without changes -> editedBeforeSend: false
    - edit then send -> editedBeforeSend: true

## Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2026-02-17 13:26:56 +05:30
..
captain feat: add captain editor events (#13524) 2026-02-17 13:26:56 +05:30
chatlist feat: Conversation workflows(EE) (#13040) 2026-01-27 11:36:20 +04:00
commands feat: new Captain Editor (#13235) 2026-01-21 13:39:07 +05:30
spec feat: Conversation workflows(EE) (#13040) 2026-01-27 11:36:20 +04:00
utils feat: new Captain Editor (#13235) 2026-01-21 13:39:07 +05:30
emitter.js feat: Reconnect logic (#9453) 2024-06-03 15:54:19 +05:30
index.js chore: fix circleci on vite build (#10214) 2024-10-07 15:27:41 +05:30
loadWithRetry.js feat: add retry loadWithRetry composable (#12873) 2025-11-20 19:40:20 +05:30
store.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
useAccount.js feat: auto resolve label option and fixes (#11541) 2025-06-04 14:53:24 +05:30
useAdmin.js feat: Replace alertMixin usage with useAlert (#9793) 2024-07-23 16:41:11 +05:30
useAgentsList.js fix: Translate "None" option in agent assignment dropdown (#11060) 2025-03-11 14:49:27 -07:00
useAutomation.js fix: Update inconsistent behaviour of create and edit automation rules (#10197) 2024-10-04 08:06:36 -07:00
useAutomationValues.js chore(docs): Fix typos in some files (#12817) 2025-11-07 07:57:37 -08:00
useCallSession.js feat: Voice Channel (#11602) 2025-12-19 12:41:33 -08:00
useCaptain.js feat: add captain editor events (#13524) 2026-02-17 13:26:56 +05:30
useConfig.js feat: Rewrite configMixin to a composable (#9921) 2024-08-14 12:56:30 +05:30
useConversationLabels.js feat: Rewrite conversation/labelMixin to a composable (#9936) 2024-08-12 17:41:12 +05:30
useConversationRequiredAttributes.js feat: Conversation workflows(EE) (#13040) 2026-01-27 11:36:20 +04:00
useCopilotReply.js feat: add captain editor events (#13524) 2026-02-17 13:26:56 +05:30
useDetectKeyboardLayout.js feat: Rewrite keyboardEventListener mixin to a composable (#9831) 2024-08-05 18:59:47 +05:30
useEditableAutomation.js fix: Update inconsistent behaviour of create and edit automation rules (#10197) 2024-10-04 08:06:36 -07:00
useFileUpload.js feat: allow configuring attachment upload limit (#12835) 2025-11-17 14:03:08 -08:00
useFontSize.js feat: Agent language settings (#11222) 2025-09-09 14:27:36 +05:30
useImageZoom.js chore: Improvements in image attachment viewer (#11040) 2025-03-18 14:01:18 +05:30
useImpersonation.js feat: Prevent saving preferences and status when impersonating (#11164) 2025-05-20 17:34:30 -07:00
useInbox.js feat: TikTok channel (#12741) 2025-12-17 07:54:50 -08:00
useIntegrationHook.js chore: Repalce Hook Mixin with useHook composable [CW-3454] (#9994) 2024-08-22 16:48:02 +05:30
useKeyboardEvents.js refactor: useKeyboardEvents composable (#9959) 2024-08-22 16:40:55 +05:30
useKeyboardNavigableList.js refactor: useKeyboardEvents composable (#9959) 2024-08-22 16:40:55 +05:30
useLabelSuggestions.js feat: check if label suggestion is enabled in hooks (#13331) 2026-01-21 15:11:41 +05:30
useLiveRefresh.js feat: Allow users to see heatmap for last 30 days (#10848) 2025-02-19 14:54:15 -08:00
useMacros.js fix: Translate Priority and Messages types in Automations and Macros (#11741) 2025-07-08 12:40:40 +05:30
usePolicy.js feat: show articles in the list only if feature is enabled (#11607) 2025-05-29 14:19:35 +05:30
useReportMetrics.js fix: stale report value shown if summary fetch breaks (#11270) 2025-04-15 20:18:06 +05:30
useTransformKeys.js feat: integrate new bubbles (#10550) 2024-12-19 18:41:55 +05:30
useTranslations.js fix: Rendering of translations based on the user's locale (#13211) 2026-01-08 18:37:42 -08:00
useUISettings.js feat: allow quoted email thread in reply (#12545) 2025-09-30 17:47:09 +05:30