diff --git a/srv/adapter/featherless.ts b/srv/adapter/featherless.ts index 9640cd9e5..3103bb10a 100644 --- a/srv/adapter/featherless.ts +++ b/srv/adapter/featherless.ts @@ -98,13 +98,17 @@ async function getModelClasses() { while (true) { try { - const res = await fetch(`https://api.featherless.ai/feather/models?page=${page}&perPage=50`, { + const res = await fetch(`https://featherless.ai/api/feather/models?page=${page}&perPage=50`, { headers: { accept: '*/*', }, method: 'GET', }) + if (res.status === 404) { + break + } + if (res.status > 200) { const text = await res.text().catch(() => 'Could not parse') logger.warn( diff --git a/web/pages/Chat/components/Message.tsx b/web/pages/Chat/components/Message.tsx index 8419d0b6f..3b78f1aea 100644 --- a/web/pages/Chat/components/Message.tsx +++ b/web/pages/Chat/components/Message.tsx @@ -245,7 +245,7 @@ const Message: Component = (props) => { setEditSender(JSON.stringify({ characterId: message.characterId })) } if (editRef) { - editRef.innerText = message.msg + editRef.innerText = props.content } editRef?.focus() } @@ -1152,6 +1152,11 @@ function renderMessage( // we sanizize user input to prevent XSS attacks // DomPurify has an implicit list of allowed Tags, when we add our own we have to use ADD_TAGS + + Purify.addHook('afterSanitizeElements', (node) => { + node + }) + const html = Purify.sanitize( wrapWithQuoteElement( markdown @@ -1163,6 +1168,8 @@ function renderMessage( } ) + Purify.removeAllHooks() + return html }