mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
fix(prompter): MegaTask review card scrolls + confirm-batch guard releases on failure (#376)
The MegaTask review card was a static sibling of the scrollable chat list with
no height bound, so a tall batch overflowed the clipped container and stranded
the launch buttons off-screen with no scrollbar. It now owns the scroll area
(min-h-0 flex-1 overflow-y-auto), matching the pattern ChatMessages already uses.
confirm_live_batch's Redis idempotency guard (1h TTL) was acquired before the
build but only released via a success sidecar, so a build failure wedged the
session: every retry hit ServiceError("already in progress") -> HTTP 500 for an
hour. The build now releases the guard on any failure before the sidecar write,
so a retry re-attempts (and surfaces the real error) instead of being locked out.
Extracted _build_confirm_batch to keep the try/except thin.
Adds DB-backed tests for the panel the_work[].project_id shape, multi-cell
root-subtasks, dense same-repo collisions (both routes), and guard release.
Co-authored-by: Renn F <rennf93@users.noreply.github.com>
This commit is contained in:
@@ -152,18 +152,13 @@ export default function PrompterPage() {
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<ChatMessages
|
||||
messages={messages}
|
||||
onStart={launchTask}
|
||||
onKeepChatting={keepChatting}
|
||||
isLaunching={isLaunching}
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* MegaTask review — the agent proposed a batch; confirm them together */}
|
||||
{state === "batch_preview" && batch && (
|
||||
<div className="mx-4 mb-2">
|
||||
) : state === "batch_preview" && batch ? (
|
||||
/* MegaTask review — the agent proposed a batch; confirm them
|
||||
together. Owns the scroll area (min-h-0 + overflow-y-auto) so a
|
||||
tall batch — many tasks, per-cell pickers, the wave plan — scrolls
|
||||
instead of overflowing the clipped parent and stranding the launch
|
||||
buttons off-screen. */
|
||||
<div className="min-h-0 flex-1 overflow-y-auto px-4 py-3">
|
||||
<BatchReviewCard
|
||||
batch={batch}
|
||||
waves={batchWaves}
|
||||
@@ -174,6 +169,13 @@ export default function PrompterPage() {
|
||||
isLaunching={isLaunching}
|
||||
/>
|
||||
</div>
|
||||
) : (
|
||||
<ChatMessages
|
||||
messages={messages}
|
||||
onStart={launchTask}
|
||||
onKeepChatting={keepChatting}
|
||||
isLaunching={isLaunching}
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* Live activity indicator — "watch it work" (prominent) */}
|
||||
|
||||
Reference in New Issue
Block a user