Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion srv/adapter/featherless.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
9 changes: 8 additions & 1 deletion web/pages/Chat/components/Message.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ const Message: Component<MessageProps> = (props) => {
setEditSender(JSON.stringify({ characterId: message.characterId }))
}
if (editRef) {
editRef.innerText = message.msg
editRef.innerText = props.content
}
editRef?.focus()
}
Expand Down Expand Up @@ -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
Expand All @@ -1163,6 +1168,8 @@ function renderMessage(
}
)

Purify.removeAllHooks()

return html
}

Expand Down