Render worker scheduling #18
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
needs-info
needs-triage
question
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crowmaki/ai-studio#18
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #1
Blocked by: #17, #11
Question
How does the app-owned queue choose the next job? Cover priority classes (Promotions ahead of new coverage), model affinity to avoid reloads, pausing and holding H3 jobs for overnight batches, crash recovery, and cancelling or reordering.
Input from Rust core vs TypeScript frontend split: the queue needs an explicit cancel command for queued and in-flight jobs. Undo never reaches queued or rendered work. The worker belongs to the Project session (one Project per process), so closing the Project stops the queue. Decide what happens on reopen (resume, ask, or drop). Per-job progress goes to the UI through
tauri::ipc::Channel.From "Staleness rules" (#12): staleness compares a Take's recorded job with the job the Shot would build now. This ticket must decide when the worker builds a job: when it runs, or when it is queued. If it builds when the job runs, a queued Take always picks up the latest inputs and cannot arrive stale. Batch re-roll also skips any Shot that already has a queued or running Take with current inputs, so the queue must be able to answer whether that Take is up to date.
From "Shipped workflow roster and slot contracts" (#17), constraints for scheduling:
h3.draft,h3.promotion,h3.final,image.t2iandimage.board. The two image workflows share Qwen-Image 2.1, and the H3 workflows share the H3 model set, so grouping by family avoids model swaps.Resolution
When jobs are built
Order
image.t2i,image.board) → drafts (h3.draft) → finals (h3.promotion,h3.final). FIFO within a class.Holding
Cancel and re-promotion
Reopen and crash
.studioand always opens paused on reopen, with a banner ("N jobs waiting · Resume"; after a crash it names the job that was running).prompt_idif ComfyUI still has it queued or running (even while paused), collected if it finished and is still in history, or requeued at the head of its class (same Take, same seed, an interrupted attempt rather than a failure) if ComfyUI has no record of it.Failures
node_errors,execution_error) fail the job with no auto-retry. A draft or Single-pass final becomes a Failed Take (Retry/Delete in Dailies). A failed Promotion leaves the Take with its draft plus a "Promotion failed" note with Retry. The worker continues./free. This is a setting.Pipelining
UI