Skip to content

Commit 1fe29e0

Browse files
authored
Fix missing prompt parts for providers (#1188)
* bump to chat list if chat fails to load * Fix missing prompt parts for providers * Adjust button horz paddings
1 parent 81d9181 commit 1fe29e0

File tree

6 files changed

+41
-51
lines changed

6 files changed

+41
-51
lines changed

common/prompt.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,7 @@ function getSupplementaryParts(opts: PromptPartsOptions, replyAs: AppSchema.Char
584584
system: '' as string | undefined,
585585
}
586586

587-
if (!settings?.service) return parts
587+
if (!settings) return parts
588588

589589
parts.ujb = settings.ultimeJailbreak
590590
parts.system = settings.systemPrompt

tests/__snapshots__/prompt.spec.js.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ Object {
197197
"SAMPLECHAT OtherBot",
198198
],
199199
"scenario": "MAIN MainChar",
200-
"systemPrompt": "",
201-
"ujb": "",
200+
"systemPrompt": undefined,
201+
"ujb": "!!UJB_PROMPT!!",
202202
"userEmbeds": Array [],
203203
},
204204
"template": Object {

web/pages/Chat/ChatDetail.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,14 @@ const ChatDetail: Component = () => {
269269

270270
events.emit(EVENTS.chatOpened, params.id)
271271
if (params.id !== chats.chat?._id) {
272-
chatStore.openChat(params.id)
272+
chatStore.openChat(params.id, {
273+
onDone: (success) => {
274+
if (success) return
275+
276+
// If the chat fails to load, return to the chat list
277+
nav('/chats')
278+
},
279+
})
273280
} else {
274281
characterStore.loadImpersonate()
275282
}

web/pages/GenerationPresets/PresetList.tsx

Lines changed: 14 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import { Component, createMemo, createSignal, For, onMount, Show } from 'solid-j
44
import Button from '../../shared/Button'
55
import Modal, { ConfirmModal } from '../../shared/Modal'
66
import PageHeader from '../../shared/PageHeader'
7-
import { defaultPresets, presetValidator } from '../../../common/presets'
8-
import { exportPreset, presetStore, settingStore, toastStore } from '../../store'
9-
import { getUsableServices, setComponentPageTitle } from '../../shared/util'
7+
import { presetValidator } from '../../../common/presets'
8+
import { exportPreset, presetStore, toastStore } from '../../store'
9+
import { setComponentPageTitle } from '../../shared/util'
1010
import { getServiceName, sortByLabel } from '/web/shared/adapter'
1111
import FileInput, { FileInputResult, getFileAsString } from '/web/shared/FileInput'
1212
import { validateBody } from '/common/valid'
@@ -21,19 +21,6 @@ const PresetList: Component = () => {
2121
.map((pre) => ({ ...pre, label: `[${getServiceName(pre.service)}] ${pre.name}` }))
2222
.sort(sortByLabel),
2323
}))
24-
const cfg = settingStore((s) => s.config)
25-
26-
const useableServices = createMemo(() => getUsableServices())
27-
28-
const defaults = Object.entries(defaultPresets)
29-
.filter(([_, pre]) => {
30-
if (!cfg.adapters.includes(pre.service)) return false
31-
if (!useableServices().includes(pre.service)) return false
32-
if (pre.service !== 'agnaistic') return true
33-
return cfg.subs.length > 0
34-
})
35-
.map(([id, cfg]) => ({ ...cfg, label: `[${cfg.service}] ${cfg.name}`, _id: id }))
36-
.sort(sortByLabel)
3724

3825
const [deleting, setDeleting] = createSignal<string>()
3926
const [importing, setImporting] = createSignal(false)
@@ -60,7 +47,7 @@ const PresetList: Component = () => {
6047

6148
return (
6249
<Page>
63-
<PageHeader title="Generation Presets" />
50+
<PageHeader title="Presets" />
6451
<div class="flex justify-between">
6552
<div>
6653
<TextInput placeholder="Filter..." onChange={(ev) => setFilter(ev.currentTarget.value)} />
@@ -78,10 +65,19 @@ const PresetList: Component = () => {
7865
</div>
7966
</div>
8067

68+
{/* <div class="flex gap-2 pb-1">
69+
<Button size="sm" schema="clear" class="icon-button">
70+
<Sliders size={20} />
71+
</Button>
72+
<Button size="sm" schema="clear" class="icon-button">
73+
<Image size={20} />
74+
</Button>
75+
</div> */}
76+
8177
<div class="flex flex-col items-center gap-2">
8278
<For each={presets()}>
8379
{(preset) => (
84-
<div class="bg-800 flex w-full items-center gap-2 rounded-xl py-1 hover:bg-[var(--bg-600)]">
80+
<div class="bg-800 flex w-full items-center gap-1 rounded-xl py-1 hover:bg-[var(--bg-600)]">
8581
<A href={`/presets/${preset._id}`} class=" flex w-full">
8682
<div class="ml-4 flex w-full flex-col items-start">
8783
<div>
@@ -119,26 +115,6 @@ const PresetList: Component = () => {
119115
</div>
120116
)}
121117
</For>
122-
123-
<div>Built-in Presets</div>
124-
<For each={defaults}>
125-
{(preset) => (
126-
<div class="flex w-full items-center gap-2">
127-
<A
128-
href={`/presets/new?preset=${preset._id}`}
129-
class="bg-800 flex w-full gap-2 rounded-xl hover:bg-[var(--bg-600)]"
130-
>
131-
<div class="x ml-4 flex w-full flex-col items-start">
132-
{' '}
133-
<div class="text-md">{preset.name}</div>
134-
<div class="mr-1 text-xs italic text-[var(--text-600)]">
135-
{getServiceName(preset.service)}
136-
</div>
137-
</div>
138-
</A>
139-
</div>
140-
)}
141-
</For>
142118
</div>
143119

144120
<Show when={importing()}>

web/shared/Button.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ const Button: Component<{
4848
...props.classList,
4949
[schema()]: true,
5050
'leading-5': props.size === 'pill',
51-
'py-0': props.size === 'pill',
52-
'py-1': props.size === 'sm',
53-
'py-2': !props.size || props.size === 'md',
54-
'py-4': props.size === 'lg',
55-
'text-sm': props.size === 'sm' || props.size === 'pill',
56-
'text-lg': props.size === 'lg',
57-
'justify-center': !props.alignLeft,
51+
'!px-1 !py-0': props.size === 'pill',
52+
'!px-1.5 !py-1': props.size === 'sm',
53+
'!px-2.5 !py-2': !props.size || props.size === 'md',
54+
'!px-3 !py-4': props.size === 'lg',
55+
'!text-sm': props.size === 'sm' || props.size === 'pill',
56+
'!text-lg': props.size === 'lg',
57+
'!justify-center': !props.alignLeft,
5858
}}
5959
disabled={props.disabled}
6060
onClick={props.onClick}

web/store/chat.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,12 @@ export const chatStore = createStore<ChatState>('chat', {
222222
},
223223
}
224224
},
225-
async *openChat(_, id: string, clear = true) {
225+
async *openChat(
226+
_,
227+
id: string,
228+
opts?: { clear?: boolean; onDone?: (success: boolean) => void }
229+
) {
230+
const clear = opts?.clear ?? true
226231
if (clear) {
227232
yield { loaded: false, active: undefined }
228233
}
@@ -280,6 +285,8 @@ export const chatStore = createStore<ChatState>('chat', {
280285
memberIds: res.result.members.reduce(toMemberKeys, {}),
281286
}
282287
}
288+
289+
opts?.onDone?.(!!res.result)
283290
},
284291
setAutoReplyAs({ active }, charId: string | undefined) {
285292
if (!active) return
@@ -575,7 +582,7 @@ export const chatStore = createStore<ChatState>('chat', {
575582
async restartChat(_, chatId: string) {
576583
const res = await chatsApi.restartChat(chatId)
577584
if (res.result) {
578-
chatStore.openChat(chatId, false)
585+
chatStore.openChat(chatId, { clear: false })
579586
}
580587

581588
if (res.error) {

0 commit comments

Comments
 (0)