> This page is for NeMo Relay, version dev.
> For other versions, use one of these documentation indexes:
> - Latest (v0.10.4) (default): https://docs.nvidia.com/nemo/relay/latest/llms.txt
> - dev: https://docs.nvidia.com/nemo/relay/dev/llms.txt
> - v0.10.4: https://docs.nvidia.com/nemo/relay/v0.10.4/llms.txt
> - v0.9.4: https://docs.nvidia.com/nemo/relay/v0.9.4/llms.txt
> - v0.8.4: https://docs.nvidia.com/nemo/relay/v0.8.4/llms.txt
> - v0.7.3: https://docs.nvidia.com/nemo/relay/v0.7.3/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/relay/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/relay/_mcp/server.

# Struct Component Recorder

> Producer capability scoped to one admitted registration.

Generated from `cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-pii-redaction -p nemo-relay-ffi -p nemo-relay-types -p nemo-relay-plugin -p nemo-relay-worker-proto -p nemo-relay-worker`.

```rust
pub struct ComponentRecorder { /* private fields */ }
```

Producer capability scoped to one admitted registration.

Clones share its lease; the last recorder drop closes the component. Producers cannot refresh or replace registrations. Disabled recorders have no active identity and skip lazy observation factories.

## Implementations

### `impl ComponentRecorder`

<pre />

#### `identity`

<pre />

Borrow the original registration identity, or None while disabled.

Closure or retention cannot relabel this handle as another registration.

#### `reader`

<pre />

Read the same source context without granting lifecycle authority.

#### `capture_origin`

<pre />

Capture bounded configuration attribution for an operation's completion.

Refreshing does not pin history or invalidate the captured origin. Disabled collection returns an inert recorder without allocating.

#### `register_extension`

<pre />

Admit namespaced extension metadata and its component code counter.

The handle retains registration/descriptor generation scope. Disabled mode returns None without backend allocation. Explicit capacity failure may be reported using a summary-only classification overflow observation.

#### `register_extension_class`

<pre />

Admit a custom failure-class name for a registered extension. Each code has four fixed class slots, each at most 32 bytes, within metadata budgets. Disabled contexts return None without registering metadata.

#### `record_lazy`

<pre />

Build and record one observation synchronously only when enabled.

Reserved summaries accept positive deltas independently of history pressure. Projections follow store unlocking. Disabled mode skips the factory and returns [`RecordOutcome::Disabled`](/reference/api/rust-library-reference/nemo-relay/diagnostics/enum-recordoutcome) without loss accounting.

#### `record_without_projection_lazy`

<pre />

Use the same recording boundary while bypassing every projection.

Sink feedback and existing operational emitters use this path to avoid output recursion or duplicates. Disabled mode skips the factory.

#### `record`

<pre />

Record constructed evidence and attempt optional projections.

Disabled mode discards it but cannot undo caller construction work. Built-in producers use [`Self::record_lazy`](/reference/api/rust-library-reference/nemo-relay/diagnostics/struct-componentrecorder) for diagnostic-only work.

#### `record_without_projection`

<pre />

Record constructed evidence without any projection callback.

Prefer [`Self::record_without_projection_lazy`](/reference/api/rust-library-reference/nemo-relay/diagnostics/struct-componentrecorder) to skip construction while disabled. Counting and retention use the same canonical boundary.

## Trait Implementations

### `impl Clone for ComponentRecorder`

<pre />

#### `clone`

<pre />

#### `clone_from`

<pre />

### `impl Debug for ComponentRecorder`

<pre />

#### `fmt`

<pre />