Skip to content

feat: usage telemetry - #956

Merged
mckornfield merged 1 commit into
mainfrom
usage-telemetry/mck
Aug 4, 2026
Merged

feat: usage telemetry#956
mckornfield merged 1 commit into
mainfrom
usage-telemetry/mck

Conversation

@mckornfield

@mckornfield mckornfield commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features
    • Added anonymous usage telemetry for CLI command outcomes, onboarding/setup steps, and terminal platform job results.
    • Added global --no-telemetry to disable telemetry for the current invocation.
  • Documentation
    • Added “Telemetry and Privacy” content (and linked it from the README/navigation), including what’s collected/excluded and how to opt out.
    • Updated CLI docs/global options to include --no-telemetry.
    • Refreshed setup guidance with a NeMo Platform artifacts in NGC reference.
  • Tests
    • Expanded telemetry test coverage for command, job, and onboarding events, including opt-out and help behavior.
    • Updated telemetry contract expectations to schema version 1.10.

@mckornfield
mckornfield requested review from a team as code owners July 28, 2026 21:05
@github-actions github-actions Bot added the feat label Jul 28, 2026
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds anonymous telemetry for CLI invocations, setup steps, and terminal platform jobs, wires the --no-telemetry opt-out, updates the telemetry schema version, adds tests, and documents telemetry collection, privacy boundaries, and configuration controls.

Changes

CLI Telemetry

Layer / File(s) Summary
Invocation state and command hook
packages/nemo_platform_ext/src/nemo_platform_ext/cli/{app.py,telemetry/runtime.py,core/...}, packages/nemo_platform_ext/tests/cli/telemetry/test_command_hook.py
Tracks command state, agent mode, outcomes, help suppression, per-invocation opt-out, and emits one command_invoked event.
Setup onboarding telemetry
packages/nemo_platform_ext/src/nemo_platform_ext/cli/commands/setup.py, packages/nemo_platform_ext/tests/cli/{commands/test_setup.py,telemetry/test_onboarding_events.py}
Emits provider, model discovery, skill installation, demo deployment, and setup completion events for success and failure paths.
Platform job telemetry
packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/waiters.py, packages/nemo_platform_ext/tests/cli/{core/test_waiters.py,telemetry/test_job_events.py}
Emits normalized events for completed, cancelled, and failed jobs while excluding timeout-only polling exits.
Telemetry schema contract
packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/events.py, packages/nemo_platform_ext/tests/cli/telemetry/test_{events,wire_contract_smoke}.py
Updates the telemetry schema version from 1.9 to 1.10 and adjusts event contract assertions.
Telemetry privacy documentation
README.md, docs/cli/*, docs/fern/..., docs/telemetry-and-privacy.mdx, docs/set-up/index.mdx
Documents collected and excluded data, opt-out mechanisms, first-run messaging, bundled libraries, endpoint boundaries, navigation, and setup references.
Documentation preview workflow
.github/workflows/fern-docs-preview-comment.yaml
Validates pull request metadata, derives a sanitized preview identifier, and handles preview generation status explicitly.

Possibly related PRs

Suggested labels: docs

Suggested reviewers: tylersbray, benmccown, crookedstorm, svvarom, anubhutivyas

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 21.32% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately reflects the main change: adding usage telemetry.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🛠️ Fix failing CI checks 💡
  • Fix failing CI checks
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch usage-telemetry/mck

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🧹 Nitpick comments (4)
packages/nemo_platform_ext/tests/cli/telemetry/conftest.py (1)

8-31: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Reuse the production list instead of copying it.

If events._CI_ENV_VARS gains a var, this copy drifts and CI flakiness returns.

♻️ Fix
-# Environment variables that is_ci_environment() treats as a CI signal.
-_CI_ENV_VARS = (
-    "CI",
-    "GITLAB_CI",
-    "GITHUB_ACTIONS",
-    "BUILDKITE",
-    "CIRCLECI",
-    "JENKINS_URL",
-    "TEAMCITY_VERSION",
-    "TF_BUILD",
-    "TRAVIS",
-)
+from nemo_platform_ext.cli.telemetry.events import _CI_ENV_VARS
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/nemo_platform_ext/tests/cli/telemetry/conftest.py` around lines 8 -
31, Update the _clear_ci_env fixture to reuse the production _CI_ENV_VARS
definition from events instead of maintaining a local duplicate. Remove the
copied tuple and reference the existing production symbol while preserving the
current monkeypatch.delenv behavior for every configured CI variable.
packages/nemo_platform_ext/tests/cli/telemetry/test_wire_contract_smoke.py (1)

47-78: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Hoist expected_keys to a module constant.

Three identical 30-key literals will drift. Also consider parameterizing the three near-identical tests over (event, expected params, name).

♻️ Sketch
+_EXPECTED_ENVELOPE_KEYS = {
+    "browserType", "clientId", "clientType", "clientVariant", "clientVer",
+    "cpuArchitecture", "deviceGdprBehOptIn", "deviceGdprFuncOptIn",
+    "deviceGdprTechOptIn", "deviceId", "deviceMake", "deviceModel", "deviceOS",
+    "deviceOSVersion", "deviceType", "eventProtocol", "eventSchemaVer",
+    "eventSysVer", "externalUserId", "gdprBehOptIn", "gdprFuncOptIn",
+    "gdprTechOptIn", "idpId", "integrationId", "productName", "productVersion",
+    "sentTs", "sessionId", "userId", "events",
+}

Also applies to: 114-145, 182-213

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/nemo_platform_ext/tests/cli/telemetry/test_wire_contract_smoke.py`
around lines 47 - 78, Hoist the repeated 30-key expected_keys literal into a
module-level constant in test_wire_contract_smoke.py, then reuse it in all three
affected tests. Keep the existing event-specific assertions unchanged;
parameterize the near-identical tests over event, expected parameters, and name
only if this can be done without altering their coverage.
packages/nemo_platform_ext/tests/cli/telemetry/test_onboarding_events.py (1)

161-171: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Drop the redundant local import typer.

Already imported at line 16.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/nemo_platform_ext/tests/cli/telemetry/test_onboarding_events.py`
around lines 161 - 171, Remove the redundant local import of typer from
test_failure_emits_error_and_reraises, relying on the existing module-level
import while leaving the test assertions and behavior unchanged.
packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/runtime.py (1)

42-42: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Annotate ctx.

ctx is the only untyped parameter here; click.Context (import normally) satisfies the concrete-type-hint rule.

As per coding guidelines: "In Python code, prefer concrete type hints over string-based type hints".

♻️ Proposed change
-def on_callback(ctx, *, no_telemetry: bool) -> None:
+def on_callback(ctx: click.Context, *, no_telemetry: bool) -> None:

Add at top of module:

import click
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/runtime.py` at
line 42, Update on_callback by importing click and annotating ctx as
click.Context, while preserving the existing no_telemetry annotation and
function behavior.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/cli/configuration.mdx`:
- Around line 145-156: Reconcile the telemetry model-data disclosures with the
actual emitted payload: update docs/cli/configuration.mdx lines 145-156 and
docs/telemetry-and-privacy.mdx lines 27-33 consistently, stating either exact
model names or bucketed model data as implemented. Remove or qualify conflicting
claims so both pages describe the same payload accurately.

In `@docs/fern/snippets/_snippets/cli-summary.mdx`:
- Line 15: Remove the direct edit from
docs/fern/snippets/_snippets/cli-summary.mdx lines 15-15, update the CLI
documentation generator source responsible for docs/cli/reference.mdx lines
33-33, then run make generate-cli-reference-docs to regenerate both artifacts.

In `@packages/nemo_platform_ext/src/nemo_platform_ext/cli/commands/setup.py`:
- Around line 541-550: Update the OnboardingStepEvent calls in the provider
creation flow around client.inference.providers.create so provider_type always
uses the fixed provider label expected by telemetry instead of the
user-controlled or host-derived name variable. Apply the same fixed value to
both the ERROR and COMPLETED events.

In `@packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/help_formatter.py`:
- Around line 118-126: Update the exception handling around
super().main(standalone_mode=False) so KeyboardInterrupt is treated as a user
cancellation rather than an error: record the appropriate non-error task status
before re-raising it, while preserving existing SystemExit and other
BaseException handling.
- Around line 84-117: Update the exception handling in the wrapper around
super().main to catch plain click.ClickException after the more specific
UsageError and Exit cases, set status to TaskStatusEnum.ERROR, and call
handle_exception(e, e.ctx) when standalone_mode is enabled before re-raising;
preserve existing handling for UsageError, Exit, and Abort.

In `@packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/waiters.py`:
- Line 103: Update the duration calculation in the waiter result to use the
job’s own start timestamp from job_status, so duration_sec represents actual job
runtime rather than polling time; if that timestamp is unavailable, rename and
document the field as wait duration instead.
- Around line 89-93: Update the model handling in the waiter event construction
to avoid emitting arbitrary API-provided model names: coerce non-null values to
str, then bucket or allow-list them to a safe known identifier, using
"undefined" for missing or unrecognized values. Preserve numeric token values
and ensure the resulting model field always satisfies JobRunEvent validation.

In `@packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/handler.py`:
- Around line 299-303: The _run_sync path that creates a ThreadPoolExecutor must
shut it down after future.result completes. Wrap the executor lifecycle in a
context manager or equivalent guaranteed cleanup, while preserving the existing
30-second timeout and asyncio.run behavior.

---

Nitpick comments:
In `@packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/runtime.py`:
- Line 42: Update on_callback by importing click and annotating ctx as
click.Context, while preserving the existing no_telemetry annotation and
function behavior.

In `@packages/nemo_platform_ext/tests/cli/telemetry/conftest.py`:
- Around line 8-31: Update the _clear_ci_env fixture to reuse the production
_CI_ENV_VARS definition from events instead of maintaining a local duplicate.
Remove the copied tuple and reference the existing production symbol while
preserving the current monkeypatch.delenv behavior for every configured CI
variable.

In `@packages/nemo_platform_ext/tests/cli/telemetry/test_onboarding_events.py`:
- Around line 161-171: Remove the redundant local import of typer from
test_failure_emits_error_and_reraises, relying on the existing module-level
import while leaving the test assertions and behavior unchanged.

In `@packages/nemo_platform_ext/tests/cli/telemetry/test_wire_contract_smoke.py`:
- Around line 47-78: Hoist the repeated 30-key expected_keys literal into a
module-level constant in test_wire_contract_smoke.py, then reuse it in all three
affected tests. Keep the existing event-specific assertions unchanged;
parameterize the near-identical tests over event, expected parameters, and name
only if this can be done without altering their coverage.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 5ec3284b-642a-4eba-8abb-c187135b41fd

📥 Commits

Reviewing files that changed from the base of the PR and between e39c168 and e71c8f9.

⛔ Files ignored due to path filters (21)
  • sdk/python/nemo-platform/src/nemo_platform/cli/app.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/commands/setup.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/core/help_formatter.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/core/waiters.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/__init__.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/emit.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/events.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/handler.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/runtime.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/session.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/config/models.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_setup.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_waiters.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/conftest.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_command_hook.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_emit.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_events.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_handler.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_job_events.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_onboarding_events.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_wire_contract_smoke.py is excluded by !sdk/**
📒 Files selected for processing (27)
  • README.md
  • docs/cli/configuration.mdx
  • docs/cli/reference.mdx
  • docs/fern/snippets/_snippets/cli-summary.mdx
  • docs/fern/versions/latest.yml
  • docs/telemetry-and-privacy.mdx
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/app.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/commands/setup.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/help_formatter.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/waiters.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/__init__.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/emit.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/events.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/handler.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/runtime.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/session.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/config/models.py
  • packages/nemo_platform_ext/tests/cli/commands/test_setup.py
  • packages/nemo_platform_ext/tests/cli/core/test_waiters.py
  • packages/nemo_platform_ext/tests/cli/telemetry/conftest.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_command_hook.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_emit.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_events.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_handler.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_job_events.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_onboarding_events.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_wire_contract_smoke.py

Comment thread docs/cli/configuration.mdx
Comment thread docs/fern/snippets/_snippets/cli-summary.mdx
Comment thread packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/waiters.py Outdated
Comment thread packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/waiters.py Outdated
@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 30389/38416 79.1% 63.8%
Integration Tests 17994/37085 48.5% 21.0%

@mckornfield
mckornfield force-pushed the usage-telemetry/mck branch 2 times, most recently from 53317f7 to fdb4a66 Compare July 29, 2026 17:16

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/cli/configuration.mdx`:
- Line 199: Update the documentation sentence near the nemo command to state
that exporting NEMO_TELEMETRY_ENABLED=false applies to the current shell session
and its child processes only. Remove the claim that telemetry remains disabled
for all future sessions unless the variable is explicitly added to shell startup
configuration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 0e3a3f18-a58d-4bef-a60b-275321830184

📥 Commits

Reviewing files that changed from the base of the PR and between 53317f7 and fdb4a66.

⛔ Files ignored due to path filters (10)
  • sdk/python/nemo-platform/src/nemo_platform/cli/app.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/commands/setup.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/core/help_formatter.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/core/waiters.py is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/runtime.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_setup.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_waiters.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_command_hook.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_job_events.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_onboarding_events.py is excluded by !sdk/**
📒 Files selected for processing (16)
  • README.md
  • docs/cli/configuration.mdx
  • docs/cli/reference.mdx
  • docs/fern/snippets/_snippets/cli-summary.mdx
  • docs/fern/versions/latest.yml
  • docs/telemetry-and-privacy.mdx
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/app.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/commands/setup.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/help_formatter.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/waiters.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/runtime.py
  • packages/nemo_platform_ext/tests/cli/commands/test_setup.py
  • packages/nemo_platform_ext/tests/cli/core/test_waiters.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_command_hook.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_job_events.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_onboarding_events.py
🚧 Files skipped from review as they are similar to previous changes (15)
  • README.md
  • docs/fern/versions/latest.yml
  • docs/fern/snippets/_snippets/cli-summary.mdx
  • docs/cli/reference.mdx
  • packages/nemo_platform_ext/tests/cli/commands/test_setup.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/app.py
  • packages/nemo_platform_ext/tests/cli/core/test_waiters.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/runtime.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_command_hook.py
  • docs/telemetry-and-privacy.mdx
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/waiters.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_job_events.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/commands/setup.py
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/help_formatter.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_onboarding_events.py

Comment thread docs/cli/configuration.mdx Outdated
Comment thread packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/help_formatter.py Outdated
@mckornfield
mckornfield requested a review from a team as a code owner July 29, 2026 20:09

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/fern-docs-preview-comment.yaml:
- Around line 43-49: Update the PR comment targeting logic around PR_NUMBER so
it does not trust the artifact value alone. Prefer the PR number from
github.event.workflow_run.pull_requests, or validate that the artifact metadata
head SHA matches github.event.workflow_run.head_sha before using its PR_NUMBER;
preserve the existing integer validation and only post the comment after the
trusted association is established.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 99bb2de1-824c-4fb6-867f-a71e441a3467

📥 Commits

Reviewing files that changed from the base of the PR and between fdb4a66 and 31ccddf.

⛔ Files ignored due to path filters (3)
  • sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/events.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_events.py is excluded by !sdk/**
  • sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_wire_contract_smoke.py is excluded by !sdk/**
📒 Files selected for processing (5)
  • .github/workflows/fern-docs-preview-comment.yaml
  • docs/set-up/index.mdx
  • packages/nemo_platform_ext/src/nemo_platform_ext/cli/telemetry/events.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_events.py
  • packages/nemo_platform_ext/tests/cli/telemetry/test_wire_contract_smoke.py

Comment thread .github/workflows/fern-docs-preview-comment.yaml Outdated
@mckornfield
mckornfield force-pushed the usage-telemetry/mck branch 2 times, most recently from 048f5a6 to f5c7332 Compare July 29, 2026 21:23

@tylersbray tylersbray left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks. The maybe step name leak is the main thing that should be double checked, the extra setup.py cleanup would be nice, added some nitpicks just to make myself read it, no pressure.

Comment thread packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/waiters.py Outdated
Comment thread packages/nemo_platform_ext/src/nemo_platform_ext/cli/commands/setup.py Outdated
Comment thread packages/nemo_platform_ext/src/nemo_platform_ext/cli/core/help_formatter.py Outdated
@mckornfield
mckornfield force-pushed the usage-telemetry/mck branch from f5c7332 to fcee8fa Compare July 30, 2026 19:02
@github-actions

Copy link
Copy Markdown
Contributor

@mckornfield
mckornfield force-pushed the usage-telemetry/mck branch 3 times, most recently from 0cbee5a to 30c2d52 Compare July 31, 2026 17:25
@mckornfield
mckornfield added this pull request to the merge queue Aug 3, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 3, 2026
@mckornfield
mckornfield force-pushed the usage-telemetry/mck branch from 30c2d52 to 3618b90 Compare August 3, 2026 22:46
Signed-off-by: Matt Kornfield <mkornfield@nvidia.com>
@mckornfield
mckornfield force-pushed the usage-telemetry/mck branch from 3618b90 to fb3d379 Compare August 4, 2026 16:52
@mckornfield
mckornfield enabled auto-merge August 4, 2026 16:58
@mckornfield
mckornfield added this pull request to the merge queue Aug 4, 2026
Merged via the queue into main with commit 612841f Aug 4, 2026
54 checks passed
@mckornfield
mckornfield deleted the usage-telemetry/mck branch August 4, 2026 17:57
@coderabbitai coderabbitai Bot mentioned this pull request Aug 6, 2026
15 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants