fix: report site/adapter-source command errors cleanly instead of crashing - #327

Closed
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling
Closed

fix: report site/adapter-source command errors cleanly instead of crashing#327
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling

Conversation

@ayushsingh82

Copy link
Copy Markdown
Contributor

Summary

Working through the local-mode portion of the manual QA checklist in #311, I found that every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put / adapter path had no error handling in their commander actions. Any failure — a missing fixture, an invalid site name, a duplicate field-map key, an unsupported local write — surfaced as a raw unhandled-rejection stack trace instead of the CLI's normal Error: ... output, and always exited 1 regardless of the error's intended exit code (e.g. SITE_MEMORY_NOT_FOUND should exit 66, an ArgumentError should exit 2).

  • src/site-memory/commands.ts (shared by local and hosted mode via registerSiteCommands) — added a wrapAction helper so every action reports errors and exit codes consistently.
  • src/cli.ts — same fix for adapter source get, adapter source put, and adapter path.
  • src/cli.test.ts — updated 3 pre-existing unit tests that had encoded the old crash-and-reject behavior as expected, to instead assert the clean error message + correct process.exitCode.
  • tests/e2e/adapter-authoring-parity.test.ts (new, registered in vitest.config.ts) — e2e coverage for the local-mode-testable sections of test: validate adapter authoring and override parity in local and hosted modes #311: mode boundaries, override/source/reset workflow, site memory + fixtures + samples, browser init/verify and its flags, and mutable input-output files via a private test adapter.

Sections of #311 requiring a live hosted Cloud deployment (workspace/user isolation, marketplace metadata) are out of scope here — this addresses the local-mode reliability gap surfaced while working through the checklist.

Test plan

  • npm run typecheck
  • npm test (unit + plugin, 5589 passed)
  • npx vitest run --project e2e tests/e2e/adapter-authoring-parity.test.ts (28 passed)
  • Manually verified before/after CLI output for site fixture get (missing → clean error, exit 66), site note add ../evil (clean error, exit 1), adapter source get --output (clean error, exit 2)

…shing
webcmd site * (notes, endpoints, field-maps, fixtures, samples) and
adapter source get/put/path had no error handling, so any failure
surfaced as a raw unhandled-rejection stack trace and always exited 1,
discarding the intended CliError exit code (e.g. a missing fixture
should exit 66, a bad flag 2). Wrap these actions the same way the
rest of the CLI reports errors.
Also adds e2e coverage for the local-mode portion of the manual QA
checklist in agentrhq#311 (override/source workflow, site memory, browser
init/verify flags, mutable input-output files).
@ayushsingh82

ayushsingh82 commented Aug 17, 2026

Copy link
Copy Markdown
ContributorAuthor

@beubax mind taking a look? Quick summary of what's here:

Working through the local-mode checklist in #311, every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put/adapter path turned out to have no error handling — any failure surfaced as a raw unhandled-rejection stack trace and always exited 1, discarding the intended CliError exit code (e.g. a missing fixture should exit 66, a bad flag 2). This PR fixes that in site-memory/commands.ts (shared by local and hosted mode) and the adapter-source actions in cli.ts, updates the 3 unit tests that had encoded the old crash as expected behavior, and adds e2e coverage (tests/e2e/adapter-authoring-parity.test.ts) for the local-mode-testable portion of #311's checklist.

Full details and test plan are in the PR description above. Happy to adjust scope if you'd rather this land as smaller pieces.

@github-actions

Copy link
Copy Markdown
Contributor

🟠 Maintainer review suggested — low confidence

The automated review could not reach a fully supported conclusion.

Limitations

  • The automated review returned an invalid structured result.

This review is advisory and does not block merging.

@ankitranjan7

Copy link
Copy Markdown
Contributor

#363 landed, so this PR should not merge as-is.

The e2e checklist from this PR is rebased onto current main in #364.

@ankitranjan7

Copy link
Copy Markdown
Contributor

Superseded by #364 after #363.

ankitranjan7 added a commit that referenced this pull request Aug 19, 2026
Keep #327's local-mode checklist after #363. Drop wrapAction — runCli and
the hosted runner already envelope these throws, and swallowing them would
mark hosted site errors as success.
@ayushsingh82

Copy link
Copy Markdown
ContributorAuthor

@ankitranjan7 what's the best way to reach out to you . Can you plz share your tg or mail

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

@ayushsingh82@ankitranjan7
, '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: report site/adapter-source command errors cleanly instead of crashing - #327

Closed
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling
Closed

fix: report site/adapter-source command errors cleanly instead of crashing#327
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling

Conversation

@ayushsingh82

Copy link
Copy Markdown
Contributor

Summary

Working through the local-mode portion of the manual QA checklist in #311, I found that every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put / adapter path had no error handling in their commander actions. Any failure — a missing fixture, an invalid site name, a duplicate field-map key, an unsupported local write — surfaced as a raw unhandled-rejection stack trace instead of the CLI's normal Error: ... output, and always exited 1 regardless of the error's intended exit code (e.g. SITE_MEMORY_NOT_FOUND should exit 66, an ArgumentError should exit 2).

  • src/site-memory/commands.ts (shared by local and hosted mode via registerSiteCommands) — added a wrapAction helper so every action reports errors and exit codes consistently.
  • src/cli.ts — same fix for adapter source get, adapter source put, and adapter path.
  • src/cli.test.ts — updated 3 pre-existing unit tests that had encoded the old crash-and-reject behavior as expected, to instead assert the clean error message + correct process.exitCode.
  • tests/e2e/adapter-authoring-parity.test.ts (new, registered in vitest.config.ts) — e2e coverage for the local-mode-testable sections of test: validate adapter authoring and override parity in local and hosted modes #311: mode boundaries, override/source/reset workflow, site memory + fixtures + samples, browser init/verify and its flags, and mutable input-output files via a private test adapter.

Sections of #311 requiring a live hosted Cloud deployment (workspace/user isolation, marketplace metadata) are out of scope here — this addresses the local-mode reliability gap surfaced while working through the checklist.

Test plan

  • npm run typecheck
  • npm test (unit + plugin, 5589 passed)
  • npx vitest run --project e2e tests/e2e/adapter-authoring-parity.test.ts (28 passed)
  • Manually verified before/after CLI output for site fixture get (missing → clean error, exit 66), site note add ../evil (clean error, exit 1), adapter source get --output (clean error, exit 2)

…shing
webcmd site * (notes, endpoints, field-maps, fixtures, samples) and
adapter source get/put/path had no error handling, so any failure
surfaced as a raw unhandled-rejection stack trace and always exited 1,
discarding the intended CliError exit code (e.g. a missing fixture
should exit 66, a bad flag 2). Wrap these actions the same way the
rest of the CLI reports errors.
Also adds e2e coverage for the local-mode portion of the manual QA
checklist in agentrhq#311 (override/source workflow, site memory, browser
init/verify flags, mutable input-output files).
@ayushsingh82

ayushsingh82 commented Aug 17, 2026

Copy link
Copy Markdown
ContributorAuthor

@beubax mind taking a look? Quick summary of what's here:

Working through the local-mode checklist in #311, every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put/adapter path turned out to have no error handling — any failure surfaced as a raw unhandled-rejection stack trace and always exited 1, discarding the intended CliError exit code (e.g. a missing fixture should exit 66, a bad flag 2). This PR fixes that in site-memory/commands.ts (shared by local and hosted mode) and the adapter-source actions in cli.ts, updates the 3 unit tests that had encoded the old crash as expected behavior, and adds e2e coverage (tests/e2e/adapter-authoring-parity.test.ts) for the local-mode-testable portion of #311's checklist.

Full details and test plan are in the PR description above. Happy to adjust scope if you'd rather this land as smaller pieces.

@github-actions

Copy link
Copy Markdown
Contributor

🟠 Maintainer review suggested — low confidence

The automated review could not reach a fully supported conclusion.

Limitations

  • The automated review returned an invalid structured result.

This review is advisory and does not block merging.

@ankitranjan7

Copy link
Copy Markdown
Contributor

#363 landed, so this PR should not merge as-is.

The e2e checklist from this PR is rebased onto current main in #364.

@ankitranjan7

Copy link
Copy Markdown
Contributor

Superseded by #364 after #363.

ankitranjan7 added a commit that referenced this pull request Aug 19, 2026
Keep #327's local-mode checklist after #363. Drop wrapAction — runCli and
the hosted runner already envelope these throws, and swallowing them would
mark hosted site errors as success.
@ayushsingh82

Copy link
Copy Markdown
ContributorAuthor

@ankitranjan7 what's the best way to reach out to you . Can you plz share your tg or mail

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

@ayushsingh82@ankitranjan7
, '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: report site/adapter-source command errors cleanly instead of crashing - #327

Closed
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling
Closed

fix: report site/adapter-source command errors cleanly instead of crashing#327
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling

Conversation

@ayushsingh82

Copy link
Copy Markdown
Contributor

Summary

Working through the local-mode portion of the manual QA checklist in #311, I found that every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put / adapter path had no error handling in their commander actions. Any failure — a missing fixture, an invalid site name, a duplicate field-map key, an unsupported local write — surfaced as a raw unhandled-rejection stack trace instead of the CLI's normal Error: ... output, and always exited 1 regardless of the error's intended exit code (e.g. SITE_MEMORY_NOT_FOUND should exit 66, an ArgumentError should exit 2).

  • src/site-memory/commands.ts (shared by local and hosted mode via registerSiteCommands) — added a wrapAction helper so every action reports errors and exit codes consistently.
  • src/cli.ts — same fix for adapter source get, adapter source put, and adapter path.
  • src/cli.test.ts — updated 3 pre-existing unit tests that had encoded the old crash-and-reject behavior as expected, to instead assert the clean error message + correct process.exitCode.
  • tests/e2e/adapter-authoring-parity.test.ts (new, registered in vitest.config.ts) — e2e coverage for the local-mode-testable sections of test: validate adapter authoring and override parity in local and hosted modes #311: mode boundaries, override/source/reset workflow, site memory + fixtures + samples, browser init/verify and its flags, and mutable input-output files via a private test adapter.

Sections of #311 requiring a live hosted Cloud deployment (workspace/user isolation, marketplace metadata) are out of scope here — this addresses the local-mode reliability gap surfaced while working through the checklist.

Test plan

  • npm run typecheck
  • npm test (unit + plugin, 5589 passed)
  • npx vitest run --project e2e tests/e2e/adapter-authoring-parity.test.ts (28 passed)
  • Manually verified before/after CLI output for site fixture get (missing → clean error, exit 66), site note add ../evil (clean error, exit 1), adapter source get --output (clean error, exit 2)

…shing
webcmd site * (notes, endpoints, field-maps, fixtures, samples) and
adapter source get/put/path had no error handling, so any failure
surfaced as a raw unhandled-rejection stack trace and always exited 1,
discarding the intended CliError exit code (e.g. a missing fixture
should exit 66, a bad flag 2). Wrap these actions the same way the
rest of the CLI reports errors.
Also adds e2e coverage for the local-mode portion of the manual QA
checklist in agentrhq#311 (override/source workflow, site memory, browser
init/verify flags, mutable input-output files).
@ayushsingh82

ayushsingh82 commented Aug 17, 2026

Copy link
Copy Markdown
ContributorAuthor

@beubax mind taking a look? Quick summary of what's here:

Working through the local-mode checklist in #311, every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put/adapter path turned out to have no error handling — any failure surfaced as a raw unhandled-rejection stack trace and always exited 1, discarding the intended CliError exit code (e.g. a missing fixture should exit 66, a bad flag 2). This PR fixes that in site-memory/commands.ts (shared by local and hosted mode) and the adapter-source actions in cli.ts, updates the 3 unit tests that had encoded the old crash as expected behavior, and adds e2e coverage (tests/e2e/adapter-authoring-parity.test.ts) for the local-mode-testable portion of #311's checklist.

Full details and test plan are in the PR description above. Happy to adjust scope if you'd rather this land as smaller pieces.

@github-actions

Copy link
Copy Markdown
Contributor

🟠 Maintainer review suggested — low confidence

The automated review could not reach a fully supported conclusion.

Limitations

  • The automated review returned an invalid structured result.

This review is advisory and does not block merging.

@ankitranjan7

Copy link
Copy Markdown
Contributor

#363 landed, so this PR should not merge as-is.

The e2e checklist from this PR is rebased onto current main in #364.

@ankitranjan7

Copy link
Copy Markdown
Contributor

Superseded by #364 after #363.

ankitranjan7 added a commit that referenced this pull request Aug 19, 2026
Keep #327's local-mode checklist after #363. Drop wrapAction — runCli and
the hosted runner already envelope these throws, and swallowing them would
mark hosted site errors as success.
@ayushsingh82

Copy link
Copy Markdown
ContributorAuthor

@ankitranjan7 what's the best way to reach out to you . Can you plz share your tg or mail

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

@ayushsingh82@ankitranjan7
, '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: report site/adapter-source command errors cleanly instead of crashing - #327

Closed
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling
Closed

fix: report site/adapter-source command errors cleanly instead of crashing#327
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling

Conversation

@ayushsingh82

Copy link
Copy Markdown
Contributor

Summary

Working through the local-mode portion of the manual QA checklist in #311, I found that every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put / adapter path had no error handling in their commander actions. Any failure — a missing fixture, an invalid site name, a duplicate field-map key, an unsupported local write — surfaced as a raw unhandled-rejection stack trace instead of the CLI's normal Error: ... output, and always exited 1 regardless of the error's intended exit code (e.g. SITE_MEMORY_NOT_FOUND should exit 66, an ArgumentError should exit 2).

  • src/site-memory/commands.ts (shared by local and hosted mode via registerSiteCommands) — added a wrapAction helper so every action reports errors and exit codes consistently.
  • src/cli.ts — same fix for adapter source get, adapter source put, and adapter path.
  • src/cli.test.ts — updated 3 pre-existing unit tests that had encoded the old crash-and-reject behavior as expected, to instead assert the clean error message + correct process.exitCode.
  • tests/e2e/adapter-authoring-parity.test.ts (new, registered in vitest.config.ts) — e2e coverage for the local-mode-testable sections of test: validate adapter authoring and override parity in local and hosted modes #311: mode boundaries, override/source/reset workflow, site memory + fixtures + samples, browser init/verify and its flags, and mutable input-output files via a private test adapter.

Sections of #311 requiring a live hosted Cloud deployment (workspace/user isolation, marketplace metadata) are out of scope here — this addresses the local-mode reliability gap surfaced while working through the checklist.

Test plan

  • npm run typecheck
  • npm test (unit + plugin, 5589 passed)
  • npx vitest run --project e2e tests/e2e/adapter-authoring-parity.test.ts (28 passed)
  • Manually verified before/after CLI output for site fixture get (missing → clean error, exit 66), site note add ../evil (clean error, exit 1), adapter source get --output (clean error, exit 2)

…shing
webcmd site * (notes, endpoints, field-maps, fixtures, samples) and
adapter source get/put/path had no error handling, so any failure
surfaced as a raw unhandled-rejection stack trace and always exited 1,
discarding the intended CliError exit code (e.g. a missing fixture
should exit 66, a bad flag 2). Wrap these actions the same way the
rest of the CLI reports errors.
Also adds e2e coverage for the local-mode portion of the manual QA
checklist in agentrhq#311 (override/source workflow, site memory, browser
init/verify flags, mutable input-output files).
@ayushsingh82

ayushsingh82 commented Aug 17, 2026

Copy link
Copy Markdown
ContributorAuthor

@beubax mind taking a look? Quick summary of what's here:

Working through the local-mode checklist in #311, every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put/adapter path turned out to have no error handling — any failure surfaced as a raw unhandled-rejection stack trace and always exited 1, discarding the intended CliError exit code (e.g. a missing fixture should exit 66, a bad flag 2). This PR fixes that in site-memory/commands.ts (shared by local and hosted mode) and the adapter-source actions in cli.ts, updates the 3 unit tests that had encoded the old crash as expected behavior, and adds e2e coverage (tests/e2e/adapter-authoring-parity.test.ts) for the local-mode-testable portion of #311's checklist.

Full details and test plan are in the PR description above. Happy to adjust scope if you'd rather this land as smaller pieces.

@github-actions

Copy link
Copy Markdown
Contributor

🟠 Maintainer review suggested — low confidence

The automated review could not reach a fully supported conclusion.

Limitations

  • The automated review returned an invalid structured result.

This review is advisory and does not block merging.

@ankitranjan7

Copy link
Copy Markdown
Contributor

#363 landed, so this PR should not merge as-is.

The e2e checklist from this PR is rebased onto current main in #364.

@ankitranjan7

Copy link
Copy Markdown
Contributor

Superseded by #364 after #363.

ankitranjan7 added a commit that referenced this pull request Aug 19, 2026
Keep #327's local-mode checklist after #363. Drop wrapAction — runCli and
the hosted runner already envelope these throws, and swallowing them would
mark hosted site errors as success.
@ayushsingh82

Copy link
Copy Markdown
ContributorAuthor

@ankitranjan7 what's the best way to reach out to you . Can you plz share your tg or mail

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

@ayushsingh82@ankitranjan7
, '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: report site/adapter-source command errors cleanly instead of crashing - #327

Closed
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling
Closed

fix: report site/adapter-source command errors cleanly instead of crashing#327
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling

Conversation

@ayushsingh82

Copy link
Copy Markdown
Contributor

Summary

Working through the local-mode portion of the manual QA checklist in #311, I found that every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put / adapter path had no error handling in their commander actions. Any failure — a missing fixture, an invalid site name, a duplicate field-map key, an unsupported local write — surfaced as a raw unhandled-rejection stack trace instead of the CLI's normal Error: ... output, and always exited 1 regardless of the error's intended exit code (e.g. SITE_MEMORY_NOT_FOUND should exit 66, an ArgumentError should exit 2).

  • src/site-memory/commands.ts (shared by local and hosted mode via registerSiteCommands) — added a wrapAction helper so every action reports errors and exit codes consistently.
  • src/cli.ts — same fix for adapter source get, adapter source put, and adapter path.
  • src/cli.test.ts — updated 3 pre-existing unit tests that had encoded the old crash-and-reject behavior as expected, to instead assert the clean error message + correct process.exitCode.
  • tests/e2e/adapter-authoring-parity.test.ts (new, registered in vitest.config.ts) — e2e coverage for the local-mode-testable sections of test: validate adapter authoring and override parity in local and hosted modes #311: mode boundaries, override/source/reset workflow, site memory + fixtures + samples, browser init/verify and its flags, and mutable input-output files via a private test adapter.

Sections of #311 requiring a live hosted Cloud deployment (workspace/user isolation, marketplace metadata) are out of scope here — this addresses the local-mode reliability gap surfaced while working through the checklist.

Test plan

  • npm run typecheck
  • npm test (unit + plugin, 5589 passed)
  • npx vitest run --project e2e tests/e2e/adapter-authoring-parity.test.ts (28 passed)
  • Manually verified before/after CLI output for site fixture get (missing → clean error, exit 66), site note add ../evil (clean error, exit 1), adapter source get --output (clean error, exit 2)

…shing
webcmd site * (notes, endpoints, field-maps, fixtures, samples) and
adapter source get/put/path had no error handling, so any failure
surfaced as a raw unhandled-rejection stack trace and always exited 1,
discarding the intended CliError exit code (e.g. a missing fixture
should exit 66, a bad flag 2). Wrap these actions the same way the
rest of the CLI reports errors.
Also adds e2e coverage for the local-mode portion of the manual QA
checklist in agentrhq#311 (override/source workflow, site memory, browser
init/verify flags, mutable input-output files).
@ayushsingh82

ayushsingh82 commented Aug 17, 2026

Copy link
Copy Markdown
ContributorAuthor

@beubax mind taking a look? Quick summary of what's here:

Working through the local-mode checklist in #311, every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put/adapter path turned out to have no error handling — any failure surfaced as a raw unhandled-rejection stack trace and always exited 1, discarding the intended CliError exit code (e.g. a missing fixture should exit 66, a bad flag 2). This PR fixes that in site-memory/commands.ts (shared by local and hosted mode) and the adapter-source actions in cli.ts, updates the 3 unit tests that had encoded the old crash as expected behavior, and adds e2e coverage (tests/e2e/adapter-authoring-parity.test.ts) for the local-mode-testable portion of #311's checklist.

Full details and test plan are in the PR description above. Happy to adjust scope if you'd rather this land as smaller pieces.

@github-actions

Copy link
Copy Markdown
Contributor

🟠 Maintainer review suggested — low confidence

The automated review could not reach a fully supported conclusion.

Limitations

  • The automated review returned an invalid structured result.

This review is advisory and does not block merging.

@ankitranjan7

Copy link
Copy Markdown
Contributor

#363 landed, so this PR should not merge as-is.

The e2e checklist from this PR is rebased onto current main in #364.

@ankitranjan7

Copy link
Copy Markdown
Contributor

Superseded by #364 after #363.

ankitranjan7 added a commit that referenced this pull request Aug 19, 2026
Keep #327's local-mode checklist after #363. Drop wrapAction — runCli and
the hosted runner already envelope these throws, and swallowing them would
mark hosted site errors as success.
@ayushsingh82

Copy link
Copy Markdown
ContributorAuthor

@ankitranjan7 what's the best way to reach out to you . Can you plz share your tg or mail

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

@ayushsingh82@ankitranjan7
, '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: report site/adapter-source command errors cleanly instead of crashing - #327

Closed
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling
Closed

fix: report site/adapter-source command errors cleanly instead of crashing#327
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling

Conversation

@ayushsingh82

Copy link
Copy Markdown
Contributor

Summary

Working through the local-mode portion of the manual QA checklist in #311, I found that every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put / adapter path had no error handling in their commander actions. Any failure — a missing fixture, an invalid site name, a duplicate field-map key, an unsupported local write — surfaced as a raw unhandled-rejection stack trace instead of the CLI's normal Error: ... output, and always exited 1 regardless of the error's intended exit code (e.g. SITE_MEMORY_NOT_FOUND should exit 66, an ArgumentError should exit 2).

  • src/site-memory/commands.ts (shared by local and hosted mode via registerSiteCommands) — added a wrapAction helper so every action reports errors and exit codes consistently.
  • src/cli.ts — same fix for adapter source get, adapter source put, and adapter path.
  • src/cli.test.ts — updated 3 pre-existing unit tests that had encoded the old crash-and-reject behavior as expected, to instead assert the clean error message + correct process.exitCode.
  • tests/e2e/adapter-authoring-parity.test.ts (new, registered in vitest.config.ts) — e2e coverage for the local-mode-testable sections of test: validate adapter authoring and override parity in local and hosted modes #311: mode boundaries, override/source/reset workflow, site memory + fixtures + samples, browser init/verify and its flags, and mutable input-output files via a private test adapter.

Sections of #311 requiring a live hosted Cloud deployment (workspace/user isolation, marketplace metadata) are out of scope here — this addresses the local-mode reliability gap surfaced while working through the checklist.

Test plan

  • npm run typecheck
  • npm test (unit + plugin, 5589 passed)
  • npx vitest run --project e2e tests/e2e/adapter-authoring-parity.test.ts (28 passed)
  • Manually verified before/after CLI output for site fixture get (missing → clean error, exit 66), site note add ../evil (clean error, exit 1), adapter source get --output (clean error, exit 2)

…shing
webcmd site * (notes, endpoints, field-maps, fixtures, samples) and
adapter source get/put/path had no error handling, so any failure
surfaced as a raw unhandled-rejection stack trace and always exited 1,
discarding the intended CliError exit code (e.g. a missing fixture
should exit 66, a bad flag 2). Wrap these actions the same way the
rest of the CLI reports errors.
Also adds e2e coverage for the local-mode portion of the manual QA
checklist in agentrhq#311 (override/source workflow, site memory, browser
init/verify flags, mutable input-output files).
@ayushsingh82

ayushsingh82 commented Aug 17, 2026

Copy link
Copy Markdown
ContributorAuthor

@beubax mind taking a look? Quick summary of what's here:

Working through the local-mode checklist in #311, every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put/adapter path turned out to have no error handling — any failure surfaced as a raw unhandled-rejection stack trace and always exited 1, discarding the intended CliError exit code (e.g. a missing fixture should exit 66, a bad flag 2). This PR fixes that in site-memory/commands.ts (shared by local and hosted mode) and the adapter-source actions in cli.ts, updates the 3 unit tests that had encoded the old crash as expected behavior, and adds e2e coverage (tests/e2e/adapter-authoring-parity.test.ts) for the local-mode-testable portion of #311's checklist.

Full details and test plan are in the PR description above. Happy to adjust scope if you'd rather this land as smaller pieces.

@github-actions

Copy link
Copy Markdown
Contributor

🟠 Maintainer review suggested — low confidence

The automated review could not reach a fully supported conclusion.

Limitations

  • The automated review returned an invalid structured result.

This review is advisory and does not block merging.

@ankitranjan7

Copy link
Copy Markdown
Contributor

#363 landed, so this PR should not merge as-is.

The e2e checklist from this PR is rebased onto current main in #364.

@ankitranjan7

Copy link
Copy Markdown
Contributor

Superseded by #364 after #363.

ankitranjan7 added a commit that referenced this pull request Aug 19, 2026
Keep #327's local-mode checklist after #363. Drop wrapAction — runCli and
the hosted runner already envelope these throws, and swallowing them would
mark hosted site errors as success.
@ayushsingh82

Copy link
Copy Markdown
ContributorAuthor

@ankitranjan7 what's the best way to reach out to you . Can you plz share your tg or mail

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

@ayushsingh82@ankitranjan7
, '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: report site/adapter-source command errors cleanly instead of crashing - #327

Closed
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling
Closed

fix: report site/adapter-source command errors cleanly instead of crashing#327
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling

Conversation

@ayushsingh82

Copy link
Copy Markdown
Contributor

Summary

Working through the local-mode portion of the manual QA checklist in #311, I found that every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put / adapter path had no error handling in their commander actions. Any failure — a missing fixture, an invalid site name, a duplicate field-map key, an unsupported local write — surfaced as a raw unhandled-rejection stack trace instead of the CLI's normal Error: ... output, and always exited 1 regardless of the error's intended exit code (e.g. SITE_MEMORY_NOT_FOUND should exit 66, an ArgumentError should exit 2).

  • src/site-memory/commands.ts (shared by local and hosted mode via registerSiteCommands) — added a wrapAction helper so every action reports errors and exit codes consistently.
  • src/cli.ts — same fix for adapter source get, adapter source put, and adapter path.
  • src/cli.test.ts — updated 3 pre-existing unit tests that had encoded the old crash-and-reject behavior as expected, to instead assert the clean error message + correct process.exitCode.
  • tests/e2e/adapter-authoring-parity.test.ts (new, registered in vitest.config.ts) — e2e coverage for the local-mode-testable sections of test: validate adapter authoring and override parity in local and hosted modes #311: mode boundaries, override/source/reset workflow, site memory + fixtures + samples, browser init/verify and its flags, and mutable input-output files via a private test adapter.

Sections of #311 requiring a live hosted Cloud deployment (workspace/user isolation, marketplace metadata) are out of scope here — this addresses the local-mode reliability gap surfaced while working through the checklist.

Test plan

  • npm run typecheck
  • npm test (unit + plugin, 5589 passed)
  • npx vitest run --project e2e tests/e2e/adapter-authoring-parity.test.ts (28 passed)
  • Manually verified before/after CLI output for site fixture get (missing → clean error, exit 66), site note add ../evil (clean error, exit 1), adapter source get --output (clean error, exit 2)

…shing
webcmd site * (notes, endpoints, field-maps, fixtures, samples) and
adapter source get/put/path had no error handling, so any failure
surfaced as a raw unhandled-rejection stack trace and always exited 1,
discarding the intended CliError exit code (e.g. a missing fixture
should exit 66, a bad flag 2). Wrap these actions the same way the
rest of the CLI reports errors.
Also adds e2e coverage for the local-mode portion of the manual QA
checklist in agentrhq#311 (override/source workflow, site memory, browser
init/verify flags, mutable input-output files).
@ayushsingh82

ayushsingh82 commented Aug 17, 2026

Copy link
Copy Markdown
ContributorAuthor

@beubax mind taking a look? Quick summary of what's here:

Working through the local-mode checklist in #311, every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put/adapter path turned out to have no error handling — any failure surfaced as a raw unhandled-rejection stack trace and always exited 1, discarding the intended CliError exit code (e.g. a missing fixture should exit 66, a bad flag 2). This PR fixes that in site-memory/commands.ts (shared by local and hosted mode) and the adapter-source actions in cli.ts, updates the 3 unit tests that had encoded the old crash as expected behavior, and adds e2e coverage (tests/e2e/adapter-authoring-parity.test.ts) for the local-mode-testable portion of #311's checklist.

Full details and test plan are in the PR description above. Happy to adjust scope if you'd rather this land as smaller pieces.

@github-actions

Copy link
Copy Markdown
Contributor

🟠 Maintainer review suggested — low confidence

The automated review could not reach a fully supported conclusion.

Limitations

  • The automated review returned an invalid structured result.

This review is advisory and does not block merging.

@ankitranjan7

Copy link
Copy Markdown
Contributor

#363 landed, so this PR should not merge as-is.

The e2e checklist from this PR is rebased onto current main in #364.

@ankitranjan7

Copy link
Copy Markdown
Contributor

Superseded by #364 after #363.

ankitranjan7 added a commit that referenced this pull request Aug 19, 2026
Keep #327's local-mode checklist after #363. Drop wrapAction — runCli and
the hosted runner already envelope these throws, and swallowing them would
mark hosted site errors as success.
@ayushsingh82

Copy link
Copy Markdown
ContributorAuthor

@ankitranjan7 what's the best way to reach out to you . Can you plz share your tg or mail

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

@ayushsingh82@ankitranjan7
, '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: report site/adapter-source command errors cleanly instead of crashing - #327

Closed
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling
Closed

fix: report site/adapter-source command errors cleanly instead of crashing#327
ayushsingh82 wants to merge 1 commit into
agentrhq:mainfrom
ayushsingh82:fix/311-site-adapter-error-handling

Conversation

@ayushsingh82

Copy link
Copy Markdown
Contributor

Summary

Working through the local-mode portion of the manual QA checklist in #311, I found that every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put / adapter path had no error handling in their commander actions. Any failure — a missing fixture, an invalid site name, a duplicate field-map key, an unsupported local write — surfaced as a raw unhandled-rejection stack trace instead of the CLI's normal Error: ... output, and always exited 1 regardless of the error's intended exit code (e.g. SITE_MEMORY_NOT_FOUND should exit 66, an ArgumentError should exit 2).

  • src/site-memory/commands.ts (shared by local and hosted mode via registerSiteCommands) — added a wrapAction helper so every action reports errors and exit codes consistently.
  • src/cli.ts — same fix for adapter source get, adapter source put, and adapter path.
  • src/cli.test.ts — updated 3 pre-existing unit tests that had encoded the old crash-and-reject behavior as expected, to instead assert the clean error message + correct process.exitCode.
  • tests/e2e/adapter-authoring-parity.test.ts (new, registered in vitest.config.ts) — e2e coverage for the local-mode-testable sections of test: validate adapter authoring and override parity in local and hosted modes #311: mode boundaries, override/source/reset workflow, site memory + fixtures + samples, browser init/verify and its flags, and mutable input-output files via a private test adapter.

Sections of #311 requiring a live hosted Cloud deployment (workspace/user isolation, marketplace metadata) are out of scope here — this addresses the local-mode reliability gap surfaced while working through the checklist.

Test plan

  • npm run typecheck
  • npm test (unit + plugin, 5589 passed)
  • npx vitest run --project e2e tests/e2e/adapter-authoring-parity.test.ts (28 passed)
  • Manually verified before/after CLI output for site fixture get (missing → clean error, exit 66), site note add ../evil (clean error, exit 1), adapter source get --output (clean error, exit 2)

…shing
webcmd site * (notes, endpoints, field-maps, fixtures, samples) and
adapter source get/put/path had no error handling, so any failure
surfaced as a raw unhandled-rejection stack trace and always exited 1,
discarding the intended CliError exit code (e.g. a missing fixture
should exit 66, a bad flag 2). Wrap these actions the same way the
rest of the CLI reports errors.
Also adds e2e coverage for the local-mode portion of the manual QA
checklist in agentrhq#311 (override/source workflow, site memory, browser
init/verify flags, mutable input-output files).
@ayushsingh82

ayushsingh82 commented Aug 17, 2026

Copy link
Copy Markdown
ContributorAuthor

@beubax mind taking a look? Quick summary of what's here:

Working through the local-mode checklist in #311, every webcmd site * subcommand (notes, endpoints, field-maps, fixtures, samples) and webcmd adapter source get/put/adapter path turned out to have no error handling — any failure surfaced as a raw unhandled-rejection stack trace and always exited 1, discarding the intended CliError exit code (e.g. a missing fixture should exit 66, a bad flag 2). This PR fixes that in site-memory/commands.ts (shared by local and hosted mode) and the adapter-source actions in cli.ts, updates the 3 unit tests that had encoded the old crash as expected behavior, and adds e2e coverage (tests/e2e/adapter-authoring-parity.test.ts) for the local-mode-testable portion of #311's checklist.

Full details and test plan are in the PR description above. Happy to adjust scope if you'd rather this land as smaller pieces.

@github-actions

Copy link
Copy Markdown
Contributor

🟠 Maintainer review suggested — low confidence

The automated review could not reach a fully supported conclusion.

Limitations

  • The automated review returned an invalid structured result.

This review is advisory and does not block merging.

@ankitranjan7

Copy link
Copy Markdown
Contributor

#363 landed, so this PR should not merge as-is.

The e2e checklist from this PR is rebased onto current main in #364.

@ankitranjan7

Copy link
Copy Markdown
Contributor

Superseded by #364 after #363.

ankitranjan7 added a commit that referenced this pull request Aug 19, 2026
Keep #327's local-mode checklist after #363. Drop wrapAction — runCli and
the hosted runner already envelope these throws, and swallowing them would
mark hosted site errors as success.
@ayushsingh82

Copy link
Copy Markdown
ContributorAuthor

@ankitranjan7 what's the best way to reach out to you . Can you plz share your tg or mail

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

@ayushsingh82@ankitranjan7