fix: structured error instead of panic on non-authorizer auth entry addresses - #2695

Open
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics
Open

fix: structured error instead of panic on non-authorizer auth entry addresses#2695
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics

Conversation

@Galmanus

Copy link
Copy Markdown

What

sign_soroban_authorizations had three todo!() arms — muxed account, claimable balance, and liquidity pool credential addresses — so any transaction carrying such an auth entry crashed the CLI with a raw panic and backtrace. They now return a structured Error::UnsupportedAuthAddress naming the address kind and its strkey.

Why

Part of #2534. Per the ruling in that issue's discussion, muxed accounts are not valid authorizers (confirmed there with dmkozh), so the actionable half of the issue is turning the panics into diagnosable errors — the error text says these addresses "cannot authorize", not "not yet supported". Also refreshes the resolve_secret comment in config/address.rs that pointed at the removed todo!.

Note: PR #2547 attempted this earlier but modifies Dockerfile/entrypoint.sh/docker/README.md, which were removed from main by #2616, and has been conflicting since May. This is a minimal replacement (2 files, no unrelated changes); happy to close in its favor if it gets rebased.

Testing

Three new unit tests (test_{muxed_account,claimable_balance,liquidity_pool}_auth_address_errors_instead_of_panicking) build a transaction with an auth entry for each address kind and assert the structured error — the regression being guarded is "errors, does not panic". cargo test -p soroban-cli --lib signer::: 25 passed. cargo clippy and cargo fmt --check clean.

CopilotAI balanced review requested due to automatic review settings August 22, 2026 10:42
@github-project-automationgithub-project-automationBot moved this to Backlog (Not Ready) in DevXAug 22, 2026

CopilotAI 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.

Pull request overview

Replaces panic paths for unsupported Soroban authorization addresses with structured errors.

Changes:

  • Adds UnsupportedAuthAddress handling for three address variants.
  • Adds regression tests and updates related documentation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

FileDescription
cmd/soroban-cli/src/signer/mod.rsReturns structured errors and adds tests.
cmd/soroban-cli/src/config/address.rsUpdates muxed-account signing commentary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +671 to +694
async fn assert_unsupported_auth_address(address: ScAddress, expected_kind: &str) {
let signer = local_signer([1u8; 32]);
let source = MuxedAccount::Ed25519(Uint256([9u8; 32]));
let contract = [42u8; 32];

let entry = address_auth(address, invocation(contract, "hello"));
let host_fn = HostFunction::InvokeContract(invoke_args(contract, "hello"));
let tx = build_tx(source, host_fn, vec![entry]);

let res = sign_soroban_authorizations(
&tx,
&[signer],
EXPIRATION_LEDGER,
NETWORK,
false,
&Print::new(true),
)
.await;

match res {
Err(Error::UnsupportedAuthAddress { kind, .. }) => assert_eq!(kind, expected_kind),
other => panic!("expected UnsupportedAuthAddress error, got: {other:?}"),
}
}
Comment on lines 88 to 91
// when nothing matches. Muxed accounts (`M...`) carry no secret of
// their own and are not valid authorizers (see
// `Error::UnsupportedAuthAddress` in `sign_soroban_authorizations`),
// so they keep returning `CannotSign`.
… auth entry addresses
An auth entry whose credential address is a muxed account, claimable
balance, or liquidity pool crashed the CLI with a raw `todo!()` panic and
a backtrace. These ScAddress variants are values, not valid authorizers,
so signing now fails with a diagnosable error naming the address kind and
its strkey.
Also refreshes the resolve_secret comment that pointed at the removed
`todo!`.
Part of stellar#2534
CopilotAI review requested due to automatic review settings September 1, 2026 23:05
@Galmanus
Galmanusforce-pushed the fix/2534-auth-address-panics branch from 576a81d to 7a7b3d5CompareSeptember 1, 2026 23:05

CopilotAI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

2 participants

@Galmanus
, '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: structured error instead of panic on non-authorizer auth entry addresses - #2695

Open
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics
Open

fix: structured error instead of panic on non-authorizer auth entry addresses#2695
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics

Conversation

@Galmanus

Copy link
Copy Markdown

What

sign_soroban_authorizations had three todo!() arms — muxed account, claimable balance, and liquidity pool credential addresses — so any transaction carrying such an auth entry crashed the CLI with a raw panic and backtrace. They now return a structured Error::UnsupportedAuthAddress naming the address kind and its strkey.

Why

Part of #2534. Per the ruling in that issue's discussion, muxed accounts are not valid authorizers (confirmed there with dmkozh), so the actionable half of the issue is turning the panics into diagnosable errors — the error text says these addresses "cannot authorize", not "not yet supported". Also refreshes the resolve_secret comment in config/address.rs that pointed at the removed todo!.

Note: PR #2547 attempted this earlier but modifies Dockerfile/entrypoint.sh/docker/README.md, which were removed from main by #2616, and has been conflicting since May. This is a minimal replacement (2 files, no unrelated changes); happy to close in its favor if it gets rebased.

Testing

Three new unit tests (test_{muxed_account,claimable_balance,liquidity_pool}_auth_address_errors_instead_of_panicking) build a transaction with an auth entry for each address kind and assert the structured error — the regression being guarded is "errors, does not panic". cargo test -p soroban-cli --lib signer::: 25 passed. cargo clippy and cargo fmt --check clean.

CopilotAI balanced review requested due to automatic review settings August 22, 2026 10:42
@github-project-automationgithub-project-automationBot moved this to Backlog (Not Ready) in DevXAug 22, 2026

CopilotAI 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.

Pull request overview

Replaces panic paths for unsupported Soroban authorization addresses with structured errors.

Changes:

  • Adds UnsupportedAuthAddress handling for three address variants.
  • Adds regression tests and updates related documentation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

FileDescription
cmd/soroban-cli/src/signer/mod.rsReturns structured errors and adds tests.
cmd/soroban-cli/src/config/address.rsUpdates muxed-account signing commentary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +671 to +694
async fn assert_unsupported_auth_address(address: ScAddress, expected_kind: &str) {
let signer = local_signer([1u8; 32]);
let source = MuxedAccount::Ed25519(Uint256([9u8; 32]));
let contract = [42u8; 32];

let entry = address_auth(address, invocation(contract, "hello"));
let host_fn = HostFunction::InvokeContract(invoke_args(contract, "hello"));
let tx = build_tx(source, host_fn, vec![entry]);

let res = sign_soroban_authorizations(
&tx,
&[signer],
EXPIRATION_LEDGER,
NETWORK,
false,
&Print::new(true),
)
.await;

match res {
Err(Error::UnsupportedAuthAddress { kind, .. }) => assert_eq!(kind, expected_kind),
other => panic!("expected UnsupportedAuthAddress error, got: {other:?}"),
}
}
Comment on lines 88 to 91
// when nothing matches. Muxed accounts (`M...`) carry no secret of
// their own and are not valid authorizers (see
// `Error::UnsupportedAuthAddress` in `sign_soroban_authorizations`),
// so they keep returning `CannotSign`.
… auth entry addresses
An auth entry whose credential address is a muxed account, claimable
balance, or liquidity pool crashed the CLI with a raw `todo!()` panic and
a backtrace. These ScAddress variants are values, not valid authorizers,
so signing now fails with a diagnosable error naming the address kind and
its strkey.
Also refreshes the resolve_secret comment that pointed at the removed
`todo!`.
Part of stellar#2534
CopilotAI review requested due to automatic review settings September 1, 2026 23:05
@Galmanus
Galmanusforce-pushed the fix/2534-auth-address-panics branch from 576a81d to 7a7b3d5CompareSeptember 1, 2026 23:05

CopilotAI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

2 participants

@Galmanus
, '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: structured error instead of panic on non-authorizer auth entry addresses - #2695

Open
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics
Open

fix: structured error instead of panic on non-authorizer auth entry addresses#2695
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics

Conversation

@Galmanus

Copy link
Copy Markdown

What

sign_soroban_authorizations had three todo!() arms — muxed account, claimable balance, and liquidity pool credential addresses — so any transaction carrying such an auth entry crashed the CLI with a raw panic and backtrace. They now return a structured Error::UnsupportedAuthAddress naming the address kind and its strkey.

Why

Part of #2534. Per the ruling in that issue's discussion, muxed accounts are not valid authorizers (confirmed there with dmkozh), so the actionable half of the issue is turning the panics into diagnosable errors — the error text says these addresses "cannot authorize", not "not yet supported". Also refreshes the resolve_secret comment in config/address.rs that pointed at the removed todo!.

Note: PR #2547 attempted this earlier but modifies Dockerfile/entrypoint.sh/docker/README.md, which were removed from main by #2616, and has been conflicting since May. This is a minimal replacement (2 files, no unrelated changes); happy to close in its favor if it gets rebased.

Testing

Three new unit tests (test_{muxed_account,claimable_balance,liquidity_pool}_auth_address_errors_instead_of_panicking) build a transaction with an auth entry for each address kind and assert the structured error — the regression being guarded is "errors, does not panic". cargo test -p soroban-cli --lib signer::: 25 passed. cargo clippy and cargo fmt --check clean.

CopilotAI balanced review requested due to automatic review settings August 22, 2026 10:42
@github-project-automationgithub-project-automationBot moved this to Backlog (Not Ready) in DevXAug 22, 2026

CopilotAI 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.

Pull request overview

Replaces panic paths for unsupported Soroban authorization addresses with structured errors.

Changes:

  • Adds UnsupportedAuthAddress handling for three address variants.
  • Adds regression tests and updates related documentation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

FileDescription
cmd/soroban-cli/src/signer/mod.rsReturns structured errors and adds tests.
cmd/soroban-cli/src/config/address.rsUpdates muxed-account signing commentary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +671 to +694
async fn assert_unsupported_auth_address(address: ScAddress, expected_kind: &str) {
let signer = local_signer([1u8; 32]);
let source = MuxedAccount::Ed25519(Uint256([9u8; 32]));
let contract = [42u8; 32];

let entry = address_auth(address, invocation(contract, "hello"));
let host_fn = HostFunction::InvokeContract(invoke_args(contract, "hello"));
let tx = build_tx(source, host_fn, vec![entry]);

let res = sign_soroban_authorizations(
&tx,
&[signer],
EXPIRATION_LEDGER,
NETWORK,
false,
&Print::new(true),
)
.await;

match res {
Err(Error::UnsupportedAuthAddress { kind, .. }) => assert_eq!(kind, expected_kind),
other => panic!("expected UnsupportedAuthAddress error, got: {other:?}"),
}
}
Comment on lines 88 to 91
// when nothing matches. Muxed accounts (`M...`) carry no secret of
// their own and are not valid authorizers (see
// `Error::UnsupportedAuthAddress` in `sign_soroban_authorizations`),
// so they keep returning `CannotSign`.
… auth entry addresses
An auth entry whose credential address is a muxed account, claimable
balance, or liquidity pool crashed the CLI with a raw `todo!()` panic and
a backtrace. These ScAddress variants are values, not valid authorizers,
so signing now fails with a diagnosable error naming the address kind and
its strkey.
Also refreshes the resolve_secret comment that pointed at the removed
`todo!`.
Part of stellar#2534
CopilotAI review requested due to automatic review settings September 1, 2026 23:05
@Galmanus
Galmanusforce-pushed the fix/2534-auth-address-panics branch from 576a81d to 7a7b3d5CompareSeptember 1, 2026 23:05

CopilotAI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

2 participants

@Galmanus
, '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: structured error instead of panic on non-authorizer auth entry addresses - #2695

Open
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics
Open

fix: structured error instead of panic on non-authorizer auth entry addresses#2695
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics

Conversation

@Galmanus

Copy link
Copy Markdown

What

sign_soroban_authorizations had three todo!() arms — muxed account, claimable balance, and liquidity pool credential addresses — so any transaction carrying such an auth entry crashed the CLI with a raw panic and backtrace. They now return a structured Error::UnsupportedAuthAddress naming the address kind and its strkey.

Why

Part of #2534. Per the ruling in that issue's discussion, muxed accounts are not valid authorizers (confirmed there with dmkozh), so the actionable half of the issue is turning the panics into diagnosable errors — the error text says these addresses "cannot authorize", not "not yet supported". Also refreshes the resolve_secret comment in config/address.rs that pointed at the removed todo!.

Note: PR #2547 attempted this earlier but modifies Dockerfile/entrypoint.sh/docker/README.md, which were removed from main by #2616, and has been conflicting since May. This is a minimal replacement (2 files, no unrelated changes); happy to close in its favor if it gets rebased.

Testing

Three new unit tests (test_{muxed_account,claimable_balance,liquidity_pool}_auth_address_errors_instead_of_panicking) build a transaction with an auth entry for each address kind and assert the structured error — the regression being guarded is "errors, does not panic". cargo test -p soroban-cli --lib signer::: 25 passed. cargo clippy and cargo fmt --check clean.

CopilotAI balanced review requested due to automatic review settings August 22, 2026 10:42
@github-project-automationgithub-project-automationBot moved this to Backlog (Not Ready) in DevXAug 22, 2026

CopilotAI 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.

Pull request overview

Replaces panic paths for unsupported Soroban authorization addresses with structured errors.

Changes:

  • Adds UnsupportedAuthAddress handling for three address variants.
  • Adds regression tests and updates related documentation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

FileDescription
cmd/soroban-cli/src/signer/mod.rsReturns structured errors and adds tests.
cmd/soroban-cli/src/config/address.rsUpdates muxed-account signing commentary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +671 to +694
async fn assert_unsupported_auth_address(address: ScAddress, expected_kind: &str) {
let signer = local_signer([1u8; 32]);
let source = MuxedAccount::Ed25519(Uint256([9u8; 32]));
let contract = [42u8; 32];

let entry = address_auth(address, invocation(contract, "hello"));
let host_fn = HostFunction::InvokeContract(invoke_args(contract, "hello"));
let tx = build_tx(source, host_fn, vec![entry]);

let res = sign_soroban_authorizations(
&tx,
&[signer],
EXPIRATION_LEDGER,
NETWORK,
false,
&Print::new(true),
)
.await;

match res {
Err(Error::UnsupportedAuthAddress { kind, .. }) => assert_eq!(kind, expected_kind),
other => panic!("expected UnsupportedAuthAddress error, got: {other:?}"),
}
}
Comment on lines 88 to 91
// when nothing matches. Muxed accounts (`M...`) carry no secret of
// their own and are not valid authorizers (see
// `Error::UnsupportedAuthAddress` in `sign_soroban_authorizations`),
// so they keep returning `CannotSign`.
… auth entry addresses
An auth entry whose credential address is a muxed account, claimable
balance, or liquidity pool crashed the CLI with a raw `todo!()` panic and
a backtrace. These ScAddress variants are values, not valid authorizers,
so signing now fails with a diagnosable error naming the address kind and
its strkey.
Also refreshes the resolve_secret comment that pointed at the removed
`todo!`.
Part of stellar#2534
CopilotAI review requested due to automatic review settings September 1, 2026 23:05
@Galmanus
Galmanusforce-pushed the fix/2534-auth-address-panics branch from 576a81d to 7a7b3d5CompareSeptember 1, 2026 23:05

CopilotAI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

2 participants

@Galmanus
, '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: structured error instead of panic on non-authorizer auth entry addresses - #2695

Open
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics
Open

fix: structured error instead of panic on non-authorizer auth entry addresses#2695
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics

Conversation

@Galmanus

Copy link
Copy Markdown

What

sign_soroban_authorizations had three todo!() arms — muxed account, claimable balance, and liquidity pool credential addresses — so any transaction carrying such an auth entry crashed the CLI with a raw panic and backtrace. They now return a structured Error::UnsupportedAuthAddress naming the address kind and its strkey.

Why

Part of #2534. Per the ruling in that issue's discussion, muxed accounts are not valid authorizers (confirmed there with dmkozh), so the actionable half of the issue is turning the panics into diagnosable errors — the error text says these addresses "cannot authorize", not "not yet supported". Also refreshes the resolve_secret comment in config/address.rs that pointed at the removed todo!.

Note: PR #2547 attempted this earlier but modifies Dockerfile/entrypoint.sh/docker/README.md, which were removed from main by #2616, and has been conflicting since May. This is a minimal replacement (2 files, no unrelated changes); happy to close in its favor if it gets rebased.

Testing

Three new unit tests (test_{muxed_account,claimable_balance,liquidity_pool}_auth_address_errors_instead_of_panicking) build a transaction with an auth entry for each address kind and assert the structured error — the regression being guarded is "errors, does not panic". cargo test -p soroban-cli --lib signer::: 25 passed. cargo clippy and cargo fmt --check clean.

CopilotAI balanced review requested due to automatic review settings August 22, 2026 10:42
@github-project-automationgithub-project-automationBot moved this to Backlog (Not Ready) in DevXAug 22, 2026

CopilotAI 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.

Pull request overview

Replaces panic paths for unsupported Soroban authorization addresses with structured errors.

Changes:

  • Adds UnsupportedAuthAddress handling for three address variants.
  • Adds regression tests and updates related documentation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

FileDescription
cmd/soroban-cli/src/signer/mod.rsReturns structured errors and adds tests.
cmd/soroban-cli/src/config/address.rsUpdates muxed-account signing commentary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +671 to +694
async fn assert_unsupported_auth_address(address: ScAddress, expected_kind: &str) {
let signer = local_signer([1u8; 32]);
let source = MuxedAccount::Ed25519(Uint256([9u8; 32]));
let contract = [42u8; 32];

let entry = address_auth(address, invocation(contract, "hello"));
let host_fn = HostFunction::InvokeContract(invoke_args(contract, "hello"));
let tx = build_tx(source, host_fn, vec![entry]);

let res = sign_soroban_authorizations(
&tx,
&[signer],
EXPIRATION_LEDGER,
NETWORK,
false,
&Print::new(true),
)
.await;

match res {
Err(Error::UnsupportedAuthAddress { kind, .. }) => assert_eq!(kind, expected_kind),
other => panic!("expected UnsupportedAuthAddress error, got: {other:?}"),
}
}
Comment on lines 88 to 91
// when nothing matches. Muxed accounts (`M...`) carry no secret of
// their own and are not valid authorizers (see
// `Error::UnsupportedAuthAddress` in `sign_soroban_authorizations`),
// so they keep returning `CannotSign`.
… auth entry addresses
An auth entry whose credential address is a muxed account, claimable
balance, or liquidity pool crashed the CLI with a raw `todo!()` panic and
a backtrace. These ScAddress variants are values, not valid authorizers,
so signing now fails with a diagnosable error naming the address kind and
its strkey.
Also refreshes the resolve_secret comment that pointed at the removed
`todo!`.
Part of stellar#2534
CopilotAI review requested due to automatic review settings September 1, 2026 23:05
@Galmanus
Galmanusforce-pushed the fix/2534-auth-address-panics branch from 576a81d to 7a7b3d5CompareSeptember 1, 2026 23:05

CopilotAI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

2 participants

@Galmanus
, '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: structured error instead of panic on non-authorizer auth entry addresses - #2695

Open
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics
Open

fix: structured error instead of panic on non-authorizer auth entry addresses#2695
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics

Conversation

@Galmanus

Copy link
Copy Markdown

What

sign_soroban_authorizations had three todo!() arms — muxed account, claimable balance, and liquidity pool credential addresses — so any transaction carrying such an auth entry crashed the CLI with a raw panic and backtrace. They now return a structured Error::UnsupportedAuthAddress naming the address kind and its strkey.

Why

Part of #2534. Per the ruling in that issue's discussion, muxed accounts are not valid authorizers (confirmed there with dmkozh), so the actionable half of the issue is turning the panics into diagnosable errors — the error text says these addresses "cannot authorize", not "not yet supported". Also refreshes the resolve_secret comment in config/address.rs that pointed at the removed todo!.

Note: PR #2547 attempted this earlier but modifies Dockerfile/entrypoint.sh/docker/README.md, which were removed from main by #2616, and has been conflicting since May. This is a minimal replacement (2 files, no unrelated changes); happy to close in its favor if it gets rebased.

Testing

Three new unit tests (test_{muxed_account,claimable_balance,liquidity_pool}_auth_address_errors_instead_of_panicking) build a transaction with an auth entry for each address kind and assert the structured error — the regression being guarded is "errors, does not panic". cargo test -p soroban-cli --lib signer::: 25 passed. cargo clippy and cargo fmt --check clean.

CopilotAI balanced review requested due to automatic review settings August 22, 2026 10:42
@github-project-automationgithub-project-automationBot moved this to Backlog (Not Ready) in DevXAug 22, 2026

CopilotAI 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.

Pull request overview

Replaces panic paths for unsupported Soroban authorization addresses with structured errors.

Changes:

  • Adds UnsupportedAuthAddress handling for three address variants.
  • Adds regression tests and updates related documentation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

FileDescription
cmd/soroban-cli/src/signer/mod.rsReturns structured errors and adds tests.
cmd/soroban-cli/src/config/address.rsUpdates muxed-account signing commentary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +671 to +694
async fn assert_unsupported_auth_address(address: ScAddress, expected_kind: &str) {
let signer = local_signer([1u8; 32]);
let source = MuxedAccount::Ed25519(Uint256([9u8; 32]));
let contract = [42u8; 32];

let entry = address_auth(address, invocation(contract, "hello"));
let host_fn = HostFunction::InvokeContract(invoke_args(contract, "hello"));
let tx = build_tx(source, host_fn, vec![entry]);

let res = sign_soroban_authorizations(
&tx,
&[signer],
EXPIRATION_LEDGER,
NETWORK,
false,
&Print::new(true),
)
.await;

match res {
Err(Error::UnsupportedAuthAddress { kind, .. }) => assert_eq!(kind, expected_kind),
other => panic!("expected UnsupportedAuthAddress error, got: {other:?}"),
}
}
Comment on lines 88 to 91
// when nothing matches. Muxed accounts (`M...`) carry no secret of
// their own and are not valid authorizers (see
// `Error::UnsupportedAuthAddress` in `sign_soroban_authorizations`),
// so they keep returning `CannotSign`.
… auth entry addresses
An auth entry whose credential address is a muxed account, claimable
balance, or liquidity pool crashed the CLI with a raw `todo!()` panic and
a backtrace. These ScAddress variants are values, not valid authorizers,
so signing now fails with a diagnosable error naming the address kind and
its strkey.
Also refreshes the resolve_secret comment that pointed at the removed
`todo!`.
Part of stellar#2534
CopilotAI review requested due to automatic review settings September 1, 2026 23:05
@Galmanus
Galmanusforce-pushed the fix/2534-auth-address-panics branch from 576a81d to 7a7b3d5CompareSeptember 1, 2026 23:05

CopilotAI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

2 participants

@Galmanus
, '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: structured error instead of panic on non-authorizer auth entry addresses - #2695

Open
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics
Open

fix: structured error instead of panic on non-authorizer auth entry addresses#2695
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics

Conversation

@Galmanus

Copy link
Copy Markdown

What

sign_soroban_authorizations had three todo!() arms — muxed account, claimable balance, and liquidity pool credential addresses — so any transaction carrying such an auth entry crashed the CLI with a raw panic and backtrace. They now return a structured Error::UnsupportedAuthAddress naming the address kind and its strkey.

Why

Part of #2534. Per the ruling in that issue's discussion, muxed accounts are not valid authorizers (confirmed there with dmkozh), so the actionable half of the issue is turning the panics into diagnosable errors — the error text says these addresses "cannot authorize", not "not yet supported". Also refreshes the resolve_secret comment in config/address.rs that pointed at the removed todo!.

Note: PR #2547 attempted this earlier but modifies Dockerfile/entrypoint.sh/docker/README.md, which were removed from main by #2616, and has been conflicting since May. This is a minimal replacement (2 files, no unrelated changes); happy to close in its favor if it gets rebased.

Testing

Three new unit tests (test_{muxed_account,claimable_balance,liquidity_pool}_auth_address_errors_instead_of_panicking) build a transaction with an auth entry for each address kind and assert the structured error — the regression being guarded is "errors, does not panic". cargo test -p soroban-cli --lib signer::: 25 passed. cargo clippy and cargo fmt --check clean.

CopilotAI balanced review requested due to automatic review settings August 22, 2026 10:42
@github-project-automationgithub-project-automationBot moved this to Backlog (Not Ready) in DevXAug 22, 2026

CopilotAI 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.

Pull request overview

Replaces panic paths for unsupported Soroban authorization addresses with structured errors.

Changes:

  • Adds UnsupportedAuthAddress handling for three address variants.
  • Adds regression tests and updates related documentation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

FileDescription
cmd/soroban-cli/src/signer/mod.rsReturns structured errors and adds tests.
cmd/soroban-cli/src/config/address.rsUpdates muxed-account signing commentary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +671 to +694
async fn assert_unsupported_auth_address(address: ScAddress, expected_kind: &str) {
let signer = local_signer([1u8; 32]);
let source = MuxedAccount::Ed25519(Uint256([9u8; 32]));
let contract = [42u8; 32];

let entry = address_auth(address, invocation(contract, "hello"));
let host_fn = HostFunction::InvokeContract(invoke_args(contract, "hello"));
let tx = build_tx(source, host_fn, vec![entry]);

let res = sign_soroban_authorizations(
&tx,
&[signer],
EXPIRATION_LEDGER,
NETWORK,
false,
&Print::new(true),
)
.await;

match res {
Err(Error::UnsupportedAuthAddress { kind, .. }) => assert_eq!(kind, expected_kind),
other => panic!("expected UnsupportedAuthAddress error, got: {other:?}"),
}
}
Comment on lines 88 to 91
// when nothing matches. Muxed accounts (`M...`) carry no secret of
// their own and are not valid authorizers (see
// `Error::UnsupportedAuthAddress` in `sign_soroban_authorizations`),
// so they keep returning `CannotSign`.
… auth entry addresses
An auth entry whose credential address is a muxed account, claimable
balance, or liquidity pool crashed the CLI with a raw `todo!()` panic and
a backtrace. These ScAddress variants are values, not valid authorizers,
so signing now fails with a diagnosable error naming the address kind and
its strkey.
Also refreshes the resolve_secret comment that pointed at the removed
`todo!`.
Part of stellar#2534
CopilotAI review requested due to automatic review settings September 1, 2026 23:05
@Galmanus
Galmanusforce-pushed the fix/2534-auth-address-panics branch from 576a81d to 7a7b3d5CompareSeptember 1, 2026 23:05

CopilotAI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

2 participants

@Galmanus
, '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: structured error instead of panic on non-authorizer auth entry addresses - #2695

Open
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics
Open

fix: structured error instead of panic on non-authorizer auth entry addresses#2695
Galmanus wants to merge 2 commits into
stellar:mainfrom
Galmanus:fix/2534-auth-address-panics

Conversation

@Galmanus

Copy link
Copy Markdown

What

sign_soroban_authorizations had three todo!() arms — muxed account, claimable balance, and liquidity pool credential addresses — so any transaction carrying such an auth entry crashed the CLI with a raw panic and backtrace. They now return a structured Error::UnsupportedAuthAddress naming the address kind and its strkey.

Why

Part of #2534. Per the ruling in that issue's discussion, muxed accounts are not valid authorizers (confirmed there with dmkozh), so the actionable half of the issue is turning the panics into diagnosable errors — the error text says these addresses "cannot authorize", not "not yet supported". Also refreshes the resolve_secret comment in config/address.rs that pointed at the removed todo!.

Note: PR #2547 attempted this earlier but modifies Dockerfile/entrypoint.sh/docker/README.md, which were removed from main by #2616, and has been conflicting since May. This is a minimal replacement (2 files, no unrelated changes); happy to close in its favor if it gets rebased.

Testing

Three new unit tests (test_{muxed_account,claimable_balance,liquidity_pool}_auth_address_errors_instead_of_panicking) build a transaction with an auth entry for each address kind and assert the structured error — the regression being guarded is "errors, does not panic". cargo test -p soroban-cli --lib signer::: 25 passed. cargo clippy and cargo fmt --check clean.

CopilotAI balanced review requested due to automatic review settings August 22, 2026 10:42
@github-project-automationgithub-project-automationBot moved this to Backlog (Not Ready) in DevXAug 22, 2026

CopilotAI 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.

Pull request overview

Replaces panic paths for unsupported Soroban authorization addresses with structured errors.

Changes:

  • Adds UnsupportedAuthAddress handling for three address variants.
  • Adds regression tests and updates related documentation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

FileDescription
cmd/soroban-cli/src/signer/mod.rsReturns structured errors and adds tests.
cmd/soroban-cli/src/config/address.rsUpdates muxed-account signing commentary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +671 to +694
async fn assert_unsupported_auth_address(address: ScAddress, expected_kind: &str) {
let signer = local_signer([1u8; 32]);
let source = MuxedAccount::Ed25519(Uint256([9u8; 32]));
let contract = [42u8; 32];

let entry = address_auth(address, invocation(contract, "hello"));
let host_fn = HostFunction::InvokeContract(invoke_args(contract, "hello"));
let tx = build_tx(source, host_fn, vec![entry]);

let res = sign_soroban_authorizations(
&tx,
&[signer],
EXPIRATION_LEDGER,
NETWORK,
false,
&Print::new(true),
)
.await;

match res {
Err(Error::UnsupportedAuthAddress { kind, .. }) => assert_eq!(kind, expected_kind),
other => panic!("expected UnsupportedAuthAddress error, got: {other:?}"),
}
}
Comment on lines 88 to 91
// when nothing matches. Muxed accounts (`M...`) carry no secret of
// their own and are not valid authorizers (see
// `Error::UnsupportedAuthAddress` in `sign_soroban_authorizations`),
// so they keep returning `CannotSign`.
… auth entry addresses
An auth entry whose credential address is a muxed account, claimable
balance, or liquidity pool crashed the CLI with a raw `todo!()` panic and
a backtrace. These ScAddress variants are values, not valid authorizers,
so signing now fails with a diagnosable error naming the address kind and
its strkey.
Also refreshes the resolve_secret comment that pointed at the removed
`todo!`.
Part of stellar#2534
CopilotAI review requested due to automatic review settings September 1, 2026 23:05
@Galmanus
Galmanusforce-pushed the fix/2534-auth-address-panics branch from 576a81d to 7a7b3d5CompareSeptember 1, 2026 23:05

CopilotAI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

2 participants

@Galmanus