Skip to content

Activity: preserve partial output and present actionable failure recovery #308

Closed

Description

@qwen-code-dev-bot

Source type

source:user — normalized child of a bot-authored roadmap parent; the
authoritative, clean statement of one independently testable slice.

Source link / evidence

Problem statement

When a step fails mid-run, users need to see what already happened, keep the
partial output, and understand the next action. Failures and retries must be
presented through the shared event model (#306) so both surfaces behave the same,
rather than being swallowed or shown as an opaque error.

User value

A failure preserves the partial output already produced and presents an
actionable next step; retries are surfaced clearly. Users recover confidently
without re-running blindly or losing context.

Scope

  • Present failures and retries through the Activity: define the shared event presentation model #306 event model with the canonical
    failure semantics for each event kind.
  • Preserve partial output produced before the failure and pair it with an
    actionable next-step message.
  • Distinguish a real failure from a bounded retry and from a waiting condition
    (network/rate-limit/CI queue), consistent with the product's failure taxonomy.

Non-goals

Acceptance criteria

  • A failed step preserves its partial output in the presentation model and
    presents an actionable next-step message.
  • Retries are surfaced as distinct events with bounded-retry semantics.
  • Waiting conditions (network/rate-limit/CI queue) are distinguished from
    real failures.
  • Failure presentation uses the Activity: define the shared event presentation model #306 canonical failure semantics (no
    surface-local message).

Test plan

Failure/retry fixture tests asserting partial-output preservation and the
next-step message; a test distinguishing a waiting condition from a failure; a
contract test asserting failure presentation uses the #306 canonical semantics.

Dogfood plan

Trigger a recoverable failure during a multi-tool task and confirm the partial
output is preserved, the next step is actionable, and a retry is surfaced
distinctly from a hard failure.

Risk and security notes

Partial output may contain secrets or unsafe escape sequences; present only the
redacted, neutralized #306 model. Never auto-execute a suggested recovery or
fabricate a next step that does not apply.

Duplicate search evidence

Searched open and closed Issues and PRs on 2026-07-31. run-failure-taxonomy.ts and
run-recovery.ts classify and recover from failures at the runtime level; this
child presents failures/retries through the shared #306 event model with partial
output and an actionable next step, which is presentation-layer work they do not
cover. No duplicate found.

Parent/child relationship

Child of #291; consumes #306. Independent of the TUI card renderer (#307) at the
model level; both feed the cross-surface parity child.

Dependency order

Requires #306 (shared event model). May proceed once #306 lands; does not require
the Desktop gate (#106/#133).

Activity

  1. added
    enhancementNew feature or request
    agent-readyTrusted issue ready for autonomous implementation
    subtaskFocused child of a parent issue
    priority:p1High priority: address before normal work
    source:userNormalized execution work promoted from a user report
    on Jul 31, 2026
  2. qwen-code-dev-bot commented on Jul 31, 2026

    @qwen-code-dev-bot
    OwnerAuthor

    Lease acquired (state: issue_selected).

  3. qwen-code-dev-bot commented on Jul 31, 2026

    @qwen-code-dev-bot
    OwnerAuthor

    Delivered and merged.

  4. removed their assignment
    on Jul 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyTrusted issue ready for autonomous implementationenhancementNew feature or requestpriority:p1High priority: address before normal worksource:userNormalized execution work promoted from a user reportsubtaskFocused child of a parent issue

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions