fix(shared): stop tracing individual command probes - #8519

Open
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing
Open

fix(shared): stop tracing individual command probes#8519
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing

Conversation

@Radu028

@Radu028Radu028 commented Aug 28, 2026

Copy link
Copy Markdown

What Changed

isExecutableFile in packages/shared/src/shell.ts is now Effect.fnUntraced, so each PATH and PATHEXT candidate check no longer emits a shell.isExecutableFile span. The shell.resolveCommandPath and shell.resolveCommandPathForPlatform spans stay. Command resolution and caching are unchanged. A test asserts the resolution spans are still emitted and the per-candidate span is not.

Why

On Windows, command and editor discovery probes every PATH entry against every PATHEXT extension. Each probe opened its own span, producing thousands of near-empty spans on cold discovery and inflating server traces.

Related to #4210. Complements #5050.

Verification

  • vp test run packages/shared/src/shell.test.ts (31 passed)
  • shared typecheck, targeted lint and fmt

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • No UI changes

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Observability-only change to an internal probe helper; resolution and caching logic are unchanged.

Overview
Windows command resolution was emitting a shell.isExecutableFile trace span for every PATH/PATHEXT candidate check, which could produce thousands of spans during session bootstrap and bloat server traces.

isExecutableFile is now defined with Effect.fnUntraced instead of a named traced Effect.fn, so per-candidate filesystem probes no longer create spans. Higher-level spans such as shell.resolveCommandPath and shell.resolveCommandPathForPlatform are unchanged, and command resolution plus caching behavior is the same.

A new test drives resolveCommandPath with a custom tracer and asserts those resolution spans appear while shell.isExecutableFile does not.

Reviewed by Cursor Bugbot for commit 6b92224442cc7463c0b198da06299623ef85276c. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Stop tracing individual command probes in isExecutableFile

Replaces the Effect.fn("shell.isExecutableFile") wrapper with Effect.fnUntraced in shell.ts, so executability checks no longer create per-probe trace spans. Adds a test in shell.test.ts confirming higher-level shell.resolveCommandPath spans still emit while shell.isExecutableFile does not. Comments around memoization are generalized from shell.isExecutableFile counts to "filesystem probes".

  • Risk: callers relying on shell.isExecutableFile span names in trace dashboards or alerting will no longer see them.

Macroscope summarized 8c7e63a.

@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1dc42642-5fc1-467a-8e7f-21835a4fb219

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 28, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 6b92224

Macroscope's review found this PR approvable — This is a small, isolated observability fix that removes noisy per-candidate filesystem spans while preserving command resolution and higher-level tracing. The added test directly verifies the intended tracing behavior.

You can add or adjust custom eligibility rules. Learn more.

@Radu028
Radu028force-pushed the fix/windows-editor-discovery-tracing branch from 6b92224 to 8c7e63aCompareSeptember 1, 2026 20:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS0-9 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Radu028
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(shared): stop tracing individual command probes - #8519

Open
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing
Open

fix(shared): stop tracing individual command probes#8519
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing

Conversation

@Radu028

@Radu028Radu028 commented Aug 28, 2026

Copy link
Copy Markdown

What Changed

isExecutableFile in packages/shared/src/shell.ts is now Effect.fnUntraced, so each PATH and PATHEXT candidate check no longer emits a shell.isExecutableFile span. The shell.resolveCommandPath and shell.resolveCommandPathForPlatform spans stay. Command resolution and caching are unchanged. A test asserts the resolution spans are still emitted and the per-candidate span is not.

Why

On Windows, command and editor discovery probes every PATH entry against every PATHEXT extension. Each probe opened its own span, producing thousands of near-empty spans on cold discovery and inflating server traces.

Related to #4210. Complements #5050.

Verification

  • vp test run packages/shared/src/shell.test.ts (31 passed)
  • shared typecheck, targeted lint and fmt

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • No UI changes

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Observability-only change to an internal probe helper; resolution and caching logic are unchanged.

Overview
Windows command resolution was emitting a shell.isExecutableFile trace span for every PATH/PATHEXT candidate check, which could produce thousands of spans during session bootstrap and bloat server traces.

isExecutableFile is now defined with Effect.fnUntraced instead of a named traced Effect.fn, so per-candidate filesystem probes no longer create spans. Higher-level spans such as shell.resolveCommandPath and shell.resolveCommandPathForPlatform are unchanged, and command resolution plus caching behavior is the same.

A new test drives resolveCommandPath with a custom tracer and asserts those resolution spans appear while shell.isExecutableFile does not.

Reviewed by Cursor Bugbot for commit 6b92224442cc7463c0b198da06299623ef85276c. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Stop tracing individual command probes in isExecutableFile

Replaces the Effect.fn("shell.isExecutableFile") wrapper with Effect.fnUntraced in shell.ts, so executability checks no longer create per-probe trace spans. Adds a test in shell.test.ts confirming higher-level shell.resolveCommandPath spans still emit while shell.isExecutableFile does not. Comments around memoization are generalized from shell.isExecutableFile counts to "filesystem probes".

  • Risk: callers relying on shell.isExecutableFile span names in trace dashboards or alerting will no longer see them.

Macroscope summarized 8c7e63a.

@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1dc42642-5fc1-467a-8e7f-21835a4fb219

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 28, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 6b92224

Macroscope's review found this PR approvable — This is a small, isolated observability fix that removes noisy per-candidate filesystem spans while preserving command resolution and higher-level tracing. The added test directly verifies the intended tracing behavior.

You can add or adjust custom eligibility rules. Learn more.

@Radu028
Radu028force-pushed the fix/windows-editor-discovery-tracing branch from 6b92224 to 8c7e63aCompareSeptember 1, 2026 20:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS0-9 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Radu028
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(shared): stop tracing individual command probes - #8519

Open
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing
Open

fix(shared): stop tracing individual command probes#8519
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing

Conversation

@Radu028

@Radu028Radu028 commented Aug 28, 2026

Copy link
Copy Markdown

What Changed

isExecutableFile in packages/shared/src/shell.ts is now Effect.fnUntraced, so each PATH and PATHEXT candidate check no longer emits a shell.isExecutableFile span. The shell.resolveCommandPath and shell.resolveCommandPathForPlatform spans stay. Command resolution and caching are unchanged. A test asserts the resolution spans are still emitted and the per-candidate span is not.

Why

On Windows, command and editor discovery probes every PATH entry against every PATHEXT extension. Each probe opened its own span, producing thousands of near-empty spans on cold discovery and inflating server traces.

Related to #4210. Complements #5050.

Verification

  • vp test run packages/shared/src/shell.test.ts (31 passed)
  • shared typecheck, targeted lint and fmt

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • No UI changes

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Observability-only change to an internal probe helper; resolution and caching logic are unchanged.

Overview
Windows command resolution was emitting a shell.isExecutableFile trace span for every PATH/PATHEXT candidate check, which could produce thousands of spans during session bootstrap and bloat server traces.

isExecutableFile is now defined with Effect.fnUntraced instead of a named traced Effect.fn, so per-candidate filesystem probes no longer create spans. Higher-level spans such as shell.resolveCommandPath and shell.resolveCommandPathForPlatform are unchanged, and command resolution plus caching behavior is the same.

A new test drives resolveCommandPath with a custom tracer and asserts those resolution spans appear while shell.isExecutableFile does not.

Reviewed by Cursor Bugbot for commit 6b92224442cc7463c0b198da06299623ef85276c. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Stop tracing individual command probes in isExecutableFile

Replaces the Effect.fn("shell.isExecutableFile") wrapper with Effect.fnUntraced in shell.ts, so executability checks no longer create per-probe trace spans. Adds a test in shell.test.ts confirming higher-level shell.resolveCommandPath spans still emit while shell.isExecutableFile does not. Comments around memoization are generalized from shell.isExecutableFile counts to "filesystem probes".

  • Risk: callers relying on shell.isExecutableFile span names in trace dashboards or alerting will no longer see them.

Macroscope summarized 8c7e63a.

@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1dc42642-5fc1-467a-8e7f-21835a4fb219

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 28, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 6b92224

Macroscope's review found this PR approvable — This is a small, isolated observability fix that removes noisy per-candidate filesystem spans while preserving command resolution and higher-level tracing. The added test directly verifies the intended tracing behavior.

You can add or adjust custom eligibility rules. Learn more.

@Radu028
Radu028force-pushed the fix/windows-editor-discovery-tracing branch from 6b92224 to 8c7e63aCompareSeptember 1, 2026 20:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS0-9 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Radu028
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(shared): stop tracing individual command probes - #8519

Open
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing
Open

fix(shared): stop tracing individual command probes#8519
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing

Conversation

@Radu028

@Radu028Radu028 commented Aug 28, 2026

Copy link
Copy Markdown

What Changed

isExecutableFile in packages/shared/src/shell.ts is now Effect.fnUntraced, so each PATH and PATHEXT candidate check no longer emits a shell.isExecutableFile span. The shell.resolveCommandPath and shell.resolveCommandPathForPlatform spans stay. Command resolution and caching are unchanged. A test asserts the resolution spans are still emitted and the per-candidate span is not.

Why

On Windows, command and editor discovery probes every PATH entry against every PATHEXT extension. Each probe opened its own span, producing thousands of near-empty spans on cold discovery and inflating server traces.

Related to #4210. Complements #5050.

Verification

  • vp test run packages/shared/src/shell.test.ts (31 passed)
  • shared typecheck, targeted lint and fmt

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • No UI changes

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Observability-only change to an internal probe helper; resolution and caching logic are unchanged.

Overview
Windows command resolution was emitting a shell.isExecutableFile trace span for every PATH/PATHEXT candidate check, which could produce thousands of spans during session bootstrap and bloat server traces.

isExecutableFile is now defined with Effect.fnUntraced instead of a named traced Effect.fn, so per-candidate filesystem probes no longer create spans. Higher-level spans such as shell.resolveCommandPath and shell.resolveCommandPathForPlatform are unchanged, and command resolution plus caching behavior is the same.

A new test drives resolveCommandPath with a custom tracer and asserts those resolution spans appear while shell.isExecutableFile does not.

Reviewed by Cursor Bugbot for commit 6b92224442cc7463c0b198da06299623ef85276c. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Stop tracing individual command probes in isExecutableFile

Replaces the Effect.fn("shell.isExecutableFile") wrapper with Effect.fnUntraced in shell.ts, so executability checks no longer create per-probe trace spans. Adds a test in shell.test.ts confirming higher-level shell.resolveCommandPath spans still emit while shell.isExecutableFile does not. Comments around memoization are generalized from shell.isExecutableFile counts to "filesystem probes".

  • Risk: callers relying on shell.isExecutableFile span names in trace dashboards or alerting will no longer see them.

Macroscope summarized 8c7e63a.

@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1dc42642-5fc1-467a-8e7f-21835a4fb219

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 28, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 6b92224

Macroscope's review found this PR approvable — This is a small, isolated observability fix that removes noisy per-candidate filesystem spans while preserving command resolution and higher-level tracing. The added test directly verifies the intended tracing behavior.

You can add or adjust custom eligibility rules. Learn more.

@Radu028
Radu028force-pushed the fix/windows-editor-discovery-tracing branch from 6b92224 to 8c7e63aCompareSeptember 1, 2026 20:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS0-9 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Radu028
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(shared): stop tracing individual command probes - #8519

Open
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing
Open

fix(shared): stop tracing individual command probes#8519
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing

Conversation

@Radu028

@Radu028Radu028 commented Aug 28, 2026

Copy link
Copy Markdown

What Changed

isExecutableFile in packages/shared/src/shell.ts is now Effect.fnUntraced, so each PATH and PATHEXT candidate check no longer emits a shell.isExecutableFile span. The shell.resolveCommandPath and shell.resolveCommandPathForPlatform spans stay. Command resolution and caching are unchanged. A test asserts the resolution spans are still emitted and the per-candidate span is not.

Why

On Windows, command and editor discovery probes every PATH entry against every PATHEXT extension. Each probe opened its own span, producing thousands of near-empty spans on cold discovery and inflating server traces.

Related to #4210. Complements #5050.

Verification

  • vp test run packages/shared/src/shell.test.ts (31 passed)
  • shared typecheck, targeted lint and fmt

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • No UI changes

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Observability-only change to an internal probe helper; resolution and caching logic are unchanged.

Overview
Windows command resolution was emitting a shell.isExecutableFile trace span for every PATH/PATHEXT candidate check, which could produce thousands of spans during session bootstrap and bloat server traces.

isExecutableFile is now defined with Effect.fnUntraced instead of a named traced Effect.fn, so per-candidate filesystem probes no longer create spans. Higher-level spans such as shell.resolveCommandPath and shell.resolveCommandPathForPlatform are unchanged, and command resolution plus caching behavior is the same.

A new test drives resolveCommandPath with a custom tracer and asserts those resolution spans appear while shell.isExecutableFile does not.

Reviewed by Cursor Bugbot for commit 6b92224442cc7463c0b198da06299623ef85276c. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Stop tracing individual command probes in isExecutableFile

Replaces the Effect.fn("shell.isExecutableFile") wrapper with Effect.fnUntraced in shell.ts, so executability checks no longer create per-probe trace spans. Adds a test in shell.test.ts confirming higher-level shell.resolveCommandPath spans still emit while shell.isExecutableFile does not. Comments around memoization are generalized from shell.isExecutableFile counts to "filesystem probes".

  • Risk: callers relying on shell.isExecutableFile span names in trace dashboards or alerting will no longer see them.

Macroscope summarized 8c7e63a.

@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1dc42642-5fc1-467a-8e7f-21835a4fb219

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 28, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 6b92224

Macroscope's review found this PR approvable — This is a small, isolated observability fix that removes noisy per-candidate filesystem spans while preserving command resolution and higher-level tracing. The added test directly verifies the intended tracing behavior.

You can add or adjust custom eligibility rules. Learn more.

@Radu028
Radu028force-pushed the fix/windows-editor-discovery-tracing branch from 6b92224 to 8c7e63aCompareSeptember 1, 2026 20:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS0-9 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Radu028
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(shared): stop tracing individual command probes - #8519

Open
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing
Open

fix(shared): stop tracing individual command probes#8519
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing

Conversation

@Radu028

@Radu028Radu028 commented Aug 28, 2026

Copy link
Copy Markdown

What Changed

isExecutableFile in packages/shared/src/shell.ts is now Effect.fnUntraced, so each PATH and PATHEXT candidate check no longer emits a shell.isExecutableFile span. The shell.resolveCommandPath and shell.resolveCommandPathForPlatform spans stay. Command resolution and caching are unchanged. A test asserts the resolution spans are still emitted and the per-candidate span is not.

Why

On Windows, command and editor discovery probes every PATH entry against every PATHEXT extension. Each probe opened its own span, producing thousands of near-empty spans on cold discovery and inflating server traces.

Related to #4210. Complements #5050.

Verification

  • vp test run packages/shared/src/shell.test.ts (31 passed)
  • shared typecheck, targeted lint and fmt

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • No UI changes

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Observability-only change to an internal probe helper; resolution and caching logic are unchanged.

Overview
Windows command resolution was emitting a shell.isExecutableFile trace span for every PATH/PATHEXT candidate check, which could produce thousands of spans during session bootstrap and bloat server traces.

isExecutableFile is now defined with Effect.fnUntraced instead of a named traced Effect.fn, so per-candidate filesystem probes no longer create spans. Higher-level spans such as shell.resolveCommandPath and shell.resolveCommandPathForPlatform are unchanged, and command resolution plus caching behavior is the same.

A new test drives resolveCommandPath with a custom tracer and asserts those resolution spans appear while shell.isExecutableFile does not.

Reviewed by Cursor Bugbot for commit 6b92224442cc7463c0b198da06299623ef85276c. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Stop tracing individual command probes in isExecutableFile

Replaces the Effect.fn("shell.isExecutableFile") wrapper with Effect.fnUntraced in shell.ts, so executability checks no longer create per-probe trace spans. Adds a test in shell.test.ts confirming higher-level shell.resolveCommandPath spans still emit while shell.isExecutableFile does not. Comments around memoization are generalized from shell.isExecutableFile counts to "filesystem probes".

  • Risk: callers relying on shell.isExecutableFile span names in trace dashboards or alerting will no longer see them.

Macroscope summarized 8c7e63a.

@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1dc42642-5fc1-467a-8e7f-21835a4fb219

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 28, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 6b92224

Macroscope's review found this PR approvable — This is a small, isolated observability fix that removes noisy per-candidate filesystem spans while preserving command resolution and higher-level tracing. The added test directly verifies the intended tracing behavior.

You can add or adjust custom eligibility rules. Learn more.

@Radu028
Radu028force-pushed the fix/windows-editor-discovery-tracing branch from 6b92224 to 8c7e63aCompareSeptember 1, 2026 20:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS0-9 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Radu028
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(shared): stop tracing individual command probes - #8519

Open
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing
Open

fix(shared): stop tracing individual command probes#8519
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing

Conversation

@Radu028

@Radu028Radu028 commented Aug 28, 2026

Copy link
Copy Markdown

What Changed

isExecutableFile in packages/shared/src/shell.ts is now Effect.fnUntraced, so each PATH and PATHEXT candidate check no longer emits a shell.isExecutableFile span. The shell.resolveCommandPath and shell.resolveCommandPathForPlatform spans stay. Command resolution and caching are unchanged. A test asserts the resolution spans are still emitted and the per-candidate span is not.

Why

On Windows, command and editor discovery probes every PATH entry against every PATHEXT extension. Each probe opened its own span, producing thousands of near-empty spans on cold discovery and inflating server traces.

Related to #4210. Complements #5050.

Verification

  • vp test run packages/shared/src/shell.test.ts (31 passed)
  • shared typecheck, targeted lint and fmt

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • No UI changes

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Observability-only change to an internal probe helper; resolution and caching logic are unchanged.

Overview
Windows command resolution was emitting a shell.isExecutableFile trace span for every PATH/PATHEXT candidate check, which could produce thousands of spans during session bootstrap and bloat server traces.

isExecutableFile is now defined with Effect.fnUntraced instead of a named traced Effect.fn, so per-candidate filesystem probes no longer create spans. Higher-level spans such as shell.resolveCommandPath and shell.resolveCommandPathForPlatform are unchanged, and command resolution plus caching behavior is the same.

A new test drives resolveCommandPath with a custom tracer and asserts those resolution spans appear while shell.isExecutableFile does not.

Reviewed by Cursor Bugbot for commit 6b92224442cc7463c0b198da06299623ef85276c. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Stop tracing individual command probes in isExecutableFile

Replaces the Effect.fn("shell.isExecutableFile") wrapper with Effect.fnUntraced in shell.ts, so executability checks no longer create per-probe trace spans. Adds a test in shell.test.ts confirming higher-level shell.resolveCommandPath spans still emit while shell.isExecutableFile does not. Comments around memoization are generalized from shell.isExecutableFile counts to "filesystem probes".

  • Risk: callers relying on shell.isExecutableFile span names in trace dashboards or alerting will no longer see them.

Macroscope summarized 8c7e63a.

@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1dc42642-5fc1-467a-8e7f-21835a4fb219

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 28, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 6b92224

Macroscope's review found this PR approvable — This is a small, isolated observability fix that removes noisy per-candidate filesystem spans while preserving command resolution and higher-level tracing. The added test directly verifies the intended tracing behavior.

You can add or adjust custom eligibility rules. Learn more.

@Radu028
Radu028force-pushed the fix/windows-editor-discovery-tracing branch from 6b92224 to 8c7e63aCompareSeptember 1, 2026 20:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS0-9 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Radu028
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(shared): stop tracing individual command probes - #8519

Open
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing
Open

fix(shared): stop tracing individual command probes#8519
Radu028 wants to merge 1 commit into
pingdotgg:mainfrom
Radu028:fix/windows-editor-discovery-tracing

Conversation

@Radu028

@Radu028Radu028 commented Aug 28, 2026

Copy link
Copy Markdown

What Changed

isExecutableFile in packages/shared/src/shell.ts is now Effect.fnUntraced, so each PATH and PATHEXT candidate check no longer emits a shell.isExecutableFile span. The shell.resolveCommandPath and shell.resolveCommandPathForPlatform spans stay. Command resolution and caching are unchanged. A test asserts the resolution spans are still emitted and the per-candidate span is not.

Why

On Windows, command and editor discovery probes every PATH entry against every PATHEXT extension. Each probe opened its own span, producing thousands of near-empty spans on cold discovery and inflating server traces.

Related to #4210. Complements #5050.

Verification

  • vp test run packages/shared/src/shell.test.ts (31 passed)
  • shared typecheck, targeted lint and fmt

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • No UI changes

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Observability-only change to an internal probe helper; resolution and caching logic are unchanged.

Overview
Windows command resolution was emitting a shell.isExecutableFile trace span for every PATH/PATHEXT candidate check, which could produce thousands of spans during session bootstrap and bloat server traces.

isExecutableFile is now defined with Effect.fnUntraced instead of a named traced Effect.fn, so per-candidate filesystem probes no longer create spans. Higher-level spans such as shell.resolveCommandPath and shell.resolveCommandPathForPlatform are unchanged, and command resolution plus caching behavior is the same.

A new test drives resolveCommandPath with a custom tracer and asserts those resolution spans appear while shell.isExecutableFile does not.

Reviewed by Cursor Bugbot for commit 6b92224442cc7463c0b198da06299623ef85276c. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Stop tracing individual command probes in isExecutableFile

Replaces the Effect.fn("shell.isExecutableFile") wrapper with Effect.fnUntraced in shell.ts, so executability checks no longer create per-probe trace spans. Adds a test in shell.test.ts confirming higher-level shell.resolveCommandPath spans still emit while shell.isExecutableFile does not. Comments around memoization are generalized from shell.isExecutableFile counts to "filesystem probes".

  • Risk: callers relying on shell.isExecutableFile span names in trace dashboards or alerting will no longer see them.

Macroscope summarized 8c7e63a.

@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1dc42642-5fc1-467a-8e7f-21835a4fb219

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 28, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 6b92224

Macroscope's review found this PR approvable — This is a small, isolated observability fix that removes noisy per-candidate filesystem spans while preserving command resolution and higher-level tracing. The added test directly verifies the intended tracing behavior.

You can add or adjust custom eligibility rules. Learn more.

@Radu028
Radu028force-pushed the fix/windows-editor-discovery-tracing branch from 6b92224 to 8c7e63aCompareSeptember 1, 2026 20:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS0-9 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Radu028