Skip to content

feat: add @evlog/telemetry package - #417

Merged
HugoRCD merged 6 commits into
mainfrom
feat/telemetry
Jul 16, 2026
Merged

feat: add @evlog/telemetry package#417
HugoRCD merged 6 commits into
mainfrom
feat/telemetry

Conversation

@HugoRCD

@HugoRCD HugoRCD commented Jul 15, 2026

Copy link
Copy Markdown
Owner

🔗 Linked issue

📚 Description

📝 Checklist

  • I have linked an issue or discussion.
  • I have updated the documentation accordingly.

Summary by CodeRabbit

  • New Features

    • Added a new @evlog/telemetry package for privacy-conscious CLI/automation telemetry, including event wrapping, local buffering, generated disclosures, and a non-blocking flush with debug mode.
    • Added telemetry lifecycle commands (status, enable, disable) and server ingestion validation with an ingest export.
    • Added GitHub Actions telemetry support and an example playground CLI.
  • Documentation

    • Added “Tool telemetry” docs and initial package documentation for @evlog/telemetry.
  • Tests

    • Added end-to-end telemetry/outbox/drain tests, ingestion validation tests, and TypeScript typing coverage.
  • Chores

    • Updated publish workflow, PR scope validation, and versioning via a changeset.

@HugoRCD HugoRCD self-assigned this Jul 15, 2026
@vercel

vercel Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
evlog-docs Ready Ready Preview, Comment, Open in v0 Jul 16, 2026 8:37am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
just-use-evlog Skipped Skipped Jul 16, 2026 8:37am

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f69de283-723f-447e-820e-8c86f2907f25

📥 Commits

Reviewing files that changed from the base of the PR and between a72b016 and 4746e91.

📒 Files selected for processing (3)
  • apps/docs/content/4.use-cases/6.telemetry.md
  • packages/telemetry/src/types.ts
  • packages/telemetry/test/telemetry-typing.test.ts

📝 Walkthrough

Walkthrough

Introduces @evlog/telemetry, a CLI and automation telemetry package with consent controls, sanitized event capture, disk buffering, HTTP ingestion, integrations, documentation, tests, examples, and publication wiring.

Changes

Telemetry package

Layer / File(s) Summary
Telemetry contracts and persistence
packages/telemetry/src/types.ts, packages/telemetry/src/outbox.ts, packages/telemetry/src/drain.ts, packages/telemetry/src/sanitize.ts, packages/telemetry/src/enrich.ts
Defines run-event contracts, sanitization and enrichment, idempotency keys, NDJSON buffering with locking and retention, and configurable delivery drains.
Runtime orchestration and consent
packages/telemetry/src/create.ts, packages/telemetry/src/consent.ts, packages/telemetry/src/notice.ts, packages/telemetry/src/disclosure.ts, packages/telemetry/src/commands.ts
Implements telemetry execution, consent resolution, lifecycle controls, notices, disclosures, and telemetry CLI commands.
Server ingestion validation
packages/telemetry/src/ingest.ts, packages/telemetry/test/ingest.test.ts
Validates and normalizes ingest request bodies, run events, environment data, and allowlisted custom fields.
CLI and automation integrations
packages/telemetry/src/citty.ts, packages/telemetry/src/github-actions.ts, packages/telemetry/src/index.ts, examples/telemetry-playground/*
Adds citty command wrapping, GitHub Actions metadata injection, public exports, and a runnable playground.
Documentation and validation
apps/docs/content/4.use-cases/*, packages/telemetry/README.md, packages/telemetry/test/*, packages/telemetry/tsconfig.json, packages/telemetry/vitest.config.ts
Documents installation, integration, ingestion, consent, disclosure, and reliability behavior while adding runtime, snapshot, and typing tests.
Package publication and release wiring
packages/telemetry/package.json, packages/telemetry/tsdown.config.ts, .changeset/telemetry-package.md, .github/workflows/*, .github/pull_request_template.md
Defines package exports and build configuration, adds the minor-release changeset, and enables telemetry publication and PR scope validation.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CLI
  participant TelemetryHandle
  participant Outbox
  participant IngestEndpoint
  CLI->>TelemetryHandle: execute command
  TelemetryHandle->>Outbox: store sanitized run event
  TelemetryHandle->>IngestEndpoint: POST buffered events
  IngestEndpoint-->>TelemetryHandle: return validation/delivery result
  TelemetryHandle->>Outbox: remove delivered events
Loading
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The template is present, but the linked issue, description, and checklist are left unfilled, so it lacks the required PR details. Fill in the Linked issue, Description, and Checklist sections with a clear summary and any relevant issue or documentation references.
Docstring Coverage ⚠️ Warning Docstring coverage is 61.82% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise, conventional, and accurately summarizes the main change: adding the @evlog/telemetry package.
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
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/telemetry

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Thank you for following the naming conventions! 🙏

@HugoRCD

HugoRCD commented Jul 15, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@HugoRCD HugoRCD changed the title feat(telemetry): add @evlog/telemetry package feat: add @evlog/telemetry package Jul 15, 2026
@pkg-pr-new

pkg-pr-new Bot commented Jul 15, 2026

Copy link
Copy Markdown
npm i https://pkg.pr.new/HugoRCD/evlog@417
npm i https://pkg.pr.new/HugoRCD/evlog/@evlog/nuxthub@417
npm i https://pkg.pr.new/HugoRCD/evlog/@evlog/telemetry@417

commit: 4746e91

@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: 11

🤖 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 `@examples/telemetry-playground/smoke.ts`:
- Around line 17-20: Update outboxPath to use logical OR when selecting the
XDG_CONFIG_HOME value, so an empty or otherwise falsy environment variable falls
back to join(homedir(), '.config') while preserving the existing path
construction.

In `@packages/telemetry/src/create.ts`:
- Around line 213-222: Update disableTelemetry and enableTelemetry so consent
changes also modify the active telemetry instance’s runtime state, rather than
only persisting the preference. Ensure disabling stops recording and delivery
before purgeOutbox runs, preventing the outbox from being recreated, and
enabling reactivates an existing disabled instance while preserving the
persisted preference behavior.
- Around line 76-79: Update the context construction in the telemetry creation
flow to sanitize opts?.systemCustom before assigning ctx.custom. Reuse the
existing sanitizeCustom mechanism if available, configured with an explicit
allowlist and bounded keys, string lengths, and values; ensure no raw
systemCustom fields bypass sanitization while preserving the expected custom
record type.

In `@packages/telemetry/src/idempotency.ts`:
- Around line 20-27: Update fnv1a32 to encode input with TextEncoder and iterate
over the resulting UTF-8 bytes, removing the charCodeAt-based truncation while
preserving the seeded FNV-1a accumulation and unsigned return value.

In `@packages/telemetry/src/outbox.ts`:
- Around line 57-67: Update readAll() to validate each parsed StoredEvent’s
storedAt timestamp and exclude events whose age exceeds maxEventAgeMs before
adding them to the returned events. Preserve skipping malformed JSON and only
enqueue valid run events that are within the configured retention window.
- Around line 6-10: Add JSDoc for the exported contracts at
packages/telemetry/src/outbox.ts lines 6-10, documenting option units, defaults,
and behavior; packages/telemetry/src/drain.ts line 3, documenting
delivery-result semantics; and packages/telemetry/src/consent.ts line 6,
documenting each preference state. Ensure all public API documentation is
concise and reflects the existing runtime behavior.
- Around line 39-42: The outbox mutations must share one synchronization
mechanism to prevent append, rewrite, purge, and unlink races. In
packages/telemetry/src/outbox.ts at lines 39-42, update the append flow to
acquire the existing shared lock before writing; at lines 107-113, acquire that
same lock before unlinking. In packages/telemetry/src/consent.ts at lines 45-47,
route consent purging through the synchronized outbox abstraction instead of
performing an unsynchronized direct mutation.
- Around line 160-173: Update the withLock method to recover abandoned lock
files: add bounded acquisition retries, and when the existing outbox.lock is
stale, verify its ownership/expiry metadata before removing and reclaiming it.
Preserve exclusive locking for active owners, ensure retries eventually fail
rather than loop indefinitely, and keep cleanup limited to locks owned by this
mechanism.

In `@packages/telemetry/src/paths.ts`:
- Around line 5-7: Update getTelemetryDir so an empty XDG_CONFIG_HOME is treated
like an unset value before selecting the base directory. Preserve the existing
XDG_CONFIG_HOME path for non-empty values and continue falling back to
homedir()/.config otherwise.

In `@packages/telemetry/src/types.ts`:
- Around line 94-116: Update CustomFields and TelemetryHandle in types.ts to
support declared generic custom fields, including string values for allowlisted
fields. Add the public set method used by createTelemetry, parameterized with
the handle’s custom-field type so declared fields receive autocomplete while
preserving the existing telemetry API.

In `@packages/telemetry/test/telemetry.test.ts`:
- Around line 18-22: Update the beforeEach setup to remove XDG_CONFIG_HOME with
delete instead of assigning undefined, while preserving the existing cleanup of
DO_NOT_TRACK and EVLOG_TELEMETRY so the variable is truly absent during each
test.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c891aef7-f79c-4136-8eaf-63abe50a1440

📥 Commits

Reviewing files that changed from the base of the PR and between a3e01c3 and 34ca1a5.

⛔ Files ignored due to path filters (2)
  • packages/telemetry/test/__snapshots__/telemetry.test.ts.snap is excluded by !**/*.snap
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (33)
  • .changeset/telemetry-package.md
  • .github/pull_request_template.md
  • .github/workflows/ci.yml
  • .github/workflows/semantic-pull-request.yml
  • apps/docs/content/4.use-cases/0.overview.md
  • apps/docs/content/4.use-cases/6.telemetry/01.overview.md
  • examples/telemetry-playground/cli.ts
  • examples/telemetry-playground/package.json
  • examples/telemetry-playground/smoke.ts
  • package.json
  • packages/telemetry/README.md
  • packages/telemetry/package.json
  • packages/telemetry/src/citty.ts
  • packages/telemetry/src/commands.ts
  • packages/telemetry/src/consent.ts
  • packages/telemetry/src/create.ts
  • packages/telemetry/src/disclosure.ts
  • packages/telemetry/src/drain.ts
  • packages/telemetry/src/enrich.ts
  • packages/telemetry/src/github-actions.ts
  • packages/telemetry/src/idempotency.ts
  • packages/telemetry/src/index.ts
  • packages/telemetry/src/notice.ts
  • packages/telemetry/src/outbox.ts
  • packages/telemetry/src/paths.ts
  • packages/telemetry/src/sanitize.ts
  • packages/telemetry/src/storage.ts
  • packages/telemetry/src/types.ts
  • packages/telemetry/test/telemetry-typing.test.ts
  • packages/telemetry/test/telemetry.test.ts
  • packages/telemetry/tsconfig.json
  • packages/telemetry/tsdown.config.ts
  • packages/telemetry/vitest.config.ts

Comment thread examples/telemetry-playground/smoke.ts
Comment thread packages/telemetry/src/create.ts
Comment thread packages/telemetry/src/create.ts
Comment thread packages/telemetry/src/idempotency.ts
Comment thread packages/telemetry/src/outbox.ts
Comment thread packages/telemetry/src/outbox.ts
Comment thread packages/telemetry/src/outbox.ts Outdated
Comment thread packages/telemetry/src/paths.ts
Comment thread packages/telemetry/src/types.ts Outdated
Comment thread packages/telemetry/test/telemetry.test.ts
@vercel
vercel Bot temporarily deployed to Preview – just-use-evlog July 15, 2026 19:16 Inactive
@vercel
vercel Bot temporarily deployed to Preview – evlog-docs July 15, 2026 19:16 Inactive
@HugoRCD
HugoRCD marked this pull request as ready for review July 16, 2026 08:08
@HugoRCD HugoRCD changed the title feat: add @evlog/telemetry package feat: add @evlog/telemetry package Jul 16, 2026

@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: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
examples/telemetry-playground/smoke.ts (1)

31-37: 🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

Do not swallow every outbox read failure.

The catch currently treats permission errors, invalid paths, and filesystem failures as “opt-out or first run,” so the smoke check can pass while persistence is broken. Handle only ENOENT as an expected missing-outbox case; rethrow or fail for other errors.

🤖 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 `@examples/telemetry-playground/smoke.ts` around lines 31 - 37, Update the
outbox read catch around readFile in the smoke check to handle only ENOENT as
the expected missing-outbox case. Preserve the zero-line behavior for a
nonexistent outbox, but rethrow or otherwise fail for permission, invalid-path,
and other filesystem errors instead of swallowing them.
packages/telemetry/README.md (1)

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

Fix grammatical error.

Change "a analytics" to "an analytics".

📝 Proposed fix
-Ship usage insight without shipping a analytics SDK: wrap your [citty](https://github.com/unjs/citty) command tree (or call `createTelemetry()` in scripts) and get **one structured event per command** — command name, sanitized flags, duration, outcome, and optional counters via `telemetry.set()`.
+Ship usage insight without shipping an analytics SDK: wrap your [citty](https://github.com/unjs/citty) command tree (or call `createTelemetry()` in scripts) and get **one structured event per command** — command name, sanitized flags, duration, outcome, and optional counters via `telemetry.set()`.
🤖 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/telemetry/README.md` at line 18, In the README description, correct
the article before “analytics” from “a” to “an” while preserving the rest of the
usage explanation unchanged.
🤖 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 @.changeset/telemetry-package.md:
- Line 5: Add the top-level Markdown heading “@evlog/telemetry” immediately
after the frontmatter in the changeset, before the existing release description,
to satisfy the MD041 requirement.

In `@packages/telemetry/src/outbox.ts`:
- Around line 189-198: Optimize the size-based compaction loop after the
“oldest-first drop” comment by pre-serializing each event once and tracking its
UTF-8 byte length in a running total. Remove repeated whole-array JSON
stringification and byte-length calculation from the while loop, decrementing
the total as events are shifted; reuse the serialized entries when writing the
final outbox contents.

---

Outside diff comments:
In `@examples/telemetry-playground/smoke.ts`:
- Around line 31-37: Update the outbox read catch around readFile in the smoke
check to handle only ENOENT as the expected missing-outbox case. Preserve the
zero-line behavior for a nonexistent outbox, but rethrow or otherwise fail for
permission, invalid-path, and other filesystem errors instead of swallowing
them.

In `@packages/telemetry/README.md`:
- Line 18: In the README description, correct the article before “analytics”
from “a” to “an” while preserving the rest of the usage explanation unchanged.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: b3462a73-5876-4f6e-a225-6d78c84fc829

📥 Commits

Reviewing files that changed from the base of the PR and between 34ca1a5 and 7fb730d.

⛔ Files ignored due to path filters (1)
  • packages/telemetry/test/__snapshots__/telemetry.test.ts.snap is excluded by !**/*.snap
📒 Files selected for processing (20)
  • .changeset/telemetry-package.md
  • apps/docs/content/4.use-cases/0.overview.md
  • apps/docs/content/4.use-cases/6.telemetry.md
  • examples/telemetry-playground/smoke.ts
  • packages/telemetry/README.md
  • packages/telemetry/package.json
  • packages/telemetry/src/consent.ts
  • packages/telemetry/src/create.ts
  • packages/telemetry/src/disclosure.ts
  • packages/telemetry/src/drain.ts
  • packages/telemetry/src/idempotency.ts
  • packages/telemetry/src/index.ts
  • packages/telemetry/src/ingest.ts
  • packages/telemetry/src/notice.ts
  • packages/telemetry/src/outbox.ts
  • packages/telemetry/src/paths.ts
  • packages/telemetry/src/sanitize.ts
  • packages/telemetry/test/ingest.test.ts
  • packages/telemetry/test/telemetry.test.ts
  • packages/telemetry/tsdown.config.ts

Comment thread .changeset/telemetry-package.md
Comment thread packages/telemetry/src/outbox.ts Outdated

@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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
packages/telemetry/src/github-actions.ts (1)

28-40: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Merge systemCustom instead of overwriting it.

By spreading ...opts and then defining systemCustom, any systemCustom fields provided by the caller in opts will be completely overwritten. Merge the existing opts?.systemCustom with the new fields to prevent data loss.

♻️ Proposed fix
   return {
     ...base,
     run(command, fn, opts) {
       return base.run(command, fn, {
         ...opts,
         systemCustom: {
+          ...(opts?.systemCustom || {}),
           ghaAction: action,
           ghaEvent: eventType,
         },
       })
     },
   }
🤖 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/telemetry/src/github-actions.ts` around lines 28 - 40, Update the
run method in the returned wrapper to merge opts?.systemCustom with the
ghaAction and ghaEvent fields instead of replacing systemCustom, preserving all
caller-provided custom fields while ensuring the GitHub Actions values are
applied.
packages/telemetry/src/create.ts (1)

82-86: 🩺 Stability & Availability | 🔴 Critical | ⚡ Quick win

Prevent unhandled promise rejections from crashing the process.

instance.init() is called as a floating promise (void instance.init()) in createTelemetry. If resolveMachineId or flushBacklog reject, it will cause an UnhandledPromiseRejection, which crashes the host application in modern Node.js environments. Wrap the initialization logic in a try/catch block to ensure background telemetry failures never disrupt the user's CLI execution.

🔒️ Proposed fix
   async init(): Promise<void> {
     if (!this._enabled) return
-    this.machineId = await resolveMachineId(this.options.name)
-    await this.flushBacklog()
+    try {
+      this.machineId = await resolveMachineId(this.options.name)
+      await this.flushBacklog()
+    } catch {
+      // Silent failure: never crash the host application for telemetry initialization
+    }
   }
🤖 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/telemetry/src/create.ts` around lines 82 - 86, Update the Telemetry
instance’s init method to wrap resolveMachineId and flushBacklog in a try/catch,
swallowing or safely handling initialization errors so the floating init promise
never produces an unhandled rejection. Preserve the existing disabled early
return and initialization order.
🤖 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 `@packages/telemetry/src/types.ts`:
- Around line 90-101: Update the CustomFields type to map explicitly over keyof
TFields for allowlisted keys, then intersect that mapped type with a broad
string index for non-allowlisted keys. Preserve CustomFieldValue<TFields[K]> for
declared fields while retaining boolean, number, or undefined fallback values
elsewhere.

---

Outside diff comments:
In `@packages/telemetry/src/create.ts`:
- Around line 82-86: Update the Telemetry instance’s init method to wrap
resolveMachineId and flushBacklog in a try/catch, swallowing or safely handling
initialization errors so the floating init promise never produces an unhandled
rejection. Preserve the existing disabled early return and initialization order.

In `@packages/telemetry/src/github-actions.ts`:
- Around line 28-40: Update the run method in the returned wrapper to merge
opts?.systemCustom with the ghaAction and ghaEvent fields instead of replacing
systemCustom, preserving all caller-provided custom fields while ensuring the
GitHub Actions values are applied.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 79be3104-a12c-442a-b4a6-852786560a05

📥 Commits

Reviewing files that changed from the base of the PR and between 7fb730d and a72b016.

📒 Files selected for processing (8)
  • .changeset/telemetry-package.md
  • examples/telemetry-playground/smoke.ts
  • packages/telemetry/README.md
  • packages/telemetry/src/create.ts
  • packages/telemetry/src/github-actions.ts
  • packages/telemetry/src/outbox.ts
  • packages/telemetry/src/types.ts
  • packages/telemetry/test/telemetry-typing.test.ts

Comment thread packages/telemetry/src/types.ts Outdated
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.

1 participant