NVIDIA / NVIDIA/NemoClaw

[R1a] Reconcile duplicate submissions and lost VoiceClaw responses without blind redispatch

Open
#11,754 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
22.5k
Forks
3.1k
Avg merge
1d 1h
Merged PRs (30d)
715

Description

## Outcome

Repeated finalized input and retry after response loss cannot silently start duplicate native work within the declared R1a recovery window.

## Scope and ownership

R1a follow-up on v1, outside R0 attachment acceptance. Main's existing active-admission duplicate rejection is reference behavior; it does not establish v1 recovery or global idempotency.

Proposed owner: NemoClaw request/receipt owner and VoiceClaw retry/delivery owner.

This ticket records requested work. New product boundaries and supported combinations require the owning maintainer decision; no existing proposal is declared accepted here.

## Work

- Define stable request/idempotency identity, same-body retry and conflicting-body behavior, retention and expiry.
- Add the bounded receipt/status or equivalent reconciliation mechanism needed to recover acceptance/result information after a lost response.
- Exercise loss before dispatch, after native acceptance and before terminal delivery; distinguish known failure, known acceptance/completion and unresolved outcome.
- A fresh connection credential or runtime restart is not proof that an earlier command never ran. Keep command identity stable and reconcile against NemoClaw-owned receipts.
- Map the same outcomes through VoiceClaw's client interface and document the recovery action once the bounded window is unavailable.

## Acceptance

- [ ] Repeating the same commandId and body returns the established receipt/result and does not invoke native work again. A different body with that ID conflicts.
- [ ] A lost response can be reconciled within the agreed window without submitting another task.
- [ ] Conflicting request reuse is rejected; uncertain or expired recovery is explicitly reported without blind resubmission.
- [ ] Fault tests observe actual invocation counts and correlation on both sides.
- [ ] Restart-durable task recovery is not claimed; that remains R2.

## Dependencies

Related R0 epic: [#11746](https://github.com/NVIDIA/NemoClaw/issues/11746). This follow-up is outside R0 completion.

VoiceClaw counterpart: [VoiceClaw #7](https://gitlab-master.nvidia.com/jarvis/voice-claw/-/issues/7).

Blocked by:

- [#11753: [R1a] Define and implement correlated VoiceClaw submission receipts and speech/detail results](https://github.com/NVIDIA/NemoClaw/issues/11753)

## Category

Feature

Contributor guide

Open the contributing guide

Research direction

Start by reading blocked issue #11753 and the linked VoiceClaw counterpart to understand the receipt and result interfaces before defining the recovery boundaries. Done means the agreed identity, reconciliation window, conflict handling, expiry behavior, and fault tests cover loss before dispatch, after acceptance, and before terminal delivery without blind resubmission.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend-api-design, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.