Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for preflight by newrelic-experimental

Pod holds 24 of 44 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to preflight by newrelic-experimental.

Most discussed

Foolowed the installation instructions - no data appearing locally or in newrelic

Followed the install instructions - mode is both, newrelic licence and api key are correct-. dashboards installed with --all restarted claude and it picked up newrelic-preflight mcp, but only 2 tools are available.

preflight setup states that claude will start server on 127.0.0.1:7777 - well irtt did not happen either. started preflight with --local - server is up but no data is flowing to it. claude hooks appear to be not firing yet the /hooks command list those installed. as a result no…

Read the thread · 2026-06-23 · closed · external user · 7 comments

v1.4.34: registry manifest missing runtime deps (undici, hono, js-yaml) — fresh install crashes at startup

Summary: A fresh npm install -g @newrelic/preflight@1.4.34 produces a broken installation: the CLI crashes at startup with ERR_MODULE_NOT_FOUND for undici.

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'undici' imported from /usr/lib/node_modules/@newrelic/preflight/dist/proxy/otlp-receiver.js

Root cause: The npm registry manifest (packument) for 1.4.34 does not match the package.json inside the published tarball. Three runtime dependencies are missing from the…

Read the thread · 2026-07-14 · closed · external user · 5 comments

launchd dashboard daemon fails with "env: node: No such file or directory" (exit 127) on Homebrew-node setups

Summary

After preflight setup with the always-on background dashboard enabled, the launchd agent com.preflight.dashboard crash-loops and the dashboard never serves persistently. The collector hooks still write event buffers, but nothing processes them — so the dashboard UI only ever shows the live session, and historical sessions never appear.

launchctl list | grep preflight shows last exit 127, and ~/.newrelic-preflight/dashboard.log is filled with:

env: node: No such file…

[Read the thread](https://github.com/newrelic-experimental/preflight/issues/13) · 2026-06-29 · closed · external user · 5 comments

### Native Windows + cloud/both mode: no events are ever sent (NrIngestManager gated on !isProvisional; sync resolution lacks the cwd fallback) - metrics-only, fully silent

## Summary

On **native Windows**, a `mode: 'cloud'` / `mode: 'both'` install silently sends **no events at all** (`AiToolCall`, `AiMcpToolCall`, `AiCodingTask`, `AiAntiPattern`, …). Metrics arrive fine, so the integration looks healthy — logs show `Sent metrics to NR` on schedule, no errors, no warnings — but every NRQL query against the event types returns 0 rows, forever.

Root cause: the `--stdio` MCP's **synchronous** session-id resolution has no cwd-breadcrumb fallback, so on native…

[Read the thread](https://github.com/newrelic-experimental/preflight/issues/320) · 2026-07-31 · closed · external user · 4 comments

### WSL2 (Linux CC): session_id never resolves via official hook alone; harvest scheduler never sends to New Relic even after fixing that

## Environment

- WSL2 (Ubuntu), Claude Code installed via npm inside WSL (Linux CC, not the Windows desktop app) — `platformTarget: wsl-linux-cc`
- Shell: fish
- `@newrelic/preflight` 1.0.5 and 1.0.6 (reproduced on both)
- Tried both manual config and official `preflight install --linux-cc --license-key ... --account-id ...`

## Bug A: session_id never resolves with the official hook alone

With only the installed hook command present (`preflight-collector pre-tool` / `post-tool`),…

[Read the thread](https://github.com/newrelic-experimental/preflight/issues/17) · 2026-07-02 · closed · external user · 4 comments

### Native Windows: --stdio MCP never resolves session_id (Linux-only ancestor-PID breadcrumb walk via Git Bash) -> sessions/ and History always empty

## Summary

On **native Windows Claude Code** (not WSL), the dashboard History / `sessions/` is permanently empty and `nr_observe_health` returns `session_id: null`, even though hooks fire correctly and the live "current session" view works. No session summary is ever persisted, so History, weekly summaries, and MODEL PERFORMANCE never populate — for every native-Windows user.

Root cause: the `--stdio` MCP server can never resolve its owning Claude Code session id, because the breadcrumb…

[Read the thread](https://github.com/newrelic-experimental/preflight/issues/268) · 2026-07-22 · closed · external user · 3 comments

### wsl-windows-cc: model/token/cost collection silently fails — WSL collector can't read the Windows transcript_path

**Summary:** In the officially supported `wsl-windows-cc` setup (Windows Claude Code desktop + preflight installed inside WSL, hooks generated by `preflight install --windows-cc`), tool events arrive fine, but **token/model/cost collection never produces a single event**. The dashboard permanently shows `unknown` with no Eff. / Success / Avg $ under MODEL PERFORMANCE, and Cost per Outcome never populates. No error is surfaced anywhere, so the integration *looks* healthy.

**Root cause:**…

[Read the thread](https://github.com/newrelic-experimental/preflight/issues/193) · 2026-07-14 · closed · external user · 3 comments

### /dev/stdin EACCES when Preflight is launched from Windows-host Claude Code via wsl.exe

**Summary:** When Claude Code runs on the Windows host and spawns Preflight inside WSL (stdio crossing the Windows/Linux boundary via `wsl.exe`), any attempt to (re)open `/dev/stdin` fails with EACCES.

**Root cause:** For `wsl.exe`-launched sessions, the stdin pipe is created by WSL's init/relay, which runs as root. The pipe inode is therefore `root:root` with mode `0600`. Reading the *inherited* fd 0 works fine, but opening `/dev/stdin` (→ `/proc/self/fd/0`) re-opens the pipe inode, which…

[Read the thread](https://github.com/newrelic-experimental/preflight/issues/99) · 2026-07-10 · closed · external user · 3 comments

## Most recent

### GitHub Copilot hooks file uses Claude Code's nested JSON shape, so Copilot's hooks-runner never executes any hook

### Summary

The Copilot hooks file generated by the installer (`generateCopilotHooksFile()` in `src/install/cli.ts`) uses Claude Code's nested settings.json hook shape:

```json
"PreToolUse": [{ "matcher": "", "hooks": [{ "type": "command", "command": "preflight-collector pre-tool" }] }]

GitHub Copilot's actual hooks schema is flat — each array entry is the command hook object directly:

"PreToolUse": [{ "type": "command", "command": "preflight-collector pre-tool" }]

Both…

Read the thread · 2026-09-04 · open · outside contributor · 0 comments

Per-skill cost/tokens/duration exposed by nr_observe_get_cost_per_tool is not rendered anywhere

Summary

#568 added costBySkill to nr_observe_get_cost_per_tool and threaded skillName onto AiToolCall, so per-skill cost, tokens, and duration are available from both the MCP tool and NRQL. Neither is surfaced anywhere a person would actually look:

  • The local dashboard's Cost by Tool card still shows a single Skill bar — no breakdown by skill name.
  • The shipped ai-coding-assistant-team-view NR dashboard still facets by tool only, so code-review and security-review

Read the thread · 2026-09-04 · closed · outside contributor · 0 comments

Subagent (Task/Workflow) tool calls bypass AuditTrailManager entirely

Problem

SubagentWatcher (src/hooks/subagent-watcher.ts) is the only mechanism that observes activity inside Task-tool or Workflow-tool spawned subagents. By its own doc comment, its purpose is narrowly scoped to closing a cost-accounting gap: it polls subagent transcripts and emits mode: 'subagent_token' records so subagent token usage reaches CostTracker. It never extracts or forwards the subagent's actual tool-call records (Bash, Edit, Write, etc).

As a result, nothing a subagent…

Read the thread · 2026-09-04 · open · outside contributor · 0 comments

Kiro sessions: session_id fails to resolve behind wrapped launchers, misdetected as generic-mcp, tool-map casing wrong

Summary

Several related bugs affect Kiro (and potentially other launchers that wrap the MCP server process):

  1. session_id never resolves when a launcher interposes a process above the MCP server. npx runs npm exec, which runs the server — so the server's process.ppid no longer matches the breadcrumb the hook collector wrote at its own ppid. Resolution silently fails while the MCP connection still reports healthy.
  2. **Kiro sessions record as platform: "generic-mcp" instead…

Read the thread · 2026-09-03 · closed · outside contributor · 0 comments

Release workflow's MCP Registry publish step fails: server.json description exceeds 100-char limit

Problem

The Release workflow's "Publish to MCP Registry" step has been failing on every run since roughly 2026-09-02 16:29 UTC (the last success was at 02:10 UTC that day). npm publish itself succeeds every time — the package reaches npm fine — but the subsequent mcp-publisher publish step fails with:

Error: publish failed: server returned status 422:
{"title":"Unprocessable Entity","status":422,"detail":"validation failed",
 "errors":[{"message":"expected length <=…

[Read the thread](https://github.com/newrelic-experimental/preflight/issues/556) · 2026-09-02 · closed · outside contributor · 0 comments

### OTLP SessionSpan mis-tags Claude Code sessions as generic-mcp (same root cause as #539)

## Problem

`SessionSpan`'s `ai.platform` attribute is set from `createDefaultRegistry().getActive().platformName` (`src/index.ts`, in the `if (config.otlp.transport !== 'nr-events-api')` branch at MCP server startup). This hits the same root cause as #539: `ClaudeCodeAdapter.isSupported()` checks env vars (`CLAUDE_CODE`/`CLAUDE_CODE_VERSION`/`MCP_CLIENT==='claude-code'`) that a real Claude Code process doesn't set (it sets `CLAUDECODE=1`/`CLAUDE_CODE_SESSION_ID`/`CLAUDE_CODE_ENTRYPOINT`…

[Read the thread](https://github.com/newrelic-experimental/preflight/issues/540) · 2026-09-01 · open · outside contributor · 0 comments

### ClaudeCodeAdapter.isSupported() checks env vars that real Claude Code hook processes don't set

## Problem

`ClaudeCodeAdapter.isSupported()` (`src/platforms/claude-code-adapter.ts`) checks:

```ts
process.env.CLAUDE_CODE !== undefined ||
process.env.CLAUDE_CODE_VERSION !== undefined ||
process.env.MCP_CLIENT === 'claude-code'

None of these match the environment variables Claude Code's own CLI/hook processes actually set. A real Claude Code session sets CLAUDECODE=1 (no underscore between CLAUDE and CODE), CLAUDE_CODE_ENTRYPOINT, and CLAUDE_CODE_SESSION_ID — verified directly…

Read the thread · 2026-09-01 · closed · outside contributor · 0 comments

API Failures MCP tool and dashboard always return empty metrics — StopFailure hook never wired in

Summary

ApiFailureTracker exists to report model-API failures — calls that ultimately failed after Claude Code's own retries were exhausted — but nothing feeds it real data. The nr_observe_get_api_failures MCP tool always returns empty metrics, and there's no dashboard visibility into API failure rates, error types, or throttling.

Root cause

Claude Code's StopFailure hook (fires once per turn when a model-API call ultimately fails) is never installed or wired into the…

Read the thread · 2026-08-31 · closed · outside contributor · 0 comments

Homelab server mode: no dashboard viewing yet (ingest-only)

Problem

preflight server (homelab remote server mode) accepts events forwarded from remote clients over /ingest and accumulates them into standard session-store files, but does not yet serve a dashboard for viewing that aggregated data — visiting http://<homelab>:<port>/ 404s. The only way to see accumulated sessions today is to inspect the session-store files directly on the server, or run a separate preflight --local process against the same storage path (which itself only binds…

Read the thread · 2026-08-31 · open · outside contributor · 0 comments

Copilot tool-call activity captured locally but never reaches New Relic (no owning --stdio engine)

Summary

When Copilot (CLI or VS Code Copilot Chat) tool calls are only ever captured by the long-running preflight --local dashboard process rather than by a dedicated, correctly-scoped --stdio engine, they show up in the local dashboard but never reach New Relic — silently and with no error surfaced to the user.

Confirmed findings

  1. preflight --local (the dashboard LaunchAgent, com.preflight.dashboard) unconditionally sets process.env.NR_AI_MODE = 'local' at startup…

Read the thread · 2026-08-26 · open · outside contributor · 0 comments

PR tracking only counts gh CLI commands; PRs opened via the GitHub MCP tools are captured but never counted

Summary

The Git Efficiency "PRs Opened" metric only registers pull requests created through the gh CLI (gh pr create etc.). When an agent opens a PR via the GitHub MCP server's tools (create_pull_request, update_pull_request, ...) - now a very common path - the tool call is captured and stored by Preflight, but the PR metric ignores it and reports zero. The signal is present in the pipeline and simply not consumed.

This is not host-specific: it affects any platform whose agent…

Read the thread · 2026-08-20 · closed · outside contributor · 0 comments

Copilot SDK usage extension: no health-flag/dashboard signal when it silently fails

Follow-up from the review of PR #437's Copilot SDK adapter + assistant.usage extension work.

copilot-sdk-extension/extension.mjs's joinSession()/write failures now get written to stderr (fixed in a follow-up commit on #437), which the CLI captures into ~/.copilot/logs/extensions/. That's better than fully silent, but it's still not visible anywhere a user would normally look.

The sibling VS Code integration (CopilotUsageWatcher) has a real health flag for the equivalent problem —…

Read the thread · 2026-08-19 · closed · outside contributor · 0 comments

RetryDetector flags normal work as thrashing: tools with no extractInputMeta case always score similarity 1.0 (PowerShell), and the dedupe key never dedupes

Summary

RetryDetector reports thrashing for ordinary, successful, non-repeated work. In a session with zero failed tool calls, it emitted 17 thrashing alerts and drove the dashboard's Compute Waste panel to needs attention with ~37,862 "wasted" tokens.

The root cause is that similarity is computed over the serialized ToolCallRecord, and for any tool that has no case in extractInputMeta() the record carries no input-derived fields at all — so every call of that tool…

Read the thread · 2026-08-18 · closed · external user · 2 comments

nr_observe_get_context_composition: dominance percentages are ~5 orders of magnitude too high (totalTokens excludes cache tokens)

Summary

nr_observe_get_context_composition (and GET /api/context-composition) reports dominanceAlerts[].percent values in the millions of percent, and fillPercent values near zero, for every turn.

Root cause: ContextCompositionTracker.recordTokenEvent() uses event.inputTokens alone as the turn's total context size, while putting cacheReadTokens + cacheCreationTokens into the conversation_history bucket. With prompt caching, inputTokens is only the uncached delta…

Read the thread · 2026-08-18 · closed · external user · 2 comments

EfficiencyScorer's session average resets on MCP process restart, with no clean way to reseed it

Description

Same bug class as #451, different tracker, but a genuinely harder fix than #452/#453. EfficiencyScorer.scores (per-task efficiency scores) is pure in-memory state, resetting on every MCP server process restart. FullSessionSummary.efficiencyScore persists only the single averaged number (efficiencyScorer.getSessionAverage()'s .score), not the count of scores that contributed to it.

Impact

After a restart, a resumed session's efficiencyScore reflects only tasks…

Read the thread · 2026-08-15 · closed · outside contributor · 0 comments

QualityProxyTracker's diff-apply/test-pass/backtrack counts reset to zero on MCP process restart

Description

Same bug class as #451, different tracker. QualityProxyTracker's internal events array is pure in-memory state, resetting on every MCP server process restart. Its own doc comment on getRawCounts() already says its return shape is "the shape persisted onto FullSessionSummary.qualityProxy" — i.e. it's already structured almost identically to ModelUsageTracker's modelBreakdown, which was fixed the same way in PR #450.

Impact

After a restart, qualityProxy

Read the thread · 2026-08-15 · closed · outside contributor · 0 comments

The remaining reports are on the project's issue tracker.