Skip to content

refactor(link): extract 5 helpers from 270-line cmdLink() - #3404

Open
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers
Open

refactor(link): extract 5 helpers from 270-line cmdLink()#3404
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why:cmdLink() in commands/link.ts was 270 lines — the largest uncovered function outside existing refactor PRs. Extracting helpers improves readability and testability of each phase independently.

Changes

Extracted 5 helpers from cmdLink(), reducing it from 270 lines to ~35 lines of orchestration:

  • parseLinkFlags(args) — CLI flag parsing + IP validation
  • resolveSshUser(ip, userFlag) — SSH user prompt + validation
  • checkSshConnectivity(ip, tcpCheckFn) — TCP port 22 reachability check
  • resolveAgent(detected, ip, manifest) — auto-detect or prompt for agent
  • resolveCloud(detected, ip, manifest) — auto-detect or prompt for cloud
  • confirmAndSave(...) — confirm details, save record, offer SSH connect

No behavioral changes. All 16 existing link tests pass. Bump CLI version to 1.0.44.

-- spawn-refactor/complexity-hunter

@la14-1
la14-1 marked this pull request as draft May 12, 2026 12:49
@la14-1
la14-1 marked this pull request as ready for review May 12, 2026 12:49
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 1ad4e14 to d9813c4CompareMay 14, 2026 14:52
la14-1 pushed a commit that referenced this pull request May 14, 2026
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Fixed failing Mock Tests — all checks passing now.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Verified on current main (2026-05-18): lint clean (0 errors), 2226 pass / 1 fail (pre-existing: applySpawnMdSetup base64 — fails on main too). Branch is mergeable with no conflicts. Ready for review.

-- refactor/pr-maintainer

louisgvand others added 2 commits May 21, 2026 00:27
Extract parseLinkFlags, resolveSshUser, checkSshConnectivity,
resolveAgent, resolveCloud, and confirmAndSave from cmdLink(),
reducing the main function from 270 lines to ~35 lines of
orchestration. No behavioral changes.
Agent: complexity-hunter
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 238dcd6 to 2708e8dCompareMay 21, 2026 00:28
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.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
refactor(link): extract 5 helpers from 270-line cmdLink() by la14-1 · Pull Request #3404 · OpenRouterLabs/spawn · GitHub
Skip to content

refactor(link): extract 5 helpers from 270-line cmdLink() - #3404

Open
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers
Open

refactor(link): extract 5 helpers from 270-line cmdLink()#3404
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why:cmdLink() in commands/link.ts was 270 lines — the largest uncovered function outside existing refactor PRs. Extracting helpers improves readability and testability of each phase independently.

Changes

Extracted 5 helpers from cmdLink(), reducing it from 270 lines to ~35 lines of orchestration:

  • parseLinkFlags(args) — CLI flag parsing + IP validation
  • resolveSshUser(ip, userFlag) — SSH user prompt + validation
  • checkSshConnectivity(ip, tcpCheckFn) — TCP port 22 reachability check
  • resolveAgent(detected, ip, manifest) — auto-detect or prompt for agent
  • resolveCloud(detected, ip, manifest) — auto-detect or prompt for cloud
  • confirmAndSave(...) — confirm details, save record, offer SSH connect

No behavioral changes. All 16 existing link tests pass. Bump CLI version to 1.0.44.

-- spawn-refactor/complexity-hunter

@la14-1
la14-1 marked this pull request as draft May 12, 2026 12:49
@la14-1
la14-1 marked this pull request as ready for review May 12, 2026 12:49
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 1ad4e14 to d9813c4CompareMay 14, 2026 14:52
la14-1 pushed a commit that referenced this pull request May 14, 2026
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Fixed failing Mock Tests — all checks passing now.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Verified on current main (2026-05-18): lint clean (0 errors), 2226 pass / 1 fail (pre-existing: applySpawnMdSetup base64 — fails on main too). Branch is mergeable with no conflicts. Ready for review.

-- refactor/pr-maintainer

louisgvand others added 2 commits May 21, 2026 00:27
Extract parseLinkFlags, resolveSshUser, checkSshConnectivity,
resolveAgent, resolveCloud, and confirmAndSave from cmdLink(),
reducing the main function from 270 lines to ~35 lines of
orchestration. No behavioral changes.
Agent: complexity-hunter
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 238dcd6 to 2708e8dCompareMay 21, 2026 00:28
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.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' refactor(link): extract 5 helpers from 270-line cmdLink() by la14-1 · Pull Request #3404 · OpenRouterLabs/spawn · GitHub
Skip to content

refactor(link): extract 5 helpers from 270-line cmdLink() - #3404

Open
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers
Open

refactor(link): extract 5 helpers from 270-line cmdLink()#3404
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why:cmdLink() in commands/link.ts was 270 lines — the largest uncovered function outside existing refactor PRs. Extracting helpers improves readability and testability of each phase independently.

Changes

Extracted 5 helpers from cmdLink(), reducing it from 270 lines to ~35 lines of orchestration:

  • parseLinkFlags(args) — CLI flag parsing + IP validation
  • resolveSshUser(ip, userFlag) — SSH user prompt + validation
  • checkSshConnectivity(ip, tcpCheckFn) — TCP port 22 reachability check
  • resolveAgent(detected, ip, manifest) — auto-detect or prompt for agent
  • resolveCloud(detected, ip, manifest) — auto-detect or prompt for cloud
  • confirmAndSave(...) — confirm details, save record, offer SSH connect

No behavioral changes. All 16 existing link tests pass. Bump CLI version to 1.0.44.

-- spawn-refactor/complexity-hunter

@la14-1
la14-1 marked this pull request as draft May 12, 2026 12:49
@la14-1
la14-1 marked this pull request as ready for review May 12, 2026 12:49
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 1ad4e14 to d9813c4CompareMay 14, 2026 14:52
la14-1 pushed a commit that referenced this pull request May 14, 2026
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Fixed failing Mock Tests — all checks passing now.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Verified on current main (2026-05-18): lint clean (0 errors), 2226 pass / 1 fail (pre-existing: applySpawnMdSetup base64 — fails on main too). Branch is mergeable with no conflicts. Ready for review.

-- refactor/pr-maintainer

louisgvand others added 2 commits May 21, 2026 00:27
Extract parseLinkFlags, resolveSshUser, checkSshConnectivity,
resolveAgent, resolveCloud, and confirmAndSave from cmdLink(),
reducing the main function from 270 lines to ~35 lines of
orchestration. No behavioral changes.
Agent: complexity-hunter
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 238dcd6 to 2708e8dCompareMay 21, 2026 00:28
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.

2 participants

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

refactor(link): extract 5 helpers from 270-line cmdLink() - #3404

Open
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers
Open

refactor(link): extract 5 helpers from 270-line cmdLink()#3404
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why:cmdLink() in commands/link.ts was 270 lines — the largest uncovered function outside existing refactor PRs. Extracting helpers improves readability and testability of each phase independently.

Changes

Extracted 5 helpers from cmdLink(), reducing it from 270 lines to ~35 lines of orchestration:

  • parseLinkFlags(args) — CLI flag parsing + IP validation
  • resolveSshUser(ip, userFlag) — SSH user prompt + validation
  • checkSshConnectivity(ip, tcpCheckFn) — TCP port 22 reachability check
  • resolveAgent(detected, ip, manifest) — auto-detect or prompt for agent
  • resolveCloud(detected, ip, manifest) — auto-detect or prompt for cloud
  • confirmAndSave(...) — confirm details, save record, offer SSH connect

No behavioral changes. All 16 existing link tests pass. Bump CLI version to 1.0.44.

-- spawn-refactor/complexity-hunter

@la14-1
la14-1 marked this pull request as draft May 12, 2026 12:49
@la14-1
la14-1 marked this pull request as ready for review May 12, 2026 12:49
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 1ad4e14 to d9813c4CompareMay 14, 2026 14:52
la14-1 pushed a commit that referenced this pull request May 14, 2026
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Fixed failing Mock Tests — all checks passing now.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Verified on current main (2026-05-18): lint clean (0 errors), 2226 pass / 1 fail (pre-existing: applySpawnMdSetup base64 — fails on main too). Branch is mergeable with no conflicts. Ready for review.

-- refactor/pr-maintainer

louisgvand others added 2 commits May 21, 2026 00:27
Extract parseLinkFlags, resolveSshUser, checkSshConnectivity,
resolveAgent, resolveCloud, and confirmAndSave from cmdLink(),
reducing the main function from 270 lines to ~35 lines of
orchestration. No behavioral changes.
Agent: complexity-hunter
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 238dcd6 to 2708e8dCompareMay 21, 2026 00:28
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.

2 participants

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

refactor(link): extract 5 helpers from 270-line cmdLink() - #3404

Open
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers
Open

refactor(link): extract 5 helpers from 270-line cmdLink()#3404
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why:cmdLink() in commands/link.ts was 270 lines — the largest uncovered function outside existing refactor PRs. Extracting helpers improves readability and testability of each phase independently.

Changes

Extracted 5 helpers from cmdLink(), reducing it from 270 lines to ~35 lines of orchestration:

  • parseLinkFlags(args) — CLI flag parsing + IP validation
  • resolveSshUser(ip, userFlag) — SSH user prompt + validation
  • checkSshConnectivity(ip, tcpCheckFn) — TCP port 22 reachability check
  • resolveAgent(detected, ip, manifest) — auto-detect or prompt for agent
  • resolveCloud(detected, ip, manifest) — auto-detect or prompt for cloud
  • confirmAndSave(...) — confirm details, save record, offer SSH connect

No behavioral changes. All 16 existing link tests pass. Bump CLI version to 1.0.44.

-- spawn-refactor/complexity-hunter

@la14-1
la14-1 marked this pull request as draft May 12, 2026 12:49
@la14-1
la14-1 marked this pull request as ready for review May 12, 2026 12:49
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 1ad4e14 to d9813c4CompareMay 14, 2026 14:52
la14-1 pushed a commit that referenced this pull request May 14, 2026
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Fixed failing Mock Tests — all checks passing now.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Verified on current main (2026-05-18): lint clean (0 errors), 2226 pass / 1 fail (pre-existing: applySpawnMdSetup base64 — fails on main too). Branch is mergeable with no conflicts. Ready for review.

-- refactor/pr-maintainer

louisgvand others added 2 commits May 21, 2026 00:27
Extract parseLinkFlags, resolveSshUser, checkSshConnectivity,
resolveAgent, resolveCloud, and confirmAndSave from cmdLink(),
reducing the main function from 270 lines to ~35 lines of
orchestration. No behavioral changes.
Agent: complexity-hunter
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 238dcd6 to 2708e8dCompareMay 21, 2026 00:28
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.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' refactor(link): extract 5 helpers from 270-line cmdLink() by la14-1 · Pull Request #3404 · OpenRouterLabs/spawn · GitHub
Skip to content

refactor(link): extract 5 helpers from 270-line cmdLink() - #3404

Open
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers
Open

refactor(link): extract 5 helpers from 270-line cmdLink()#3404
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why:cmdLink() in commands/link.ts was 270 lines — the largest uncovered function outside existing refactor PRs. Extracting helpers improves readability and testability of each phase independently.

Changes

Extracted 5 helpers from cmdLink(), reducing it from 270 lines to ~35 lines of orchestration:

  • parseLinkFlags(args) — CLI flag parsing + IP validation
  • resolveSshUser(ip, userFlag) — SSH user prompt + validation
  • checkSshConnectivity(ip, tcpCheckFn) — TCP port 22 reachability check
  • resolveAgent(detected, ip, manifest) — auto-detect or prompt for agent
  • resolveCloud(detected, ip, manifest) — auto-detect or prompt for cloud
  • confirmAndSave(...) — confirm details, save record, offer SSH connect

No behavioral changes. All 16 existing link tests pass. Bump CLI version to 1.0.44.

-- spawn-refactor/complexity-hunter

@la14-1
la14-1 marked this pull request as draft May 12, 2026 12:49
@la14-1
la14-1 marked this pull request as ready for review May 12, 2026 12:49
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 1ad4e14 to d9813c4CompareMay 14, 2026 14:52
la14-1 pushed a commit that referenced this pull request May 14, 2026
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Fixed failing Mock Tests — all checks passing now.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Verified on current main (2026-05-18): lint clean (0 errors), 2226 pass / 1 fail (pre-existing: applySpawnMdSetup base64 — fails on main too). Branch is mergeable with no conflicts. Ready for review.

-- refactor/pr-maintainer

louisgvand others added 2 commits May 21, 2026 00:27
Extract parseLinkFlags, resolveSshUser, checkSshConnectivity,
resolveAgent, resolveCloud, and confirmAndSave from cmdLink(),
reducing the main function from 270 lines to ~35 lines of
orchestration. No behavioral changes.
Agent: complexity-hunter
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 238dcd6 to 2708e8dCompareMay 21, 2026 00:28
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.

2 participants

@la14-1@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' refactor(link): extract 5 helpers from 270-line cmdLink() by la14-1 · Pull Request #3404 · OpenRouterLabs/spawn · GitHub
Skip to content

refactor(link): extract 5 helpers from 270-line cmdLink() - #3404

Open
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers
Open

refactor(link): extract 5 helpers from 270-line cmdLink()#3404
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why:cmdLink() in commands/link.ts was 270 lines — the largest uncovered function outside existing refactor PRs. Extracting helpers improves readability and testability of each phase independently.

Changes

Extracted 5 helpers from cmdLink(), reducing it from 270 lines to ~35 lines of orchestration:

  • parseLinkFlags(args) — CLI flag parsing + IP validation
  • resolveSshUser(ip, userFlag) — SSH user prompt + validation
  • checkSshConnectivity(ip, tcpCheckFn) — TCP port 22 reachability check
  • resolveAgent(detected, ip, manifest) — auto-detect or prompt for agent
  • resolveCloud(detected, ip, manifest) — auto-detect or prompt for cloud
  • confirmAndSave(...) — confirm details, save record, offer SSH connect

No behavioral changes. All 16 existing link tests pass. Bump CLI version to 1.0.44.

-- spawn-refactor/complexity-hunter

@la14-1
la14-1 marked this pull request as draft May 12, 2026 12:49
@la14-1
la14-1 marked this pull request as ready for review May 12, 2026 12:49
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 1ad4e14 to d9813c4CompareMay 14, 2026 14:52
la14-1 pushed a commit that referenced this pull request May 14, 2026
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Fixed failing Mock Tests — all checks passing now.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Verified on current main (2026-05-18): lint clean (0 errors), 2226 pass / 1 fail (pre-existing: applySpawnMdSetup base64 — fails on main too). Branch is mergeable with no conflicts. Ready for review.

-- refactor/pr-maintainer

louisgvand others added 2 commits May 21, 2026 00:27
Extract parseLinkFlags, resolveSshUser, checkSshConnectivity,
resolveAgent, resolveCloud, and confirmAndSave from cmdLink(),
reducing the main function from 270 lines to ~35 lines of
orchestration. No behavioral changes.
Agent: complexity-hunter
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 238dcd6 to 2708e8dCompareMay 21, 2026 00:28
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.

2 participants

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

refactor(link): extract 5 helpers from 270-line cmdLink() - #3404

Open
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers
Open

refactor(link): extract 5 helpers from 270-line cmdLink()#3404
la14-1 wants to merge 2 commits into
mainfrom
refactor/extract-link-helpers

Conversation

@la14-1

Copy link
Copy Markdown
Collaborator

Why:cmdLink() in commands/link.ts was 270 lines — the largest uncovered function outside existing refactor PRs. Extracting helpers improves readability and testability of each phase independently.

Changes

Extracted 5 helpers from cmdLink(), reducing it from 270 lines to ~35 lines of orchestration:

  • parseLinkFlags(args) — CLI flag parsing + IP validation
  • resolveSshUser(ip, userFlag) — SSH user prompt + validation
  • checkSshConnectivity(ip, tcpCheckFn) — TCP port 22 reachability check
  • resolveAgent(detected, ip, manifest) — auto-detect or prompt for agent
  • resolveCloud(detected, ip, manifest) — auto-detect or prompt for cloud
  • confirmAndSave(...) — confirm details, save record, offer SSH connect

No behavioral changes. All 16 existing link tests pass. Bump CLI version to 1.0.44.

-- spawn-refactor/complexity-hunter

@la14-1
la14-1 marked this pull request as draft May 12, 2026 12:49
@la14-1
la14-1 marked this pull request as ready for review May 12, 2026 12:49
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 1ad4e14 to d9813c4CompareMay 14, 2026 14:52
la14-1 pushed a commit that referenced this pull request May 14, 2026
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Fixed failing Mock Tests — all checks passing now.

-- refactor/pr-maintainer

@la14-1

Copy link
Copy Markdown
CollaboratorAuthor

Verified on current main (2026-05-18): lint clean (0 errors), 2226 pass / 1 fail (pre-existing: applySpawnMdSetup base64 — fails on main too). Branch is mergeable with no conflicts. Ready for review.

-- refactor/pr-maintainer

louisgvand others added 2 commits May 21, 2026 00:27
Extract parseLinkFlags, resolveSshUser, checkSshConnectivity,
resolveAgent, resolveCloud, and confirmAndSave from cmdLink(),
reducing the main function from 270 lines to ~35 lines of
orchestration. No behavioral changes.
Agent: complexity-hunter
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Use URL-based mock dispatch instead of sequential callCount thresholds
to prevent telemetry flush from injecting spurious fetch calls that
shift the mock response sequence.
Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@la14-1
la14-1force-pushed the refactor/extract-link-helpers branch from 238dcd6 to 2708e8dCompareMay 21, 2026 00:28
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.

2 participants

@la14-1@louisgv