Enforce text length limits in editor paste handling, adjust API request size limit, and crop excessive content in LLM profile extraction

This commit is contained in:
MartinBraquet
2026-04-01 13:52:34 +02:00
parent 0cb6226643
commit b5deefbec1
3 changed files with 17 additions and 3 deletions

View File

@@ -669,7 +669,7 @@ Object.entries(handlers).forEach(([path, handler]) => {
const apiRoute = [
url,
express.json(),
express.json({limit: '1mb'}),
allowCorsUnrestricted,
cache,
typedEndpoint(path as any, handler as any),

View File

@@ -274,8 +274,8 @@ TEXT TO ANALYZE:
`
const text = EXTRACTION_PROMPT + content
if (text.length > MAX_CONTEXT_LENGTH) {
log('Content exceeds maximum length', {length: text.length})
throw APIErrors.badRequest('Content exceeds maximum length')
log('Content exceeds maximum length, will be cropped', {length: text.length})
// throw APIErrors.badRequest('Content exceeds maximum length')
}
debug({text})
@@ -404,6 +404,8 @@ export const llmExtractProfileEndpoint: APIHandler<'llm-extract-profile'> = asyn
extracted.bio = bio
}
debug(JSON.stringify(bio))
log('Profile extracted successfully', {extracted})
return extracted

View File

@@ -178,6 +178,18 @@ export function useTextEditor(props: {
return true // Prevent image in text/html from getting pasted again
}
if (max) {
event.preventDefault()
const text = event.clipboardData?.getData('text/plain') ?? ''
const currentLength = editor.getText().length
const available = Math.max(0, max - currentLength)
if (available > 0 && text.length > 0) {
const croppedText = text.slice(0, available)
editor.commands.insertContent(croppedText)
}
return true
}
// Otherwise, use default paste handler
},
handleDrop(_view, event, _slice, moved) {