fix: remove hardcoded 48-character limit from text inputs - #18
Conversation
| if (item[varIndex].length > varItem.max_length) { | ||
| moreThanMaxLengthVarName = varItem.name | ||
| maxLength = maxLen | ||
| maxLength = varItem.max_length | ||
| errorRowIndex = index + 1 | ||
| return | ||
| } |
There was a problem hiding this comment.
🔴 Batch validation bypassed when max_length is undefined - comparison with undefined always returns false
When max_length is not set (undefined), the batch input validation for string length is completely bypassed.
Click to expand
Root Cause
The PR removes the fallback to DEFAULT_VALUE_MAX_LEN in several places. In the batch validation code at web/app/components/share/text-generation/index.tsx:261, when varItem.max_length is undefined, the comparison:
if (item[varIndex].length > varItem.max_length)will always evaluate to false because in JavaScript, comparing any number with undefined returns false:
100 > undefined // false
0 > undefined // falseImpact
For batch operations on text generation apps, if a prompt variable doesn't have a max_length set, users can submit inputs of any length without validation. This could lead to:
- Unexpected behavior when very long strings are submitted
- Potential issues with downstream processing that may have implicit length limits
- Inconsistent behavior between batch and single-run modes
Expected vs Actual
- Expected: When
max_lengthis undefined, either skip the check entirely (no limit) or use a sensible default - Actual: The check runs but always passes due to the
undefinedcomparison quirk
Recommendation: Add a guard condition to skip the max_length check when it's undefined: if (varItem.max_length !== undefined && item[varIndex].length > varItem.max_length)
Was this helpful? React with 👍 or 👎 to provide feedback.
| return false | ||
| } | ||
| const headerData = data[0] | ||
| console.log('Checking batch inputs:', { dataLength: data.length, headerData }) |
There was a problem hiding this comment.
🟡 Debug console.log statement left in production code
A console.log statement was added to the batch input validation function, which violates coding standards and should not be in production code.
Click to expand
Location
web/app/components/share/text-generation/index.tsx:199
console.log('Checking batch inputs:', { dataLength: data.length, headerData })Impact
- Pollutes browser console in production
- Potentially exposes internal data structures to end users
- Violates AGENTS.md rule fix(api): refactors the SQL LIKE pattern escaping logic to use a centralized utility function, ensuring consistent and secure handling of special characters across all database queries. #25: "Frontend Code Must Not Use console Statements"
Recommendation: Remove the console.log statement or replace with proper logging mechanism.
Was this helpful? React with 👍 or 👎 to provide feedback.
Benchmark PR from qodo-benchmark#417