Stop, recover, and observe Description Generation Runs #11

Closed
opened 2026-08-28 13:34:26 +00:00 by mptyl · 0 comments
Owner

Parent

#4

What to build

Complete the deliberately simple operational controls for Description Generation: bounded retry, cancellation, restart interruption, stale-run Unlock, terminal summaries, persistent history, and live events with polling fallback.

Acceptance criteria

  • The helper performs at most one retry for a transient technical provider failure.
  • An exhausted technical failure increments the consecutive-failure count; a successful request resets it.
  • Three consecutive technical failures stop the run as failed, while isolated failures can produce completed_with_errors when processing reaches the end.
  • No automatic model fallback occurs.
  • Cancel terminates the current helper process, prevents later requests, marks the run cancelled, and retains earlier results.
  • Backend startup marks persisted queued or running generation runs interrupted without resuming them.
  • Unlock succeeds only when no live generation loop or helper process exists; otherwise it is rejected.
  • Completed, completed-with-errors, cancelled, failed, and interrupted runs remain inspectable with model, scope, counters, timestamps, summary, and ordered safe events.
  • The UI receives live events through SSE and falls back to ordered polling without duplicating or losing displayed events.
  • Tests cover retry, consecutive-error reset and stop, cancellation, process termination, startup recovery, Unlock safeguards, history, SSE reconnection, and redaction.
  • No queue, lease, heartbeat, distributed lock, multi-replica coordination, or automatic resume is introduced.

Blocked by

  • #7 — Generate one selected Catalog Column asynchronously
## Parent https://git.tylconsulting.it/mptyl/ThothII/issues/4 ## What to build Complete the deliberately simple operational controls for Description Generation: bounded retry, cancellation, restart interruption, stale-run Unlock, terminal summaries, persistent history, and live events with polling fallback. ## Acceptance criteria - [ ] The helper performs at most one retry for a transient technical provider failure. - [ ] An exhausted technical failure increments the consecutive-failure count; a successful request resets it. - [ ] Three consecutive technical failures stop the run as failed, while isolated failures can produce completed_with_errors when processing reaches the end. - [ ] No automatic model fallback occurs. - [ ] Cancel terminates the current helper process, prevents later requests, marks the run cancelled, and retains earlier results. - [ ] Backend startup marks persisted queued or running generation runs interrupted without resuming them. - [ ] Unlock succeeds only when no live generation loop or helper process exists; otherwise it is rejected. - [ ] Completed, completed-with-errors, cancelled, failed, and interrupted runs remain inspectable with model, scope, counters, timestamps, summary, and ordered safe events. - [ ] The UI receives live events through SSE and falls back to ordered polling without duplicating or losing displayed events. - [ ] Tests cover retry, consecutive-error reset and stop, cancellation, process termination, startup recovery, Unlock safeguards, history, SSE reconnection, and redaction. - [ ] No queue, lease, heartbeat, distributed lock, multi-replica coordination, or automatic resume is introduced. ## Blocked by - #7 — Generate one selected Catalog Column asynchronously
mptyl added the enhancementready-for-agent labels 2026-08-28 13:34:26 +00:00
mptyl added a new dependency 2026-08-28 13:35:05 +00:00
mptyl closed this issue 2026-08-28 17:08:35 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: mptyl/ThothII#11