getsentry / getsentry/sentry-javascript

deno: `init()` never registers the channel-injection hooks, though Deno supports them

オープン
#23,892 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
Bug Deno javascript
主要言語
TypeScript
スター
8.7k
フォーク
1.8k
平均マージ
1日 17時間
マージ済み PR(30日)
515

説明

Deno 2.9.2 has a working `Module.registerHooks`, and `hasStableSyncModuleHooks` already returns `true` for Deno unconditionally (`register.ts:20`). Calling the register function directly works:

```
$ deno run -A reg.mjs
marker after register: {"runtime":[]} # hooks registered
```

But `@sentry/deno`'s `init()` never calls it:

```
$ deno run -A nospans.mjs
orchestrion marker: undefined
```

Node's `init()` calls `registerDiagnosticsChannelInjection()` and then `detectOrchestrionSetup()`. Deno instead expects the user to remember `deno run --import=@sentry/deno/import app.ts`, and gives no warning at all if they forget. All 22 channel integrations still install and report `Integration installed`.

**Work item.** Call `registerDiagnosticsChannelInjection()` from `@sentry/deno`'s `init()` behind the same `enableRuntimeChannelInjection` option Node uses, and call `detectOrchestrionSetup()` after client creation. Keep `@sentry/deno/import` working for the case where modules are imported before `init()`.

**Prior art ***(related history only)*. getsentry/sentry-javascript#21451 (merged) added the `@sentry/deno/import` runtime hook, and getsentry/sentry-javascript#22790 (merged) raised the floor to Deno >= 2.8.3, which is what makes the `Module.registerHooks` path safe to call unconditionally. No issue covers calling it from `init()`.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start in the @sentry/deno init() implementation and inspect register.ts:20, where hasStableSyncModuleHooks is defined. Trace registerDiagnosticsChannelInjection(), detectOrchestrionSetup(), and the @sentry/deno/import entry point before changing initialization. Done means init() honors enableRuntimeChannelInjection, detects missing setup after client creation, and preserves imports that run before init().

索引モデルが issue の本文から書いたものです。

評価

技術スタック
deno, typescript
領域
backend
issue の種類
機能追加
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
明確に書かれている
初心者へのやさしさ
74/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。