fix compression context usage accounting (#924)
This commit is contained in:
@@ -569,14 +569,16 @@ export const useChatStore = defineStore('chat', () => {
|
||||
compressed: null,
|
||||
})
|
||||
} else if (e.event === 'compression.completed') {
|
||||
const afterTokens = e.contextTokens || e.afterTokens || 0
|
||||
setCompressionState({
|
||||
compressing: false,
|
||||
messageCount: e.totalMessages || 0,
|
||||
beforeTokens: e.beforeTokens || 0,
|
||||
afterTokens: e.afterTokens || 0,
|
||||
afterTokens,
|
||||
compressed: e.compressed ?? false,
|
||||
error: e.error,
|
||||
})
|
||||
if (e.contextTokens != null) activeSession.value!.contextTokens = e.contextTokens
|
||||
} else if (e.event === 'abort.started') {
|
||||
setAbortState({ aborting: true, synced: null })
|
||||
} else if (e.event === 'abort.completed') {
|
||||
@@ -1073,14 +1075,19 @@ export const useChatStore = defineStore('chat', () => {
|
||||
}
|
||||
|
||||
case 'compression.completed': {
|
||||
const afterTokens = (evt as any).contextTokens || (evt as any).afterTokens || 0
|
||||
setCompressionState({
|
||||
compressing: false,
|
||||
messageCount: (evt as any).totalMessages || 0,
|
||||
beforeTokens: (evt as any).beforeTokens || 0,
|
||||
afterTokens: (evt as any).afterTokens || 0,
|
||||
afterTokens,
|
||||
compressed: (evt as any).compressed ?? false,
|
||||
error: (evt as any).error,
|
||||
})
|
||||
if ((evt as any).contextTokens != null) {
|
||||
const target = sessions.value.find(s => s.id === sid)
|
||||
if (target) target.contextTokens = (evt as any).contextTokens
|
||||
}
|
||||
// Auto-clear after 5s
|
||||
setTimeout(() => {
|
||||
if (compressionState.value && !compressionState.value.compressing) {
|
||||
@@ -1520,14 +1527,19 @@ export const useChatStore = defineStore('chat', () => {
|
||||
}
|
||||
|
||||
case 'compression.completed': {
|
||||
const afterTokens = (evt as any).contextTokens || (evt as any).afterTokens || 0
|
||||
setCompressionState({
|
||||
compressing: false,
|
||||
messageCount: (evt as any).totalMessages || 0,
|
||||
beforeTokens: (evt as any).beforeTokens || 0,
|
||||
afterTokens: (evt as any).afterTokens || 0,
|
||||
afterTokens,
|
||||
compressed: (evt as any).compressed ?? false,
|
||||
error: (evt as any).error,
|
||||
})
|
||||
if ((evt as any).contextTokens != null) {
|
||||
const target = sessions.value.find(s => s.id === sid)
|
||||
if (target) target.contextTokens = (evt as any).contextTokens
|
||||
}
|
||||
setTimeout(() => {
|
||||
if (compressionState.value && !compressionState.value.compressing) {
|
||||
setCompressionState(null)
|
||||
|
||||
Reference in New Issue
Block a user