Skip to content

feat(dig-app): the DID wizard promises a re-entry point that does not exist #228

Description

@MichaelTaylor3d

Every failure screen in the first-run DID wizard (#2341) tells the user "open the DIG menu later and it will tell you".

Nothing backs that promise. No tray row watches a pending spend, and none offers to resume a mint. A person whose funding arrived late, or whose mint was still unconfirmed when they closed the wizard, has been told where to look and there is nothing there.

Why this is a dead end, not a gap

professional-ui's first HARD RULE is that a person must never be trapped, and #1800 removed exactly this shape — a message naming a next step that does not exist. An unbacked promise is worse than silence, because the user stops looking for another way.

It also blocks #2342 being usable: the mint is asynchronous by design (begin_did_mintPendingMintconfirm), so "come back later" is the normal path, not the failure path. Without re-entry, the only way to complete a slow mint is to never close the window.

Scope

  • A tray surface that knows a mint is pending and says so.
  • A way to resume: re-open the wizard at the waiting step, or report the outcome if it resolved while the app was closed.
  • The pending state must survive a restart — it is on-chain, so the evidence is recoverable, but the app has to know to look.

The related defect it must not inherit

The adversarial gate on dig-account PR #7 found that confirm returns Ok(None) forever for a permanently dead mint — mempool eviction, fee-too-low expiry, a reorg respending the source coin. A resume surface built on that API will offer to resume something that can never finish.

So this needs #2342's PendingMint to carry enough to answer "is this still possible?" — the gate suggested pushed_at_height plus a way to see the funding coin spent elsewhere. Do not build the re-entry point on an API that cannot say no.

Found by the #2341 implementation lane, which flagged its own unbacked promise.

Orchestrator ticket: https://github.com/DIG-Network/dig_ecosystem/issues/2398

Moved from DIG-Network/dig_ecosystem#2351 so this repo's own PR can close it with Closes (CLAUDE.md §1.3).
GitHub refuses a private-to-public issue transfer, so the body was copied and comment history
stayed on the original.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions