Make analyzer timeout configurable - #749

Merged
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout
Nov 10, 2025
Merged

Make analyzer timeout configurable#749
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout

Conversation

CopilotAI commented Nov 9, 2025

Copy link
Copy Markdown
Contributor

The expansion analyzer timeout was hardcoded at 10 seconds. This PR makes it configurable via CLI flags and test parameters, with a 100ms default for tests to keep them fast.

Changes

Core API

  • source-analyze now requires #:timeout-ms parameter (was hardcoded at 10000ms)
  • resyntax-analyze and resyntax-analyze-all accept optional #:timeout-ms with 10000ms default
  • Timeout logging changed from seconds to milliseconds for precision

CLI

  • Added --analyzer-timeout <ms> flag to resyntax analyze and resyntax fix commands
  • Defaults to 10000ms when unspecified

Test Infrastructure

  • Added current-analyzer-timeout-millis parameter (default: 100ms)
  • Implemented @analyzer-timeout-millis test parameter for test:, no-change-test:, and analysis-test: cases

Example

#lang resyntax/test
test: "fast tests use 100ms default"
- (or1 (or23))
- (or123)
test: "override for complex analysis"
@analyzer-timeout-millis 5000
- (complex-code)
- (refactored-code)
analysis-test: "works with all test types"
@analyzer-timeout-millis 500
- (code)
@inspect - (subform)
@property foo

Command line:

resyntax analyze --file myfile.rkt --analyzer-timeout 15000
resyntax fix --directory src/ --analyzer-timeout 5000
Original prompt

This section details on the original issue you should resolve

<issue_title>Configurable analyzer timeout</issue_title>
<issue_description>The expansion analyzer timeout should be configurable, both at the command line and in analysis-test: cases. It should be passed to source-analyze explicitly as a mandatory keyword argument. The main.rkt Resyntax code should use the same default timeout that source-analyze currently does, but in #lang resyntax/test the timeout should default to something very short, like 100ms. Test cases should be able to specify a longer timeout with an @analyzer-timeout-millis test parameter, like so:

#lang resyntax/test
header: - #lang racket/base
test: "foo"
@analyzer-timeout-millis 500
- (old-code)
- (new-code)
no-change-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
analysis-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
@inspect - old-code
@property bar
@assert baz
```</issue_description>
## Comments on the Issue (you are @copilot in this section)
<comments>
</comments>

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

CopilotAIand others added 2 commits November 9, 2025 17:18
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
CopilotAI changed the title [WIP] Add configurable analyzer timeout in source-analyzeMake analyzer timeout configurableNov 9, 2025
CopilotAI requested a review from jackfirthNovember 9, 2025 17:35
@jackfirth
jackfirth marked this pull request as ready for review November 9, 2025 18:24

@github-actionsgithub-actionsBot 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.

Resyntax analyzed 6 files in this pull request and found no issues.

@coveralls

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build #320

Details

  • 61 of 82(74.39%) changed or added relevant lines in 6 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.05%) to 93.63%

Changes Missing CoverageCovered LinesChanged/Added Lines%
main.rkt172085.0%
test.rkt81266.67%
cli.rkt72133.33%
TotalsCoverage Status
Change from base Build #317:-0.05%
Covered Lines:15140
Relevant Lines:16170

💛 - Coveralls

@jackfirth
jackfirth merged commit 186fd5e into masterNov 10, 2025
11 of 12 checks passed
@jackfirth
jackfirth deleted the copilot/configurable-analyzer-timeout branch November 10, 2025 04:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configurable analyzer timeout

3 participants

@coveralls@jackfirth
, '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

Make analyzer timeout configurable - #749

Merged
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout
Nov 10, 2025
Merged

Make analyzer timeout configurable#749
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout

Conversation

CopilotAI commented Nov 9, 2025

Copy link
Copy Markdown
Contributor

The expansion analyzer timeout was hardcoded at 10 seconds. This PR makes it configurable via CLI flags and test parameters, with a 100ms default for tests to keep them fast.

Changes

Core API

  • source-analyze now requires #:timeout-ms parameter (was hardcoded at 10000ms)
  • resyntax-analyze and resyntax-analyze-all accept optional #:timeout-ms with 10000ms default
  • Timeout logging changed from seconds to milliseconds for precision

CLI

  • Added --analyzer-timeout <ms> flag to resyntax analyze and resyntax fix commands
  • Defaults to 10000ms when unspecified

Test Infrastructure

  • Added current-analyzer-timeout-millis parameter (default: 100ms)
  • Implemented @analyzer-timeout-millis test parameter for test:, no-change-test:, and analysis-test: cases

Example

#lang resyntax/test
test: "fast tests use 100ms default"
- (or1 (or23))
- (or123)
test: "override for complex analysis"
@analyzer-timeout-millis 5000
- (complex-code)
- (refactored-code)
analysis-test: "works with all test types"
@analyzer-timeout-millis 500
- (code)
@inspect - (subform)
@property foo

Command line:

resyntax analyze --file myfile.rkt --analyzer-timeout 15000
resyntax fix --directory src/ --analyzer-timeout 5000
Original prompt

This section details on the original issue you should resolve

<issue_title>Configurable analyzer timeout</issue_title>
<issue_description>The expansion analyzer timeout should be configurable, both at the command line and in analysis-test: cases. It should be passed to source-analyze explicitly as a mandatory keyword argument. The main.rkt Resyntax code should use the same default timeout that source-analyze currently does, but in #lang resyntax/test the timeout should default to something very short, like 100ms. Test cases should be able to specify a longer timeout with an @analyzer-timeout-millis test parameter, like so:

#lang resyntax/test
header: - #lang racket/base
test: "foo"
@analyzer-timeout-millis 500
- (old-code)
- (new-code)
no-change-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
analysis-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
@inspect - old-code
@property bar
@assert baz
```</issue_description>
## Comments on the Issue (you are @copilot in this section)
<comments>
</comments>

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

CopilotAIand others added 2 commits November 9, 2025 17:18
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
CopilotAI changed the title [WIP] Add configurable analyzer timeout in source-analyzeMake analyzer timeout configurableNov 9, 2025
CopilotAI requested a review from jackfirthNovember 9, 2025 17:35
@jackfirth
jackfirth marked this pull request as ready for review November 9, 2025 18:24

@github-actionsgithub-actionsBot 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.

Resyntax analyzed 6 files in this pull request and found no issues.

@coveralls

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build #320

Details

  • 61 of 82(74.39%) changed or added relevant lines in 6 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.05%) to 93.63%

Changes Missing CoverageCovered LinesChanged/Added Lines%
main.rkt172085.0%
test.rkt81266.67%
cli.rkt72133.33%
TotalsCoverage Status
Change from base Build #317:-0.05%
Covered Lines:15140
Relevant Lines:16170

💛 - Coveralls

@jackfirth
jackfirth merged commit 186fd5e into masterNov 10, 2025
11 of 12 checks passed
@jackfirth
jackfirth deleted the copilot/configurable-analyzer-timeout branch November 10, 2025 04:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configurable analyzer timeout

3 participants

@coveralls@jackfirth
, '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

Make analyzer timeout configurable - #749

Merged
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout
Nov 10, 2025
Merged

Make analyzer timeout configurable#749
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout

Conversation

CopilotAI commented Nov 9, 2025

Copy link
Copy Markdown
Contributor

The expansion analyzer timeout was hardcoded at 10 seconds. This PR makes it configurable via CLI flags and test parameters, with a 100ms default for tests to keep them fast.

Changes

Core API

  • source-analyze now requires #:timeout-ms parameter (was hardcoded at 10000ms)
  • resyntax-analyze and resyntax-analyze-all accept optional #:timeout-ms with 10000ms default
  • Timeout logging changed from seconds to milliseconds for precision

CLI

  • Added --analyzer-timeout <ms> flag to resyntax analyze and resyntax fix commands
  • Defaults to 10000ms when unspecified

Test Infrastructure

  • Added current-analyzer-timeout-millis parameter (default: 100ms)
  • Implemented @analyzer-timeout-millis test parameter for test:, no-change-test:, and analysis-test: cases

Example

#lang resyntax/test
test: "fast tests use 100ms default"
- (or1 (or23))
- (or123)
test: "override for complex analysis"
@analyzer-timeout-millis 5000
- (complex-code)
- (refactored-code)
analysis-test: "works with all test types"
@analyzer-timeout-millis 500
- (code)
@inspect - (subform)
@property foo

Command line:

resyntax analyze --file myfile.rkt --analyzer-timeout 15000
resyntax fix --directory src/ --analyzer-timeout 5000
Original prompt

This section details on the original issue you should resolve

<issue_title>Configurable analyzer timeout</issue_title>
<issue_description>The expansion analyzer timeout should be configurable, both at the command line and in analysis-test: cases. It should be passed to source-analyze explicitly as a mandatory keyword argument. The main.rkt Resyntax code should use the same default timeout that source-analyze currently does, but in #lang resyntax/test the timeout should default to something very short, like 100ms. Test cases should be able to specify a longer timeout with an @analyzer-timeout-millis test parameter, like so:

#lang resyntax/test
header: - #lang racket/base
test: "foo"
@analyzer-timeout-millis 500
- (old-code)
- (new-code)
no-change-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
analysis-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
@inspect - old-code
@property bar
@assert baz
```</issue_description>
## Comments on the Issue (you are @copilot in this section)
<comments>
</comments>

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

CopilotAIand others added 2 commits November 9, 2025 17:18
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
CopilotAI changed the title [WIP] Add configurable analyzer timeout in source-analyzeMake analyzer timeout configurableNov 9, 2025
CopilotAI requested a review from jackfirthNovember 9, 2025 17:35
@jackfirth
jackfirth marked this pull request as ready for review November 9, 2025 18:24

@github-actionsgithub-actionsBot 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.

Resyntax analyzed 6 files in this pull request and found no issues.

@coveralls

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build #320

Details

  • 61 of 82(74.39%) changed or added relevant lines in 6 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.05%) to 93.63%

Changes Missing CoverageCovered LinesChanged/Added Lines%
main.rkt172085.0%
test.rkt81266.67%
cli.rkt72133.33%
TotalsCoverage Status
Change from base Build #317:-0.05%
Covered Lines:15140
Relevant Lines:16170

💛 - Coveralls

@jackfirth
jackfirth merged commit 186fd5e into masterNov 10, 2025
11 of 12 checks passed
@jackfirth
jackfirth deleted the copilot/configurable-analyzer-timeout branch November 10, 2025 04:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configurable analyzer timeout

3 participants

@coveralls@jackfirth
, '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

Make analyzer timeout configurable - #749

Merged
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout
Nov 10, 2025
Merged

Make analyzer timeout configurable#749
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout

Conversation

CopilotAI commented Nov 9, 2025

Copy link
Copy Markdown
Contributor

The expansion analyzer timeout was hardcoded at 10 seconds. This PR makes it configurable via CLI flags and test parameters, with a 100ms default for tests to keep them fast.

Changes

Core API

  • source-analyze now requires #:timeout-ms parameter (was hardcoded at 10000ms)
  • resyntax-analyze and resyntax-analyze-all accept optional #:timeout-ms with 10000ms default
  • Timeout logging changed from seconds to milliseconds for precision

CLI

  • Added --analyzer-timeout <ms> flag to resyntax analyze and resyntax fix commands
  • Defaults to 10000ms when unspecified

Test Infrastructure

  • Added current-analyzer-timeout-millis parameter (default: 100ms)
  • Implemented @analyzer-timeout-millis test parameter for test:, no-change-test:, and analysis-test: cases

Example

#lang resyntax/test
test: "fast tests use 100ms default"
- (or1 (or23))
- (or123)
test: "override for complex analysis"
@analyzer-timeout-millis 5000
- (complex-code)
- (refactored-code)
analysis-test: "works with all test types"
@analyzer-timeout-millis 500
- (code)
@inspect - (subform)
@property foo

Command line:

resyntax analyze --file myfile.rkt --analyzer-timeout 15000
resyntax fix --directory src/ --analyzer-timeout 5000
Original prompt

This section details on the original issue you should resolve

<issue_title>Configurable analyzer timeout</issue_title>
<issue_description>The expansion analyzer timeout should be configurable, both at the command line and in analysis-test: cases. It should be passed to source-analyze explicitly as a mandatory keyword argument. The main.rkt Resyntax code should use the same default timeout that source-analyze currently does, but in #lang resyntax/test the timeout should default to something very short, like 100ms. Test cases should be able to specify a longer timeout with an @analyzer-timeout-millis test parameter, like so:

#lang resyntax/test
header: - #lang racket/base
test: "foo"
@analyzer-timeout-millis 500
- (old-code)
- (new-code)
no-change-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
analysis-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
@inspect - old-code
@property bar
@assert baz
```</issue_description>
## Comments on the Issue (you are @copilot in this section)
<comments>
</comments>

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

CopilotAIand others added 2 commits November 9, 2025 17:18
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
CopilotAI changed the title [WIP] Add configurable analyzer timeout in source-analyzeMake analyzer timeout configurableNov 9, 2025
CopilotAI requested a review from jackfirthNovember 9, 2025 17:35
@jackfirth
jackfirth marked this pull request as ready for review November 9, 2025 18:24

@github-actionsgithub-actionsBot 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.

Resyntax analyzed 6 files in this pull request and found no issues.

@coveralls

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build #320

Details

  • 61 of 82(74.39%) changed or added relevant lines in 6 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.05%) to 93.63%

Changes Missing CoverageCovered LinesChanged/Added Lines%
main.rkt172085.0%
test.rkt81266.67%
cli.rkt72133.33%
TotalsCoverage Status
Change from base Build #317:-0.05%
Covered Lines:15140
Relevant Lines:16170

💛 - Coveralls

@jackfirth
jackfirth merged commit 186fd5e into masterNov 10, 2025
11 of 12 checks passed
@jackfirth
jackfirth deleted the copilot/configurable-analyzer-timeout branch November 10, 2025 04:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configurable analyzer timeout

3 participants

@coveralls@jackfirth
, '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

Make analyzer timeout configurable - #749

Merged
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout
Nov 10, 2025
Merged

Make analyzer timeout configurable#749
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout

Conversation

CopilotAI commented Nov 9, 2025

Copy link
Copy Markdown
Contributor

The expansion analyzer timeout was hardcoded at 10 seconds. This PR makes it configurable via CLI flags and test parameters, with a 100ms default for tests to keep them fast.

Changes

Core API

  • source-analyze now requires #:timeout-ms parameter (was hardcoded at 10000ms)
  • resyntax-analyze and resyntax-analyze-all accept optional #:timeout-ms with 10000ms default
  • Timeout logging changed from seconds to milliseconds for precision

CLI

  • Added --analyzer-timeout <ms> flag to resyntax analyze and resyntax fix commands
  • Defaults to 10000ms when unspecified

Test Infrastructure

  • Added current-analyzer-timeout-millis parameter (default: 100ms)
  • Implemented @analyzer-timeout-millis test parameter for test:, no-change-test:, and analysis-test: cases

Example

#lang resyntax/test
test: "fast tests use 100ms default"
- (or1 (or23))
- (or123)
test: "override for complex analysis"
@analyzer-timeout-millis 5000
- (complex-code)
- (refactored-code)
analysis-test: "works with all test types"
@analyzer-timeout-millis 500
- (code)
@inspect - (subform)
@property foo

Command line:

resyntax analyze --file myfile.rkt --analyzer-timeout 15000
resyntax fix --directory src/ --analyzer-timeout 5000
Original prompt

This section details on the original issue you should resolve

<issue_title>Configurable analyzer timeout</issue_title>
<issue_description>The expansion analyzer timeout should be configurable, both at the command line and in analysis-test: cases. It should be passed to source-analyze explicitly as a mandatory keyword argument. The main.rkt Resyntax code should use the same default timeout that source-analyze currently does, but in #lang resyntax/test the timeout should default to something very short, like 100ms. Test cases should be able to specify a longer timeout with an @analyzer-timeout-millis test parameter, like so:

#lang resyntax/test
header: - #lang racket/base
test: "foo"
@analyzer-timeout-millis 500
- (old-code)
- (new-code)
no-change-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
analysis-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
@inspect - old-code
@property bar
@assert baz
```</issue_description>
## Comments on the Issue (you are @copilot in this section)
<comments>
</comments>

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

CopilotAIand others added 2 commits November 9, 2025 17:18
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
CopilotAI changed the title [WIP] Add configurable analyzer timeout in source-analyzeMake analyzer timeout configurableNov 9, 2025
CopilotAI requested a review from jackfirthNovember 9, 2025 17:35
@jackfirth
jackfirth marked this pull request as ready for review November 9, 2025 18:24

@github-actionsgithub-actionsBot 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.

Resyntax analyzed 6 files in this pull request and found no issues.

@coveralls

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build #320

Details

  • 61 of 82(74.39%) changed or added relevant lines in 6 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.05%) to 93.63%

Changes Missing CoverageCovered LinesChanged/Added Lines%
main.rkt172085.0%
test.rkt81266.67%
cli.rkt72133.33%
TotalsCoverage Status
Change from base Build #317:-0.05%
Covered Lines:15140
Relevant Lines:16170

💛 - Coveralls

@jackfirth
jackfirth merged commit 186fd5e into masterNov 10, 2025
11 of 12 checks passed
@jackfirth
jackfirth deleted the copilot/configurable-analyzer-timeout branch November 10, 2025 04:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configurable analyzer timeout

3 participants

@coveralls@jackfirth
, '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

Make analyzer timeout configurable - #749

Merged
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout
Nov 10, 2025
Merged

Make analyzer timeout configurable#749
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout

Conversation

CopilotAI commented Nov 9, 2025

Copy link
Copy Markdown
Contributor

The expansion analyzer timeout was hardcoded at 10 seconds. This PR makes it configurable via CLI flags and test parameters, with a 100ms default for tests to keep them fast.

Changes

Core API

  • source-analyze now requires #:timeout-ms parameter (was hardcoded at 10000ms)
  • resyntax-analyze and resyntax-analyze-all accept optional #:timeout-ms with 10000ms default
  • Timeout logging changed from seconds to milliseconds for precision

CLI

  • Added --analyzer-timeout <ms> flag to resyntax analyze and resyntax fix commands
  • Defaults to 10000ms when unspecified

Test Infrastructure

  • Added current-analyzer-timeout-millis parameter (default: 100ms)
  • Implemented @analyzer-timeout-millis test parameter for test:, no-change-test:, and analysis-test: cases

Example

#lang resyntax/test
test: "fast tests use 100ms default"
- (or1 (or23))
- (or123)
test: "override for complex analysis"
@analyzer-timeout-millis 5000
- (complex-code)
- (refactored-code)
analysis-test: "works with all test types"
@analyzer-timeout-millis 500
- (code)
@inspect - (subform)
@property foo

Command line:

resyntax analyze --file myfile.rkt --analyzer-timeout 15000
resyntax fix --directory src/ --analyzer-timeout 5000
Original prompt

This section details on the original issue you should resolve

<issue_title>Configurable analyzer timeout</issue_title>
<issue_description>The expansion analyzer timeout should be configurable, both at the command line and in analysis-test: cases. It should be passed to source-analyze explicitly as a mandatory keyword argument. The main.rkt Resyntax code should use the same default timeout that source-analyze currently does, but in #lang resyntax/test the timeout should default to something very short, like 100ms. Test cases should be able to specify a longer timeout with an @analyzer-timeout-millis test parameter, like so:

#lang resyntax/test
header: - #lang racket/base
test: "foo"
@analyzer-timeout-millis 500
- (old-code)
- (new-code)
no-change-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
analysis-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
@inspect - old-code
@property bar
@assert baz
```</issue_description>
## Comments on the Issue (you are @copilot in this section)
<comments>
</comments>

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

CopilotAIand others added 2 commits November 9, 2025 17:18
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
CopilotAI changed the title [WIP] Add configurable analyzer timeout in source-analyzeMake analyzer timeout configurableNov 9, 2025
CopilotAI requested a review from jackfirthNovember 9, 2025 17:35
@jackfirth
jackfirth marked this pull request as ready for review November 9, 2025 18:24

@github-actionsgithub-actionsBot 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.

Resyntax analyzed 6 files in this pull request and found no issues.

@coveralls

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build #320

Details

  • 61 of 82(74.39%) changed or added relevant lines in 6 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.05%) to 93.63%

Changes Missing CoverageCovered LinesChanged/Added Lines%
main.rkt172085.0%
test.rkt81266.67%
cli.rkt72133.33%
TotalsCoverage Status
Change from base Build #317:-0.05%
Covered Lines:15140
Relevant Lines:16170

💛 - Coveralls

@jackfirth
jackfirth merged commit 186fd5e into masterNov 10, 2025
11 of 12 checks passed
@jackfirth
jackfirth deleted the copilot/configurable-analyzer-timeout branch November 10, 2025 04:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configurable analyzer timeout

3 participants

@coveralls@jackfirth
, '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

Make analyzer timeout configurable - #749

Merged
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout
Nov 10, 2025
Merged

Make analyzer timeout configurable#749
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout

Conversation

CopilotAI commented Nov 9, 2025

Copy link
Copy Markdown
Contributor

The expansion analyzer timeout was hardcoded at 10 seconds. This PR makes it configurable via CLI flags and test parameters, with a 100ms default for tests to keep them fast.

Changes

Core API

  • source-analyze now requires #:timeout-ms parameter (was hardcoded at 10000ms)
  • resyntax-analyze and resyntax-analyze-all accept optional #:timeout-ms with 10000ms default
  • Timeout logging changed from seconds to milliseconds for precision

CLI

  • Added --analyzer-timeout <ms> flag to resyntax analyze and resyntax fix commands
  • Defaults to 10000ms when unspecified

Test Infrastructure

  • Added current-analyzer-timeout-millis parameter (default: 100ms)
  • Implemented @analyzer-timeout-millis test parameter for test:, no-change-test:, and analysis-test: cases

Example

#lang resyntax/test
test: "fast tests use 100ms default"
- (or1 (or23))
- (or123)
test: "override for complex analysis"
@analyzer-timeout-millis 5000
- (complex-code)
- (refactored-code)
analysis-test: "works with all test types"
@analyzer-timeout-millis 500
- (code)
@inspect - (subform)
@property foo

Command line:

resyntax analyze --file myfile.rkt --analyzer-timeout 15000
resyntax fix --directory src/ --analyzer-timeout 5000
Original prompt

This section details on the original issue you should resolve

<issue_title>Configurable analyzer timeout</issue_title>
<issue_description>The expansion analyzer timeout should be configurable, both at the command line and in analysis-test: cases. It should be passed to source-analyze explicitly as a mandatory keyword argument. The main.rkt Resyntax code should use the same default timeout that source-analyze currently does, but in #lang resyntax/test the timeout should default to something very short, like 100ms. Test cases should be able to specify a longer timeout with an @analyzer-timeout-millis test parameter, like so:

#lang resyntax/test
header: - #lang racket/base
test: "foo"
@analyzer-timeout-millis 500
- (old-code)
- (new-code)
no-change-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
analysis-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
@inspect - old-code
@property bar
@assert baz
```</issue_description>
## Comments on the Issue (you are @copilot in this section)
<comments>
</comments>

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

CopilotAIand others added 2 commits November 9, 2025 17:18
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
CopilotAI changed the title [WIP] Add configurable analyzer timeout in source-analyzeMake analyzer timeout configurableNov 9, 2025
CopilotAI requested a review from jackfirthNovember 9, 2025 17:35
@jackfirth
jackfirth marked this pull request as ready for review November 9, 2025 18:24

@github-actionsgithub-actionsBot 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.

Resyntax analyzed 6 files in this pull request and found no issues.

@coveralls

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build #320

Details

  • 61 of 82(74.39%) changed or added relevant lines in 6 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.05%) to 93.63%

Changes Missing CoverageCovered LinesChanged/Added Lines%
main.rkt172085.0%
test.rkt81266.67%
cli.rkt72133.33%
TotalsCoverage Status
Change from base Build #317:-0.05%
Covered Lines:15140
Relevant Lines:16170

💛 - Coveralls

@jackfirth
jackfirth merged commit 186fd5e into masterNov 10, 2025
11 of 12 checks passed
@jackfirth
jackfirth deleted the copilot/configurable-analyzer-timeout branch November 10, 2025 04:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configurable analyzer timeout

3 participants

@coveralls@jackfirth
, '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

Make analyzer timeout configurable - #749

Merged
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout
Nov 10, 2025
Merged

Make analyzer timeout configurable#749
jackfirth merged 3 commits into
masterfrom
copilot/configurable-analyzer-timeout

Conversation

CopilotAI commented Nov 9, 2025

Copy link
Copy Markdown
Contributor

The expansion analyzer timeout was hardcoded at 10 seconds. This PR makes it configurable via CLI flags and test parameters, with a 100ms default for tests to keep them fast.

Changes

Core API

  • source-analyze now requires #:timeout-ms parameter (was hardcoded at 10000ms)
  • resyntax-analyze and resyntax-analyze-all accept optional #:timeout-ms with 10000ms default
  • Timeout logging changed from seconds to milliseconds for precision

CLI

  • Added --analyzer-timeout <ms> flag to resyntax analyze and resyntax fix commands
  • Defaults to 10000ms when unspecified

Test Infrastructure

  • Added current-analyzer-timeout-millis parameter (default: 100ms)
  • Implemented @analyzer-timeout-millis test parameter for test:, no-change-test:, and analysis-test: cases

Example

#lang resyntax/test
test: "fast tests use 100ms default"
- (or1 (or23))
- (or123)
test: "override for complex analysis"
@analyzer-timeout-millis 5000
- (complex-code)
- (refactored-code)
analysis-test: "works with all test types"
@analyzer-timeout-millis 500
- (code)
@inspect - (subform)
@property foo

Command line:

resyntax analyze --file myfile.rkt --analyzer-timeout 15000
resyntax fix --directory src/ --analyzer-timeout 5000
Original prompt

This section details on the original issue you should resolve

<issue_title>Configurable analyzer timeout</issue_title>
<issue_description>The expansion analyzer timeout should be configurable, both at the command line and in analysis-test: cases. It should be passed to source-analyze explicitly as a mandatory keyword argument. The main.rkt Resyntax code should use the same default timeout that source-analyze currently does, but in #lang resyntax/test the timeout should default to something very short, like 100ms. Test cases should be able to specify a longer timeout with an @analyzer-timeout-millis test parameter, like so:

#lang resyntax/test
header: - #lang racket/base
test: "foo"
@analyzer-timeout-millis 500
- (old-code)
- (new-code)
no-change-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
analysis-test: "foo"
@analyzer-timeout-millis 500
- (old-code)
@inspect - old-code
@property bar
@assert baz
```</issue_description>
## Comments on the Issue (you are @copilot in this section)
<comments>
</comments>

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

CopilotAIand others added 2 commits November 9, 2025 17:18
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
Co-authored-by: jackfirth <8175575+jackfirth@users.noreply.github.com>
CopilotAI changed the title [WIP] Add configurable analyzer timeout in source-analyzeMake analyzer timeout configurableNov 9, 2025
CopilotAI requested a review from jackfirthNovember 9, 2025 17:35
@jackfirth
jackfirth marked this pull request as ready for review November 9, 2025 18:24

@github-actionsgithub-actionsBot 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.

Resyntax analyzed 6 files in this pull request and found no issues.

@coveralls

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build #320

Details

  • 61 of 82(74.39%) changed or added relevant lines in 6 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.05%) to 93.63%

Changes Missing CoverageCovered LinesChanged/Added Lines%
main.rkt172085.0%
test.rkt81266.67%
cli.rkt72133.33%
TotalsCoverage Status
Change from base Build #317:-0.05%
Covered Lines:15140
Relevant Lines:16170

💛 - Coveralls

@jackfirth
jackfirth merged commit 186fd5e into masterNov 10, 2025
11 of 12 checks passed
@jackfirth
jackfirth deleted the copilot/configurable-analyzer-timeout branch November 10, 2025 04:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configurable analyzer timeout

3 participants

@coveralls@jackfirth