Skip to content

Commit 24a5230

Browse files
committed
fix: address code review feedback
- Remove unused seenObjects variable - Use Object.entries instead of for...in for better performance - Join arrays with spaces instead of newlines for better chat UI layout - Improve whitespace normalization to preserve code formatting
1 parent 0fd92fe commit 24a5230

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

apps/sim/lib/core/utils/format-output.ts

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ import { createLogger } from '@sim/logger'
22

33
const logger = createLogger('FormatOutput')
44

5-
// Cache for circular reference detection
6-
const seenObjects = new WeakSet()
7-
85
// Common text field names to search for
96
const TEXT_FIELD_NAMES = [
107
'text', 'content', 'message', 'body', 'value', 'result',
@@ -53,12 +50,10 @@ function deepExtractText(
5350
}
5451
}
5552

56-
// Traverse nested objects
57-
for (const key in obj) {
58-
if (obj.hasOwnProperty(key)) {
59-
const nestedText = deepExtractText(obj[key], depth + 1, visited)
60-
if (nestedText) return nestedText
61-
}
53+
// Traverse nested objects using Object.entries for better performance
54+
for (const [key, value] of Object.entries(obj)) {
55+
const nestedText = deepExtractText(value, depth + 1, visited)
56+
if (nestedText) return nestedText
6257
}
6358
} catch (error) {
6459
logger.debug('Error during deep text extraction', { error })
@@ -136,7 +131,8 @@ function extractContent(item: any): string | null {
136131
.map(extractContent)
137132
.filter(Boolean)
138133

139-
return contents.length > 0 ? contents.join('\n') : null
134+
// Join with space for inline display in chat UI
135+
return contents.length > 0 ? contents.join(' ') : null
140136
}
141137

142138
// Objects - try deep extraction
@@ -181,9 +177,10 @@ export function formatOutputForDisplay(
181177
result = result.substring(0, maxLength) + '... [truncated]'
182178
}
183179

184-
// Clean whitespace unless preserved
185-
if (!preserveWhitespace) {
186-
result = result.replace(/\s+/g, ' ').trim()
180+
// Clean whitespace unless preserved (but keep code formatting intact)
181+
if (!preserveWhitespace && mode !== 'workflow') {
182+
// Only normalize multiple spaces/tabs to single space, preserve newlines for readability
183+
result = result.replace(/[ \t]+/g, ' ').trim()
187184
}
188185

189186
return result

0 commit comments

Comments
 (0)