NVIDIA / NVIDIA/NemoClaw

refactor(onboard): add lifecycle receipts and compensation

Open
#7,702 1 comment 0 reactions 1 assignee Claimed by @cv View on GitHub
area: architecture area: onboarding area: sandbox refactor
Dominant language
TypeScript
Stars
22.5k
Forks
3.1k
Avg merge
1d 1h
Merged PRs (30d)
715

Description

## Ownership

@cv owns this issue.

Do not start, assign, or submit this work unless @cv transfers ownership in this issue.

## Problem

Several lifecycle paths apply multiple external effects without one durable recovery contract.

An interruption can leave gateway providers, registry rows, policy state, or channel state ahead of the recorded checkpoint.

Backup and restore policy also differs between rebuild, live recreation, and not-ready repair.

## Desired behavior

- Define durable, secret-free receipts for the current lifecycle effect groups.
- Revalidate each receipt against its live postcondition before a skip.
- Use one backup and restore policy for rebuild, recreation, and repair.
- Restore or reconcile registry state after an interrupted removal.
- Compensate a failed multi-effect apply when the previous state remains valid.
- Report a partial apply with a specific recovery action when compensation cannot complete.

## Change boundary

Add receipts only for existing effects and current recovery consumers.

Do not implement health-before-delete replacement or atomic swap.

Do not add a general transaction framework.

## Security

Receipts must contain identifiers, digests, and logical bindings only.

Compensation must not copy credential values into the session, registry, logs, or events.

## Validation

- Add crash-point tests before and after each covered effect group.
- Test postcondition revalidation before a skip.
- Test compensation success and compensation failure.
- Test backup-policy parity across rebuild, recreation, and repair.
- Test that a resumed apply does not duplicate a destructive create.

## Completion

Covered lifecycle effects have a durable receipt or a documented forward-only recovery contract.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.