Skip to content

FEAT-012 T166: durable drafted-handoff on submit failure — needs app.handoff.draft (FEAT-011 v1.x) #35

@brettheap

Description

@brettheap

FEAT-012 deferred task — tracking issue (filed per constitution Development Workflow / CLAUDE.md; closes analyze Round 11 F2).

What

Make a drafted handoff durable on submission failure (FR-072a): if the daemon rejects a submission, the handoff must "remain in drafted with the daemon error attached" so the operator can navigate away, return, amend, and retry without losing context.

Why deferred / blocked

Today the draft + failure context live only in the handoff-flow widget state, so they're lost on widget tear-down. Durability requires the daemon to accept a new write-through method app.handoff.draft(params: { draft_id, draft_payload }) so Handoff.failureContext is persisted server-side. That method does not exist in FEAT-011 (0 matches in main).

Upstream status — not yet created

No upstream artifact exists yet. The method shape is pre-specced in specs/012-flutter-control-panel/upstream-feat011-extension-draft.md §(b). FEAT-014 covered only the dashboard (§a); the handoff-draft + streaming pieces (§b/§c) were left for a separate feature (proposed FEAT-015).

Unblock steps

  1. From the root checkout on main, /speckit.specify a new daemon feature (FEAT-015) adding app.handoff.draft (seed from the draft §b); plan → tasks → implement on src/agenttower.
  2. FEAT-012 client side: persist the draft via app.handoff.draft so it survives tear-down; swap the soft soft-probe in integration_test/us3_handoff_flow.dart.

Ships today (interim)

Submission failure is handled inline within the open flow (error shown, retry works) — only cross-navigation persistence is missing.

Refs: FEAT-012 task T166, FR-072(a), swarm-review H-B10.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions