chore(web): Add selectedReposCount property to wa_chat_message_sent posthog event#941
Conversation
- Add selectedReposCount field to wa_chat_message_sent event type - Include selectedReposCount in chat message events for both streaming and blocking endpoints - This provides analytics on how many repositories users select when asking questions Co-authored-by: Brendan Kellam <brendan@sourcebot.dev>
|
Cursor Agent can help with this pull request. Just |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review infoConfiguration used: Organization UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
WalkthroughAdds a new numeric field Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@claude add a changelog |
|
Claude finished @brendan-kellam's task in 33s —— View job Changelog Entry Added
Added the following entry to
|
…sent Co-authored-by: Brendan Kellam <brendan-kellam@users.noreply.github.com>
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/web/src/app/api/(server)/chat/route.ts (1)
91-107:⚠️ Potential issue | 🟡 Minor
selectedReposCountshould use unique repos, not raw flattened length.On Line 106,
expandedRepos.lengthmay overcount when scopes overlap (e.g., repo + reposet containing same repo). Use a deduped list for telemetry.Proposed fix
const expandedRepos = (await Promise.all(selectedSearchScopes.map(async (scope) => { @@ }))).flat(); + const uniqueExpandedRepos = [...new Set(expandedRepos)]; await captureEvent('wa_chat_message_sent', { chatId: id, messageCount: messages.length, - selectedReposCount: expandedRepos.length, - ...(env.EXPERIMENT_ASK_GH_ENABLED === 'true' ? { selectedRepos: expandedRepos } : {}), + selectedReposCount: uniqueExpandedRepos.length, + ...(env.EXPERIMENT_ASK_GH_ENABLED === 'true' ? { selectedRepos: uniqueExpandedRepos } : {}), } ); @@ - selectedRepos: expandedRepos, + selectedRepos: uniqueExpandedRepos,🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/web/src/app/api/`(server)/chat/route.ts around lines 91 - 107, The telemetry currently uses expandedRepos.length which can double-count repos when scopes overlap; dedupe expandedRepos before sending telemetry: create a unique list from expandedRepos (e.g., via a Set) and use that deduped list for selectedReposCount (and for the selectedRepos payload when env.EXPERIMENT_ASK_GH_ENABLED is 'true'); update references in the captureEvent call to use the deduped list instead of expandedRepos.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/web/src/app/api/`(server)/chat/blocking/route.ts:
- Around line 164-170: The telemetry currently uses selectedRepos.length which
may count duplicates; before calling captureEvent('wa_chat_message_sent')
compute the unique repository identifiers (e.g., derive uniqueRepoValues =
Array.from(new Set(selectedRepos.map(r => r.value)))) and use
uniqueRepoValues.length for selectedReposCount, and when
env.EXPERIMENT_ASK_GH_ENABLED === 'true' send selectedRepos: uniqueRepoValues
(not the raw selectedRepos) so the metric and payload reflect deduplicated repo
names.
---
Outside diff comments:
In `@packages/web/src/app/api/`(server)/chat/route.ts:
- Around line 91-107: The telemetry currently uses expandedRepos.length which
can double-count repos when scopes overlap; dedupe expandedRepos before sending
telemetry: create a unique list from expandedRepos (e.g., via a Set) and use
that deduped list for selectedReposCount (and for the selectedRepos payload when
env.EXPERIMENT_ASK_GH_ENABLED is 'true'); update references in the captureEvent
call to use the deduped list instead of expandedRepos.
ℹ️ Review info
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
CHANGELOG.mdpackages/web/src/app/api/(server)/chat/blocking/route.tspackages/web/src/app/api/(server)/chat/route.tspackages/web/src/lib/posthogEvents.ts
selectedReposCount property to wa_chat_message_sent posthog event
Add
selectedReposCountto thewa_chat_message_sentevent to track the number of selected repositories when users ask questions.Linear Issue: SOU-575
Summary by CodeRabbit