fix: gate pubky auth handler - #1162

Merged
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility
Aug 17, 2026
Merged

fix: gate pubky auth handler#1162
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility

Conversation

@ben-kaufman

Copy link
Copy Markdown
Contributor

Description

This PR prevents Bitkit from advertising itself as a pubkyauth handler unless the Paykit UI is enabled and the current Pubky identity has a matching local secret key.

Previously, the main activity registered the scheme unconditionally, so Android could route Pubky App authorization links to Bitkit even when the production UI was unavailable or the identity was managed by Pubky Ring. The handler now lives on a disabled-by-default activity alias. Bitkit enables it only while local authorization is possible and disables it again when the feature or identity state changes.

Preview

N/A — no UI changes.

QA Notes

Manual Tests

  • 1. With Paykit UI disabled, request Pubky authorization: Bitkit is not offered or selected.
  • 2. With Paykit UI enabled but no Pubky identity, request authorization: Bitkit is not offered or selected.
  • 3. With a Ring-managed identity, request authorization: Bitkit is not offered or selected.
  • 4. With a Bitkit-managed identity, request authorization: Bitkit opens the authorization screen.
  • 5. Remove the local identity or disable Paykit UI, then retry: Bitkit no longer handles the link.

Automated Checks

  • PubkyAuthHandlerRegistrarTest.kt: covers eligibility, state transitions, idempotent startup, and PackageManager failure recovery.
  • PubkyAuthManifestTest.kt: ensures the main activity no longer claims pubkyauth and the alias is disabled by default.
  • Local compile, complete dev unit suite, and detekt passed.

@ben-kaufman
ben-kaufman marked this pull request as ready for review August 17, 2026 14:00
@greptile-apps

Copy link
Copy Markdown

Greptile Summary

The PR conditionally advertises Bitkit as a pubkyauth handler only when Paykit UI is enabled and the current Pubky identity has a matching local secret key.

  • Moves the pubkyauth intent filter from MainActivity to a disabled-by-default activity alias.
  • Adds an application-scoped registrar that observes feature and identity state and toggles the alias.
  • Adds unit and manifest tests covering eligibility, transitions, idempotent startup, and package-manager failures.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking issues identified.

The manifest alias, runtime eligibility reconciliation, and deep-link handling remain consistent, and the investigated state-transition and lifecycle paths did not establish an observable changed-code failure.

Important Files Changed

FilenameOverview
app/src/main/AndroidManifest.xmlMoves pubkyauth routing to an exported activity alias that is disabled until runtime eligibility is established.
app/src/main/java/to/bitkit/App.ktInjects and starts the handler registrar during application initialization.
app/src/main/java/to/bitkit/services/PubkyAuthHandlerRegistrar.ktObserves feature and identity state and safely reconciles the activity-alias enabled state.
app/src/test/java/to/bitkit/build/PubkyAuthManifestTest.ktVerifies that only the disabled alias declares the pubkyauth scheme.
app/src/test/java/to/bitkit/services/PubkyAuthHandlerRegistrarTest.ktCovers eligibility decisions, state transitions, idempotent startup, and recovery after package-manager failures.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[App starts] --> B[Observe Paykit setting and Pubky public key]
B --> C{Paykit UI enabled?}
C -- No --> D[Disable pubkyauth activity alias]
C -- Yes --> E{Identity exists and local secret matches?}
E -- No --> D
E -- Yes --> F[Enable pubkyauth activity alias]
F --> G[Android can route pubkyauth links to MainActivity]
Loading

Reviews (1): Last reviewed commit: "chore: name changelog for pr" | Re-trigger Greptile

@ovitrif
ovitrif self-requested a review August 17, 2026 14:53

@ovitrifovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. This change prevents Bitkit from advertising the pubkyauth handler unless Paykit UI is enabled and the current identity has a matching local secret.

@ovitrif
ovitrif merged commit 395d19a into masterAug 17, 2026
27 checks passed
@ovitrif
ovitrif deleted the fix/pubkyauth-handler-eligibility branch August 17, 2026 15:41
@ovitrifovitrif added this to the 2.5.0 milestone Aug 17, 2026
@piotr-iohkpiotr-iohk mentioned this pull request Aug 21, 2026
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

@ben-kaufman@ovitrif
, '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: gate pubky auth handler - #1162

Merged
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility
Aug 17, 2026
Merged

fix: gate pubky auth handler#1162
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility

Conversation

@ben-kaufman

Copy link
Copy Markdown
Contributor

Description

This PR prevents Bitkit from advertising itself as a pubkyauth handler unless the Paykit UI is enabled and the current Pubky identity has a matching local secret key.

Previously, the main activity registered the scheme unconditionally, so Android could route Pubky App authorization links to Bitkit even when the production UI was unavailable or the identity was managed by Pubky Ring. The handler now lives on a disabled-by-default activity alias. Bitkit enables it only while local authorization is possible and disables it again when the feature or identity state changes.

Preview

N/A — no UI changes.

QA Notes

Manual Tests

  • 1. With Paykit UI disabled, request Pubky authorization: Bitkit is not offered or selected.
  • 2. With Paykit UI enabled but no Pubky identity, request authorization: Bitkit is not offered or selected.
  • 3. With a Ring-managed identity, request authorization: Bitkit is not offered or selected.
  • 4. With a Bitkit-managed identity, request authorization: Bitkit opens the authorization screen.
  • 5. Remove the local identity or disable Paykit UI, then retry: Bitkit no longer handles the link.

Automated Checks

  • PubkyAuthHandlerRegistrarTest.kt: covers eligibility, state transitions, idempotent startup, and PackageManager failure recovery.
  • PubkyAuthManifestTest.kt: ensures the main activity no longer claims pubkyauth and the alias is disabled by default.
  • Local compile, complete dev unit suite, and detekt passed.

@ben-kaufman
ben-kaufman marked this pull request as ready for review August 17, 2026 14:00
@greptile-apps

Copy link
Copy Markdown

Greptile Summary

The PR conditionally advertises Bitkit as a pubkyauth handler only when Paykit UI is enabled and the current Pubky identity has a matching local secret key.

  • Moves the pubkyauth intent filter from MainActivity to a disabled-by-default activity alias.
  • Adds an application-scoped registrar that observes feature and identity state and toggles the alias.
  • Adds unit and manifest tests covering eligibility, transitions, idempotent startup, and package-manager failures.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking issues identified.

The manifest alias, runtime eligibility reconciliation, and deep-link handling remain consistent, and the investigated state-transition and lifecycle paths did not establish an observable changed-code failure.

Important Files Changed

FilenameOverview
app/src/main/AndroidManifest.xmlMoves pubkyauth routing to an exported activity alias that is disabled until runtime eligibility is established.
app/src/main/java/to/bitkit/App.ktInjects and starts the handler registrar during application initialization.
app/src/main/java/to/bitkit/services/PubkyAuthHandlerRegistrar.ktObserves feature and identity state and safely reconciles the activity-alias enabled state.
app/src/test/java/to/bitkit/build/PubkyAuthManifestTest.ktVerifies that only the disabled alias declares the pubkyauth scheme.
app/src/test/java/to/bitkit/services/PubkyAuthHandlerRegistrarTest.ktCovers eligibility decisions, state transitions, idempotent startup, and recovery after package-manager failures.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[App starts] --> B[Observe Paykit setting and Pubky public key]
B --> C{Paykit UI enabled?}
C -- No --> D[Disable pubkyauth activity alias]
C -- Yes --> E{Identity exists and local secret matches?}
E -- No --> D
E -- Yes --> F[Enable pubkyauth activity alias]
F --> G[Android can route pubkyauth links to MainActivity]
Loading

Reviews (1): Last reviewed commit: "chore: name changelog for pr" | Re-trigger Greptile

@ovitrif
ovitrif self-requested a review August 17, 2026 14:53

@ovitrifovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. This change prevents Bitkit from advertising the pubkyauth handler unless Paykit UI is enabled and the current identity has a matching local secret.

@ovitrif
ovitrif merged commit 395d19a into masterAug 17, 2026
27 checks passed
@ovitrif
ovitrif deleted the fix/pubkyauth-handler-eligibility branch August 17, 2026 15:41
@ovitrifovitrif added this to the 2.5.0 milestone Aug 17, 2026
@piotr-iohkpiotr-iohk mentioned this pull request Aug 21, 2026
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

@ben-kaufman@ovitrif
, '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: gate pubky auth handler - #1162

Merged
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility
Aug 17, 2026
Merged

fix: gate pubky auth handler#1162
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility

Conversation

@ben-kaufman

Copy link
Copy Markdown
Contributor

Description

This PR prevents Bitkit from advertising itself as a pubkyauth handler unless the Paykit UI is enabled and the current Pubky identity has a matching local secret key.

Previously, the main activity registered the scheme unconditionally, so Android could route Pubky App authorization links to Bitkit even when the production UI was unavailable or the identity was managed by Pubky Ring. The handler now lives on a disabled-by-default activity alias. Bitkit enables it only while local authorization is possible and disables it again when the feature or identity state changes.

Preview

N/A — no UI changes.

QA Notes

Manual Tests

  • 1. With Paykit UI disabled, request Pubky authorization: Bitkit is not offered or selected.
  • 2. With Paykit UI enabled but no Pubky identity, request authorization: Bitkit is not offered or selected.
  • 3. With a Ring-managed identity, request authorization: Bitkit is not offered or selected.
  • 4. With a Bitkit-managed identity, request authorization: Bitkit opens the authorization screen.
  • 5. Remove the local identity or disable Paykit UI, then retry: Bitkit no longer handles the link.

Automated Checks

  • PubkyAuthHandlerRegistrarTest.kt: covers eligibility, state transitions, idempotent startup, and PackageManager failure recovery.
  • PubkyAuthManifestTest.kt: ensures the main activity no longer claims pubkyauth and the alias is disabled by default.
  • Local compile, complete dev unit suite, and detekt passed.

@ben-kaufman
ben-kaufman marked this pull request as ready for review August 17, 2026 14:00
@greptile-apps

Copy link
Copy Markdown

Greptile Summary

The PR conditionally advertises Bitkit as a pubkyauth handler only when Paykit UI is enabled and the current Pubky identity has a matching local secret key.

  • Moves the pubkyauth intent filter from MainActivity to a disabled-by-default activity alias.
  • Adds an application-scoped registrar that observes feature and identity state and toggles the alias.
  • Adds unit and manifest tests covering eligibility, transitions, idempotent startup, and package-manager failures.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking issues identified.

The manifest alias, runtime eligibility reconciliation, and deep-link handling remain consistent, and the investigated state-transition and lifecycle paths did not establish an observable changed-code failure.

Important Files Changed

FilenameOverview
app/src/main/AndroidManifest.xmlMoves pubkyauth routing to an exported activity alias that is disabled until runtime eligibility is established.
app/src/main/java/to/bitkit/App.ktInjects and starts the handler registrar during application initialization.
app/src/main/java/to/bitkit/services/PubkyAuthHandlerRegistrar.ktObserves feature and identity state and safely reconciles the activity-alias enabled state.
app/src/test/java/to/bitkit/build/PubkyAuthManifestTest.ktVerifies that only the disabled alias declares the pubkyauth scheme.
app/src/test/java/to/bitkit/services/PubkyAuthHandlerRegistrarTest.ktCovers eligibility decisions, state transitions, idempotent startup, and recovery after package-manager failures.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[App starts] --> B[Observe Paykit setting and Pubky public key]
B --> C{Paykit UI enabled?}
C -- No --> D[Disable pubkyauth activity alias]
C -- Yes --> E{Identity exists and local secret matches?}
E -- No --> D
E -- Yes --> F[Enable pubkyauth activity alias]
F --> G[Android can route pubkyauth links to MainActivity]
Loading

Reviews (1): Last reviewed commit: "chore: name changelog for pr" | Re-trigger Greptile

@ovitrif
ovitrif self-requested a review August 17, 2026 14:53

@ovitrifovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. This change prevents Bitkit from advertising the pubkyauth handler unless Paykit UI is enabled and the current identity has a matching local secret.

@ovitrif
ovitrif merged commit 395d19a into masterAug 17, 2026
27 checks passed
@ovitrif
ovitrif deleted the fix/pubkyauth-handler-eligibility branch August 17, 2026 15:41
@ovitrifovitrif added this to the 2.5.0 milestone Aug 17, 2026
@piotr-iohkpiotr-iohk mentioned this pull request Aug 21, 2026
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

@ben-kaufman@ovitrif
, '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: gate pubky auth handler - #1162

Merged
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility
Aug 17, 2026
Merged

fix: gate pubky auth handler#1162
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility

Conversation

@ben-kaufman

Copy link
Copy Markdown
Contributor

Description

This PR prevents Bitkit from advertising itself as a pubkyauth handler unless the Paykit UI is enabled and the current Pubky identity has a matching local secret key.

Previously, the main activity registered the scheme unconditionally, so Android could route Pubky App authorization links to Bitkit even when the production UI was unavailable or the identity was managed by Pubky Ring. The handler now lives on a disabled-by-default activity alias. Bitkit enables it only while local authorization is possible and disables it again when the feature or identity state changes.

Preview

N/A — no UI changes.

QA Notes

Manual Tests

  • 1. With Paykit UI disabled, request Pubky authorization: Bitkit is not offered or selected.
  • 2. With Paykit UI enabled but no Pubky identity, request authorization: Bitkit is not offered or selected.
  • 3. With a Ring-managed identity, request authorization: Bitkit is not offered or selected.
  • 4. With a Bitkit-managed identity, request authorization: Bitkit opens the authorization screen.
  • 5. Remove the local identity or disable Paykit UI, then retry: Bitkit no longer handles the link.

Automated Checks

  • PubkyAuthHandlerRegistrarTest.kt: covers eligibility, state transitions, idempotent startup, and PackageManager failure recovery.
  • PubkyAuthManifestTest.kt: ensures the main activity no longer claims pubkyauth and the alias is disabled by default.
  • Local compile, complete dev unit suite, and detekt passed.

@ben-kaufman
ben-kaufman marked this pull request as ready for review August 17, 2026 14:00
@greptile-apps

Copy link
Copy Markdown

Greptile Summary

The PR conditionally advertises Bitkit as a pubkyauth handler only when Paykit UI is enabled and the current Pubky identity has a matching local secret key.

  • Moves the pubkyauth intent filter from MainActivity to a disabled-by-default activity alias.
  • Adds an application-scoped registrar that observes feature and identity state and toggles the alias.
  • Adds unit and manifest tests covering eligibility, transitions, idempotent startup, and package-manager failures.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking issues identified.

The manifest alias, runtime eligibility reconciliation, and deep-link handling remain consistent, and the investigated state-transition and lifecycle paths did not establish an observable changed-code failure.

Important Files Changed

FilenameOverview
app/src/main/AndroidManifest.xmlMoves pubkyauth routing to an exported activity alias that is disabled until runtime eligibility is established.
app/src/main/java/to/bitkit/App.ktInjects and starts the handler registrar during application initialization.
app/src/main/java/to/bitkit/services/PubkyAuthHandlerRegistrar.ktObserves feature and identity state and safely reconciles the activity-alias enabled state.
app/src/test/java/to/bitkit/build/PubkyAuthManifestTest.ktVerifies that only the disabled alias declares the pubkyauth scheme.
app/src/test/java/to/bitkit/services/PubkyAuthHandlerRegistrarTest.ktCovers eligibility decisions, state transitions, idempotent startup, and recovery after package-manager failures.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[App starts] --> B[Observe Paykit setting and Pubky public key]
B --> C{Paykit UI enabled?}
C -- No --> D[Disable pubkyauth activity alias]
C -- Yes --> E{Identity exists and local secret matches?}
E -- No --> D
E -- Yes --> F[Enable pubkyauth activity alias]
F --> G[Android can route pubkyauth links to MainActivity]
Loading

Reviews (1): Last reviewed commit: "chore: name changelog for pr" | Re-trigger Greptile

@ovitrif
ovitrif self-requested a review August 17, 2026 14:53

@ovitrifovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. This change prevents Bitkit from advertising the pubkyauth handler unless Paykit UI is enabled and the current identity has a matching local secret.

@ovitrif
ovitrif merged commit 395d19a into masterAug 17, 2026
27 checks passed
@ovitrif
ovitrif deleted the fix/pubkyauth-handler-eligibility branch August 17, 2026 15:41
@ovitrifovitrif added this to the 2.5.0 milestone Aug 17, 2026
@piotr-iohkpiotr-iohk mentioned this pull request Aug 21, 2026
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

@ben-kaufman@ovitrif
, '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: gate pubky auth handler - #1162

Merged
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility
Aug 17, 2026
Merged

fix: gate pubky auth handler#1162
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility

Conversation

@ben-kaufman

Copy link
Copy Markdown
Contributor

Description

This PR prevents Bitkit from advertising itself as a pubkyauth handler unless the Paykit UI is enabled and the current Pubky identity has a matching local secret key.

Previously, the main activity registered the scheme unconditionally, so Android could route Pubky App authorization links to Bitkit even when the production UI was unavailable or the identity was managed by Pubky Ring. The handler now lives on a disabled-by-default activity alias. Bitkit enables it only while local authorization is possible and disables it again when the feature or identity state changes.

Preview

N/A — no UI changes.

QA Notes

Manual Tests

  • 1. With Paykit UI disabled, request Pubky authorization: Bitkit is not offered or selected.
  • 2. With Paykit UI enabled but no Pubky identity, request authorization: Bitkit is not offered or selected.
  • 3. With a Ring-managed identity, request authorization: Bitkit is not offered or selected.
  • 4. With a Bitkit-managed identity, request authorization: Bitkit opens the authorization screen.
  • 5. Remove the local identity or disable Paykit UI, then retry: Bitkit no longer handles the link.

Automated Checks

  • PubkyAuthHandlerRegistrarTest.kt: covers eligibility, state transitions, idempotent startup, and PackageManager failure recovery.
  • PubkyAuthManifestTest.kt: ensures the main activity no longer claims pubkyauth and the alias is disabled by default.
  • Local compile, complete dev unit suite, and detekt passed.

@ben-kaufman
ben-kaufman marked this pull request as ready for review August 17, 2026 14:00
@greptile-apps

Copy link
Copy Markdown

Greptile Summary

The PR conditionally advertises Bitkit as a pubkyauth handler only when Paykit UI is enabled and the current Pubky identity has a matching local secret key.

  • Moves the pubkyauth intent filter from MainActivity to a disabled-by-default activity alias.
  • Adds an application-scoped registrar that observes feature and identity state and toggles the alias.
  • Adds unit and manifest tests covering eligibility, transitions, idempotent startup, and package-manager failures.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking issues identified.

The manifest alias, runtime eligibility reconciliation, and deep-link handling remain consistent, and the investigated state-transition and lifecycle paths did not establish an observable changed-code failure.

Important Files Changed

FilenameOverview
app/src/main/AndroidManifest.xmlMoves pubkyauth routing to an exported activity alias that is disabled until runtime eligibility is established.
app/src/main/java/to/bitkit/App.ktInjects and starts the handler registrar during application initialization.
app/src/main/java/to/bitkit/services/PubkyAuthHandlerRegistrar.ktObserves feature and identity state and safely reconciles the activity-alias enabled state.
app/src/test/java/to/bitkit/build/PubkyAuthManifestTest.ktVerifies that only the disabled alias declares the pubkyauth scheme.
app/src/test/java/to/bitkit/services/PubkyAuthHandlerRegistrarTest.ktCovers eligibility decisions, state transitions, idempotent startup, and recovery after package-manager failures.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[App starts] --> B[Observe Paykit setting and Pubky public key]
B --> C{Paykit UI enabled?}
C -- No --> D[Disable pubkyauth activity alias]
C -- Yes --> E{Identity exists and local secret matches?}
E -- No --> D
E -- Yes --> F[Enable pubkyauth activity alias]
F --> G[Android can route pubkyauth links to MainActivity]
Loading

Reviews (1): Last reviewed commit: "chore: name changelog for pr" | Re-trigger Greptile

@ovitrif
ovitrif self-requested a review August 17, 2026 14:53

@ovitrifovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. This change prevents Bitkit from advertising the pubkyauth handler unless Paykit UI is enabled and the current identity has a matching local secret.

@ovitrif
ovitrif merged commit 395d19a into masterAug 17, 2026
27 checks passed
@ovitrif
ovitrif deleted the fix/pubkyauth-handler-eligibility branch August 17, 2026 15:41
@ovitrifovitrif added this to the 2.5.0 milestone Aug 17, 2026
@piotr-iohkpiotr-iohk mentioned this pull request Aug 21, 2026
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

@ben-kaufman@ovitrif
, '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: gate pubky auth handler - #1162

Merged
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility
Aug 17, 2026
Merged

fix: gate pubky auth handler#1162
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility

Conversation

@ben-kaufman

Copy link
Copy Markdown
Contributor

Description

This PR prevents Bitkit from advertising itself as a pubkyauth handler unless the Paykit UI is enabled and the current Pubky identity has a matching local secret key.

Previously, the main activity registered the scheme unconditionally, so Android could route Pubky App authorization links to Bitkit even when the production UI was unavailable or the identity was managed by Pubky Ring. The handler now lives on a disabled-by-default activity alias. Bitkit enables it only while local authorization is possible and disables it again when the feature or identity state changes.

Preview

N/A — no UI changes.

QA Notes

Manual Tests

  • 1. With Paykit UI disabled, request Pubky authorization: Bitkit is not offered or selected.
  • 2. With Paykit UI enabled but no Pubky identity, request authorization: Bitkit is not offered or selected.
  • 3. With a Ring-managed identity, request authorization: Bitkit is not offered or selected.
  • 4. With a Bitkit-managed identity, request authorization: Bitkit opens the authorization screen.
  • 5. Remove the local identity or disable Paykit UI, then retry: Bitkit no longer handles the link.

Automated Checks

  • PubkyAuthHandlerRegistrarTest.kt: covers eligibility, state transitions, idempotent startup, and PackageManager failure recovery.
  • PubkyAuthManifestTest.kt: ensures the main activity no longer claims pubkyauth and the alias is disabled by default.
  • Local compile, complete dev unit suite, and detekt passed.

@ben-kaufman
ben-kaufman marked this pull request as ready for review August 17, 2026 14:00
@greptile-apps

Copy link
Copy Markdown

Greptile Summary

The PR conditionally advertises Bitkit as a pubkyauth handler only when Paykit UI is enabled and the current Pubky identity has a matching local secret key.

  • Moves the pubkyauth intent filter from MainActivity to a disabled-by-default activity alias.
  • Adds an application-scoped registrar that observes feature and identity state and toggles the alias.
  • Adds unit and manifest tests covering eligibility, transitions, idempotent startup, and package-manager failures.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking issues identified.

The manifest alias, runtime eligibility reconciliation, and deep-link handling remain consistent, and the investigated state-transition and lifecycle paths did not establish an observable changed-code failure.

Important Files Changed

FilenameOverview
app/src/main/AndroidManifest.xmlMoves pubkyauth routing to an exported activity alias that is disabled until runtime eligibility is established.
app/src/main/java/to/bitkit/App.ktInjects and starts the handler registrar during application initialization.
app/src/main/java/to/bitkit/services/PubkyAuthHandlerRegistrar.ktObserves feature and identity state and safely reconciles the activity-alias enabled state.
app/src/test/java/to/bitkit/build/PubkyAuthManifestTest.ktVerifies that only the disabled alias declares the pubkyauth scheme.
app/src/test/java/to/bitkit/services/PubkyAuthHandlerRegistrarTest.ktCovers eligibility decisions, state transitions, idempotent startup, and recovery after package-manager failures.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[App starts] --> B[Observe Paykit setting and Pubky public key]
B --> C{Paykit UI enabled?}
C -- No --> D[Disable pubkyauth activity alias]
C -- Yes --> E{Identity exists and local secret matches?}
E -- No --> D
E -- Yes --> F[Enable pubkyauth activity alias]
F --> G[Android can route pubkyauth links to MainActivity]
Loading

Reviews (1): Last reviewed commit: "chore: name changelog for pr" | Re-trigger Greptile

@ovitrif
ovitrif self-requested a review August 17, 2026 14:53

@ovitrifovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. This change prevents Bitkit from advertising the pubkyauth handler unless Paykit UI is enabled and the current identity has a matching local secret.

@ovitrif
ovitrif merged commit 395d19a into masterAug 17, 2026
27 checks passed
@ovitrif
ovitrif deleted the fix/pubkyauth-handler-eligibility branch August 17, 2026 15:41
@ovitrifovitrif added this to the 2.5.0 milestone Aug 17, 2026
@piotr-iohkpiotr-iohk mentioned this pull request Aug 21, 2026
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

@ben-kaufman@ovitrif
, '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: gate pubky auth handler - #1162

Merged
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility
Aug 17, 2026
Merged

fix: gate pubky auth handler#1162
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility

Conversation

@ben-kaufman

Copy link
Copy Markdown
Contributor

Description

This PR prevents Bitkit from advertising itself as a pubkyauth handler unless the Paykit UI is enabled and the current Pubky identity has a matching local secret key.

Previously, the main activity registered the scheme unconditionally, so Android could route Pubky App authorization links to Bitkit even when the production UI was unavailable or the identity was managed by Pubky Ring. The handler now lives on a disabled-by-default activity alias. Bitkit enables it only while local authorization is possible and disables it again when the feature or identity state changes.

Preview

N/A — no UI changes.

QA Notes

Manual Tests

  • 1. With Paykit UI disabled, request Pubky authorization: Bitkit is not offered or selected.
  • 2. With Paykit UI enabled but no Pubky identity, request authorization: Bitkit is not offered or selected.
  • 3. With a Ring-managed identity, request authorization: Bitkit is not offered or selected.
  • 4. With a Bitkit-managed identity, request authorization: Bitkit opens the authorization screen.
  • 5. Remove the local identity or disable Paykit UI, then retry: Bitkit no longer handles the link.

Automated Checks

  • PubkyAuthHandlerRegistrarTest.kt: covers eligibility, state transitions, idempotent startup, and PackageManager failure recovery.
  • PubkyAuthManifestTest.kt: ensures the main activity no longer claims pubkyauth and the alias is disabled by default.
  • Local compile, complete dev unit suite, and detekt passed.

@ben-kaufman
ben-kaufman marked this pull request as ready for review August 17, 2026 14:00
@greptile-apps

Copy link
Copy Markdown

Greptile Summary

The PR conditionally advertises Bitkit as a pubkyauth handler only when Paykit UI is enabled and the current Pubky identity has a matching local secret key.

  • Moves the pubkyauth intent filter from MainActivity to a disabled-by-default activity alias.
  • Adds an application-scoped registrar that observes feature and identity state and toggles the alias.
  • Adds unit and manifest tests covering eligibility, transitions, idempotent startup, and package-manager failures.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking issues identified.

The manifest alias, runtime eligibility reconciliation, and deep-link handling remain consistent, and the investigated state-transition and lifecycle paths did not establish an observable changed-code failure.

Important Files Changed

FilenameOverview
app/src/main/AndroidManifest.xmlMoves pubkyauth routing to an exported activity alias that is disabled until runtime eligibility is established.
app/src/main/java/to/bitkit/App.ktInjects and starts the handler registrar during application initialization.
app/src/main/java/to/bitkit/services/PubkyAuthHandlerRegistrar.ktObserves feature and identity state and safely reconciles the activity-alias enabled state.
app/src/test/java/to/bitkit/build/PubkyAuthManifestTest.ktVerifies that only the disabled alias declares the pubkyauth scheme.
app/src/test/java/to/bitkit/services/PubkyAuthHandlerRegistrarTest.ktCovers eligibility decisions, state transitions, idempotent startup, and recovery after package-manager failures.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[App starts] --> B[Observe Paykit setting and Pubky public key]
B --> C{Paykit UI enabled?}
C -- No --> D[Disable pubkyauth activity alias]
C -- Yes --> E{Identity exists and local secret matches?}
E -- No --> D
E -- Yes --> F[Enable pubkyauth activity alias]
F --> G[Android can route pubkyauth links to MainActivity]
Loading

Reviews (1): Last reviewed commit: "chore: name changelog for pr" | Re-trigger Greptile

@ovitrif
ovitrif self-requested a review August 17, 2026 14:53

@ovitrifovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. This change prevents Bitkit from advertising the pubkyauth handler unless Paykit UI is enabled and the current identity has a matching local secret.

@ovitrif
ovitrif merged commit 395d19a into masterAug 17, 2026
27 checks passed
@ovitrif
ovitrif deleted the fix/pubkyauth-handler-eligibility branch August 17, 2026 15:41
@ovitrifovitrif added this to the 2.5.0 milestone Aug 17, 2026
@piotr-iohkpiotr-iohk mentioned this pull request Aug 21, 2026
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

@ben-kaufman@ovitrif
, '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: gate pubky auth handler - #1162

Merged
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility
Aug 17, 2026
Merged

fix: gate pubky auth handler#1162
ovitrif merged 2 commits into
masterfrom
fix/pubkyauth-handler-eligibility

Conversation

@ben-kaufman

Copy link
Copy Markdown
Contributor

Description

This PR prevents Bitkit from advertising itself as a pubkyauth handler unless the Paykit UI is enabled and the current Pubky identity has a matching local secret key.

Previously, the main activity registered the scheme unconditionally, so Android could route Pubky App authorization links to Bitkit even when the production UI was unavailable or the identity was managed by Pubky Ring. The handler now lives on a disabled-by-default activity alias. Bitkit enables it only while local authorization is possible and disables it again when the feature or identity state changes.

Preview

N/A — no UI changes.

QA Notes

Manual Tests

  • 1. With Paykit UI disabled, request Pubky authorization: Bitkit is not offered or selected.
  • 2. With Paykit UI enabled but no Pubky identity, request authorization: Bitkit is not offered or selected.
  • 3. With a Ring-managed identity, request authorization: Bitkit is not offered or selected.
  • 4. With a Bitkit-managed identity, request authorization: Bitkit opens the authorization screen.
  • 5. Remove the local identity or disable Paykit UI, then retry: Bitkit no longer handles the link.

Automated Checks

  • PubkyAuthHandlerRegistrarTest.kt: covers eligibility, state transitions, idempotent startup, and PackageManager failure recovery.
  • PubkyAuthManifestTest.kt: ensures the main activity no longer claims pubkyauth and the alias is disabled by default.
  • Local compile, complete dev unit suite, and detekt passed.

@ben-kaufman
ben-kaufman marked this pull request as ready for review August 17, 2026 14:00
@greptile-apps

Copy link
Copy Markdown

Greptile Summary

The PR conditionally advertises Bitkit as a pubkyauth handler only when Paykit UI is enabled and the current Pubky identity has a matching local secret key.

  • Moves the pubkyauth intent filter from MainActivity to a disabled-by-default activity alias.
  • Adds an application-scoped registrar that observes feature and identity state and toggles the alias.
  • Adds unit and manifest tests covering eligibility, transitions, idempotent startup, and package-manager failures.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking issues identified.

The manifest alias, runtime eligibility reconciliation, and deep-link handling remain consistent, and the investigated state-transition and lifecycle paths did not establish an observable changed-code failure.

Important Files Changed

FilenameOverview
app/src/main/AndroidManifest.xmlMoves pubkyauth routing to an exported activity alias that is disabled until runtime eligibility is established.
app/src/main/java/to/bitkit/App.ktInjects and starts the handler registrar during application initialization.
app/src/main/java/to/bitkit/services/PubkyAuthHandlerRegistrar.ktObserves feature and identity state and safely reconciles the activity-alias enabled state.
app/src/test/java/to/bitkit/build/PubkyAuthManifestTest.ktVerifies that only the disabled alias declares the pubkyauth scheme.
app/src/test/java/to/bitkit/services/PubkyAuthHandlerRegistrarTest.ktCovers eligibility decisions, state transitions, idempotent startup, and recovery after package-manager failures.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[App starts] --> B[Observe Paykit setting and Pubky public key]
B --> C{Paykit UI enabled?}
C -- No --> D[Disable pubkyauth activity alias]
C -- Yes --> E{Identity exists and local secret matches?}
E -- No --> D
E -- Yes --> F[Enable pubkyauth activity alias]
F --> G[Android can route pubkyauth links to MainActivity]
Loading

Reviews (1): Last reviewed commit: "chore: name changelog for pr" | Re-trigger Greptile

@ovitrif
ovitrif self-requested a review August 17, 2026 14:53

@ovitrifovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. This change prevents Bitkit from advertising the pubkyauth handler unless Paykit UI is enabled and the current identity has a matching local secret.

@ovitrif
ovitrif merged commit 395d19a into masterAug 17, 2026
27 checks passed
@ovitrif
ovitrif deleted the fix/pubkyauth-handler-eligibility branch August 17, 2026 15:41
@ovitrifovitrif added this to the 2.5.0 milestone Aug 17, 2026
@piotr-iohkpiotr-iohk mentioned this pull request Aug 21, 2026
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

@ben-kaufman@ovitrif