From cbbe570f967649c6e1a06b8d49774e8a38ea672a Mon Sep 17 00:00:00 2001 From: Mike <32080293+fulltimemike@users.noreply.github.com> Date: Thu, 4 Dec 2025 16:18:02 -0500 Subject: [PATCH 1/2] Fix word count to use intelligent mode output if available --- app/utils/userMetrics.ts | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/app/utils/userMetrics.ts b/app/utils/userMetrics.ts index b56edb94..c5e147c6 100644 --- a/app/utils/userMetrics.ts +++ b/app/utils/userMetrics.ts @@ -18,14 +18,19 @@ export const getStartOfWeek = (date: Date = new Date()): Date => { */ export const calculateTotalWords = (interactions: Interaction[]): number => { return interactions.reduce((total, interaction) => { + // Use intelligent mode output if available, otherwise use transcription + const adjustedTranscript = interaction.llm_output?.adjustedTranscript?.trim() const transcript = interaction.asr_output?.transcript?.trim() - if (transcript) { - // Count words by splitting on whitespace and filtering out empty strings - const words = transcript + + const textToCount = adjustedTranscript || transcript + + if (textToCount) { + const words = textToCount .split(/\s+/) .filter((word: string) => word.length > 0) return total + words.length } + return total }, 0) } @@ -52,7 +57,9 @@ export const calculateWeeklyWordCount = ( export const calculateAverageWPM = (interactions: Interaction[]): number => { const validInteractions = interactions.filter( interaction => - interaction.asr_output?.transcript?.trim() && interaction.duration_ms, + (interaction.asr_output?.transcript?.trim() || + interaction.llm_output?.adjustedTranscript?.trim()) && + interaction.duration_ms, ) if (validInteractions.length === 0) return 0 @@ -61,10 +68,14 @@ export const calculateAverageWPM = (interactions: Interaction[]): number => { let totalDurationMs = 0 validInteractions.forEach(interaction => { + // Use intelligent mode output if available, otherwise use transcription + const adjustedTranscript = interaction.llm_output?.adjustedTranscript?.trim() const transcript = interaction.asr_output?.transcript?.trim() - if (transcript && interaction.duration_ms) { - // Count words by splitting on whitespace and filtering out empty strings - const words = transcript + + const textToCount = adjustedTranscript || transcript + + if (textToCount && interaction.duration_ms) { + const words = textToCount .split(/\s+/) .filter((word: string) => word.length > 0) totalWords += words.length From 681711c4e515ac054423373ffcf900640a328744 Mon Sep 17 00:00:00 2001 From: Mike <32080293+fulltimemike@users.noreply.github.com> Date: Thu, 4 Dec 2025 16:21:39 -0500 Subject: [PATCH 2/2] format --- app/utils/userMetrics.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/utils/userMetrics.ts b/app/utils/userMetrics.ts index c5e147c6..9c411b87 100644 --- a/app/utils/userMetrics.ts +++ b/app/utils/userMetrics.ts @@ -19,7 +19,8 @@ export const getStartOfWeek = (date: Date = new Date()): Date => { export const calculateTotalWords = (interactions: Interaction[]): number => { return interactions.reduce((total, interaction) => { // Use intelligent mode output if available, otherwise use transcription - const adjustedTranscript = interaction.llm_output?.adjustedTranscript?.trim() + const adjustedTranscript = + interaction.llm_output?.adjustedTranscript?.trim() const transcript = interaction.asr_output?.transcript?.trim() const textToCount = adjustedTranscript || transcript @@ -57,8 +58,8 @@ export const calculateWeeklyWordCount = ( export const calculateAverageWPM = (interactions: Interaction[]): number => { const validInteractions = interactions.filter( interaction => - (interaction.asr_output?.transcript?.trim() || - interaction.llm_output?.adjustedTranscript?.trim()) && + (interaction.llm_output?.adjustedTranscript?.trim() || + interaction.asr_output?.transcript?.trim()) && interaction.duration_ms, ) @@ -69,7 +70,8 @@ export const calculateAverageWPM = (interactions: Interaction[]): number => { validInteractions.forEach(interaction => { // Use intelligent mode output if available, otherwise use transcription - const adjustedTranscript = interaction.llm_output?.adjustedTranscript?.trim() + const adjustedTranscript = + interaction.llm_output?.adjustedTranscript?.trim() const transcript = interaction.asr_output?.transcript?.trim() const textToCount = adjustedTranscript || transcript