Skip to content

Commit 2314283

Browse files
[Manager] Fix: failed tasks logs not correctly partitioned in UI (#4242)
1 parent 466e3fd commit 2314283

File tree

2 files changed

+31
-19
lines changed

2 files changed

+31
-19
lines changed

src/composables/useServerLogs.ts

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ import { components } from '@/types/generatedManagerTypes'
77

88
const LOGS_MESSAGE_TYPE = 'logs'
99
const MANAGER_WS_TASK_DONE_NAME = 'cm-task-completed'
10+
const MANAGER_WS_TASK_STARTED_NAME = 'cm-task-started'
1011

1112
type ManagerWsTaskDoneMsg = components['schemas']['MessageTaskDone']
13+
type ManagerWsTaskStartedMsg = components['schemas']['MessageTaskStarted']
1214

1315
interface UseServerLogsOptions {
1416
ui_id: string
@@ -23,8 +25,10 @@ export const useServerLogs = (options: UseServerLogsOptions) => {
2325
} = options
2426

2527
const logs = ref<string[]>([])
28+
const isTaskStarted = ref(false)
2629
let stopLogs: ReturnType<typeof useEventListener> | null = null
2730
let stopTaskDone: ReturnType<typeof useEventListener> | null = null
31+
let stopTaskStarted: ReturnType<typeof useEventListener> | null = null
2832

2933
const isValidLogEvent = (event: CustomEvent<LogsWsMessage>) =>
3034
event?.type === LOGS_MESSAGE_TYPE && event.detail?.entries?.length > 0
@@ -33,6 +37,9 @@ export const useServerLogs = (options: UseServerLogsOptions) => {
3337
event.detail.entries.map((e) => e.m).filter(messageFilter)
3438

3539
const handleLogMessage = (event: CustomEvent<LogsWsMessage>) => {
40+
// Only capture logs if this task has started
41+
if (!isTaskStarted.value) return
42+
3643
if (isValidLogEvent(event)) {
3744
const messages = parseLogMessage(event)
3845
if (messages.length > 0) {
@@ -41,11 +48,24 @@ export const useServerLogs = (options: UseServerLogsOptions) => {
4148
}
4249
}
4350

51+
const handleTaskStarted = (event: CustomEvent<ManagerWsTaskStartedMsg>) => {
52+
if (event?.type === MANAGER_WS_TASK_STARTED_NAME) {
53+
// Check if this is our task starting
54+
const isOurTask = event.detail.ui_id === options.ui_id
55+
if (isOurTask) {
56+
isTaskStarted.value = true
57+
void stopTaskStarted?.()
58+
}
59+
}
60+
}
61+
4462
const handleTaskDone = (event: CustomEvent<ManagerWsTaskDoneMsg>) => {
4563
if (event?.type === MANAGER_WS_TASK_DONE_NAME) {
4664
const { state } = event.detail
4765
// Check if our task is now in the history (completed)
48-
if (state.history[options.ui_id]) {
66+
const isOurTaskDone = state.history[options.ui_id]
67+
if (isOurTaskDone) {
68+
isTaskStarted.value = false
4969
void stopListening()
5070
}
5171
}
@@ -54,6 +74,11 @@ export const useServerLogs = (options: UseServerLogsOptions) => {
5474
const startListening = async () => {
5575
await api.subscribeLogs(true)
5676
stopLogs = useEventListener(api, LOGS_MESSAGE_TYPE, handleLogMessage)
77+
stopTaskStarted = useEventListener(
78+
api,
79+
MANAGER_WS_TASK_STARTED_NAME,
80+
handleTaskStarted
81+
)
5782
stopTaskDone = useEventListener(
5883
api,
5984
MANAGER_WS_TASK_DONE_NAME,
@@ -62,10 +87,11 @@ export const useServerLogs = (options: UseServerLogsOptions) => {
6287
}
6388

6489
const stopListening = async () => {
65-
console.log('stopListening')
6690
stopLogs?.()
91+
stopTaskStarted?.()
6792
stopTaskDone?.()
6893
stopLogs = null
94+
stopTaskStarted = null
6995
stopTaskDone = null
7096
await api.subscribeLogs(false)
7197
}
@@ -77,6 +103,7 @@ export const useServerLogs = (options: UseServerLogsOptions) => {
77103
const cleanup = async () => {
78104
await stopListening()
79105
logs.value = []
106+
isTaskStarted.value = false
80107
}
81108

82109
return {

src/stores/comfyManagerStore.ts

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ export const useComfyManagerStore = defineStore('comfyManager', () => {
9090
() => {
9191
partitionTasks()
9292
partitionTaskLogs()
93-
console.log('installed pack ids', installedPacksIds.value)
9493
},
9594
{ deep: true }
9695
)
@@ -154,26 +153,12 @@ export const useComfyManagerStore = defineStore('comfyManager', () => {
154153

155154
const updateInstalledIds = (packs: ManagerPackInstalled[]) => {
156155
const newIds = packsToIdSet(packs)
157-
console.log('updateInstalledIds: creating set with:', Array.from(newIds))
158156
installedPacksIds.value = newIds
159-
console.log(
160-
'updateInstalledIds: final installedPacksIds:',
161-
Array.from(installedPacksIds.value)
162-
)
163157
}
164158

165159
const onPacksChanged = () => {
166160
const packs = Object.values(installedPacks.value)
167-
console.log(
168-
'onPacksChanged called with packs:',
169-
packs.map((p) => ({
170-
key: Object.keys(installedPacks.value).find(
171-
(k) => installedPacks.value[k] === p
172-
),
173-
cnr_id: p.cnr_id,
174-
aux_id: p.aux_id
175-
}))
176-
)
161+
177162
updateDisabledIds(packs)
178163
updateInstalledIds(packs)
179164
}
@@ -337,7 +322,7 @@ export const useComfyManagerStore = defineStore('comfyManager', () => {
337322
failedTasksIds,
338323
succeededTasksLogs,
339324
failedTasksLogs,
340-
managerQueue, // Expose full queue composable for advanced usage
325+
managerQueue,
341326

342327
// Pack actions
343328
installPack,

0 commit comments

Comments
 (0)