Skip to content

One use, one result

nod never runs an approved action or a private entry twice. If it can't tell whether something happened, it says so, and you check before anyone tries again.

Before the server enters a saved login, a code or a card, it saves a claim in its database. Each operation can be claimed once. Two open tabs, two replies or a lost response can't run it a second time.

stateDiagram-v2
  direction LR
  [*] --> Running: claim saved
  Running --> Submitted: entry finished
  Running --> Uncertain: interrupted or failed
  Submitted --> [*]
  Uncertain --> [*]
State What it means What happens next
Running The server is entering and submitting the values nod waits
Submitted The values were entered, and any chosen submit button was pressed nod reads the page to see if it worked
Uncertain The step may have reached the website, but the result wasn't recorded Check the result before another attempt

Submitted doesn't mean the sign-in or payment succeeded. Only the website knows that, so nod checks the page.

Uncertain means the step may have reached the website. nod keeps the claim and never replays it. Ask nod to look at the page, the order or the account first. A new attempt is a new, explicit request.

When you say yes to an app action, the server runs that saved action once, and the task continues from the result. If the action can no longer run, for example because the account was disconnected after nod asked, nothing is sent and the task continues knowing that. If it fails or is interrupted, it becomes uncertain, and nod asks you to check the app before trying again. It never runs again on its own.

What If it fails
A task It ends with a message asking you to check what happened, or say continue
A tool call It isn't repeated
A confirmed app action It becomes uncertain
A private entry or payment It becomes uncertain
A saved login that doesn't get through nod checks the page and doesn't enter that login again in the task. The next try opens the private form, where you pick a login or type a new password
A model request The one exception: a temporary provider error is retried up to three times

Stop cancels running, queued and waiting tasks. A form or code you submit late can't restart them. Stop can't undo anything that already reached a website or app.

After nod restarts, any claim or confirmed action that was still running becomes uncertain. Nothing that was in progress runs again.

src/server/vault-use.ts (claims and states) · src/server/approvals.ts (confirmed actions) · src/server/payments.ts (payment outcomes)