test: prove marketplace wallet journey - #1220

Open
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey
Open

test: prove marketplace wallet journey#1220
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey

Conversation

@ovitrif

@ovitrifovitrif commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Closes#1212

This PR:

  1. Adds the Android wallet journey for a Pubky marketplace purchase, aligned with the iOS journey in test: add marketplace wallet-leg journey bitkit-ios#720.
  2. Adds stable identifiers for watch-only authorization, contact payments, incoming requests, and payment approval.
  3. Records the live 2026-09-02 exact-head acceptance baseline and the first-release provenance for the existing claim and incoming-request surfaces.

Acceptance evidence covers the full controlled journey: seller watch-only claim, reciprocal linked-contact setup, fresh buyer funding, canonical Paykit delivery, payment approval, zero-confirmation detection, broadcast, one-block confirmation, paid request history, and Locks completion. This branch is rebased onto Android master merge 9698dea4, where merged #1178 supplies the incoming-request swipe behavior previously tracked by #1218.

Description

  • Documents the controlled two-wallet integration fixture contract, emulator port mappings, evidence requirements, and exact cross-platform actions.
  • Aligns request-row identifiers to PaymentRequestRow-<id> and adds PaymentRequestPay-<id>.
  • Adds PubkyAuthAuthorize, PubkyAuthOK, and ContactPaymentsToggle identifiers.
  • Cites merged upstream Paykit Server POC wake2pay from notification #2 for canonical request behavior and merged Android feat: send paykit payment proofs #1178 for incoming-request swipe behavior.
  • Records successful live acceptance identifiers, both device identifiers, zero-confirmation and one-confirmation boundaries, and the intended first release milestone 2.6.0.

Preview

bitkit-android-1212-journey.mp4

QA Notes

Manual Tests

  • 1. Fresh funded Android buyer → receive request 5db852f6-d47a-43c4-8b17-fb7a654ac4dd → review the accepted fallback seller identity pubky…apfiy, 15,000 sats, and 141-sat fee → swipe once → verify transaction a3a427ca69a3f1d3f26fb47f38182c8543fdbd997227ddb8a2dec1ef0e927166 at zero confirmations → mine one regtest block → verify confirmed Android activity, paid request history without a Pay action, confirmed Paykit delivery, and completed Locks purchase.

Automated Checks

  • PaymentRequestsScreenTest.kt: all five focused Compose tests pass, including the incoming row and Pay identifiers.
  • just compile: passes.
  • just test: passes all 2,283 tests.
  • just lint: passes with existing baseline findings outside this change.
  • Post-undraft CI build and all E2E shards pass; lightning_security passed on its isolated rerun after the first attempt hit a runner Docker host-port collision before test execution.
  • Independent exact-head source audit and narrow re-certification: pass with no findings.
  • Exact head 0a0f7c8b4b7153fb9f0d39d7016ec1c0b73bf96a includes master merge 9698dea447592f0380ef4a7f8231c88beae46a18.
  • Fresh arm64 E2E APK SHA-256: cf96c9a637fd5b037ee4e34b5ea5ea77dd6049c71497d3cb22b4d221159e721c.
  • Preview video SHA-256: e21ce4b0bea14e42c0bb437cd8d443deebe6e2ba40488c0b24dbaaad54ec05ec.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml: passes.
  • git diff --check: passes.

@greptile-apps

greptile-appsBot commented Sep 2, 2026

Copy link
Copy Markdown

Greptile Summary

Adds stable Compose identifiers and documentation for the controlled Pubky marketplace wallet journey.

  • Standardizes payment-request row identifiers and adds identifiers for payment approval, Pubky authorization, and contact-payment controls.
  • Adds instrumented-test coverage for the payment-request identifiers.
  • Documents the two-wallet regtest fixture, acceptance evidence, and end-to-end journey steps.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

FilenameOverview
app/src/main/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreen.ktStandardizes request-row tags and adds a request-specific Pay-button identifier without changing payment behavior.
app/src/androidTest/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreenTest.ktUpdates identifier assertions and verifies that the incoming request exposes its Pay action.
app/src/main/java/to/bitkit/ui/screens/profile/PubkyAuthApprovalSheet.ktAdds stable identifiers to the authorization and success actions.
app/src/main/java/to/bitkit/ui/settings/SettingsScreen.ktRenames the contact-payments switch identifier to align with the documented journey.
journeys/pubky-marketplace/README.mdDefines the integration fixture, evidence contract, release provenance, and recorded acceptance runs.
journeys/pubky-marketplace/wallet-leg.xmlEncodes the seller-authorization, buyer-payment, broadcast, and confirmation journey.

Sequence Diagram

sequenceDiagram
participant S as Seller Wallet
participant F as Marketplace Fixture
participant B as Buyer Wallet
participant C as Regtest Chain
S->>F: Authorize watch-only account claim
S->>B: Establish reciprocal linked contacts
F->>B: Deliver marketplace payment request
B->>B: Review and approve payment
B->>C: Broadcast transaction
F->>C: Detect zero-confirmation payment
F->>C: Mine one block
C-->>B: Confirm transaction
C-->>F: Confirm payment
F->>F: Complete marketplace purchase
Loading

Reviews (2): Last reviewed commit: "docs: record selector replay" | Re-trigger Greptile

@ovitrif
ovitrif marked this pull request as draft September 2, 2026 10:05
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from b296556 to 496b457CompareSeptember 2, 2026 10:37
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from 496b457 to 0a0f7c8CompareSeptember 2, 2026 10:52
@ovitrif
ovitrif marked this pull request as ready for review September 2, 2026 11:42

@piotr-iohkpiotr-iohk 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.

QA LGTM on the identifiers + journey contract. Did not re-run the isolated marketplace fixture.

Checked latest (0a0f7c8b):

  • Cited IDs exist on this branch: PubkyAuthWatchOnlyConsent / Approve / Authorize / OK, ContactPaymentsToggle, PaymentRequestsSheet, PaymentRequestRow-<id>, PaymentRequestPay-<id>, ReviewAmount, ReviewContactRecipient, GRAB, SendSuccess, ActivityAmount, ActivityTxDetails.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml passes.
  • Compose identifier tests in PaymentRequestsScreenTest match the hyphenated tags.
  • CI green, including e2e-tests-staging - pubky_paykit.

Notes, not blockers:

  • Merge #1217 first. This PR’s PaymentRequestRow- / PaymentRequestPay- tags are a subset of #1217 (that one also adds PaymentRequestDismiss-<id>).
  • PR body QA notes cite request 5db852f6-… / tx a3a427ca…. README records different accepted runs (ad1a8463-…, then selector replay b7f67854-…). Fine if those are separate replays — worth one line so we do not treat it as a mismatch later.
  • README says #1209 “preserves rejected incoming requests as visible history.” On #1217, parse rejects stay log-only; the visible-history / retry path is the explicit Pay terminal toast. Wording is slightly off.

I am not blocking on not replaying the Locks/Paykit Server fixture here. The journey is documentation of an accepted 2026-09-02 run, and the app-side selectors it needs are present.

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.

test: prove the Android Pubky marketplace wallet leg

2 participants

@ovitrif@piotr-iohk
, '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

test: prove marketplace wallet journey - #1220

Open
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey
Open

test: prove marketplace wallet journey#1220
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey

Conversation

@ovitrif

@ovitrifovitrif commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Closes#1212

This PR:

  1. Adds the Android wallet journey for a Pubky marketplace purchase, aligned with the iOS journey in test: add marketplace wallet-leg journey bitkit-ios#720.
  2. Adds stable identifiers for watch-only authorization, contact payments, incoming requests, and payment approval.
  3. Records the live 2026-09-02 exact-head acceptance baseline and the first-release provenance for the existing claim and incoming-request surfaces.

Acceptance evidence covers the full controlled journey: seller watch-only claim, reciprocal linked-contact setup, fresh buyer funding, canonical Paykit delivery, payment approval, zero-confirmation detection, broadcast, one-block confirmation, paid request history, and Locks completion. This branch is rebased onto Android master merge 9698dea4, where merged #1178 supplies the incoming-request swipe behavior previously tracked by #1218.

Description

  • Documents the controlled two-wallet integration fixture contract, emulator port mappings, evidence requirements, and exact cross-platform actions.
  • Aligns request-row identifiers to PaymentRequestRow-<id> and adds PaymentRequestPay-<id>.
  • Adds PubkyAuthAuthorize, PubkyAuthOK, and ContactPaymentsToggle identifiers.
  • Cites merged upstream Paykit Server POC wake2pay from notification #2 for canonical request behavior and merged Android feat: send paykit payment proofs #1178 for incoming-request swipe behavior.
  • Records successful live acceptance identifiers, both device identifiers, zero-confirmation and one-confirmation boundaries, and the intended first release milestone 2.6.0.

Preview

bitkit-android-1212-journey.mp4

QA Notes

Manual Tests

  • 1. Fresh funded Android buyer → receive request 5db852f6-d47a-43c4-8b17-fb7a654ac4dd → review the accepted fallback seller identity pubky…apfiy, 15,000 sats, and 141-sat fee → swipe once → verify transaction a3a427ca69a3f1d3f26fb47f38182c8543fdbd997227ddb8a2dec1ef0e927166 at zero confirmations → mine one regtest block → verify confirmed Android activity, paid request history without a Pay action, confirmed Paykit delivery, and completed Locks purchase.

Automated Checks

  • PaymentRequestsScreenTest.kt: all five focused Compose tests pass, including the incoming row and Pay identifiers.
  • just compile: passes.
  • just test: passes all 2,283 tests.
  • just lint: passes with existing baseline findings outside this change.
  • Post-undraft CI build and all E2E shards pass; lightning_security passed on its isolated rerun after the first attempt hit a runner Docker host-port collision before test execution.
  • Independent exact-head source audit and narrow re-certification: pass with no findings.
  • Exact head 0a0f7c8b4b7153fb9f0d39d7016ec1c0b73bf96a includes master merge 9698dea447592f0380ef4a7f8231c88beae46a18.
  • Fresh arm64 E2E APK SHA-256: cf96c9a637fd5b037ee4e34b5ea5ea77dd6049c71497d3cb22b4d221159e721c.
  • Preview video SHA-256: e21ce4b0bea14e42c0bb437cd8d443deebe6e2ba40488c0b24dbaaad54ec05ec.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml: passes.
  • git diff --check: passes.

@greptile-apps

greptile-appsBot commented Sep 2, 2026

Copy link
Copy Markdown

Greptile Summary

Adds stable Compose identifiers and documentation for the controlled Pubky marketplace wallet journey.

  • Standardizes payment-request row identifiers and adds identifiers for payment approval, Pubky authorization, and contact-payment controls.
  • Adds instrumented-test coverage for the payment-request identifiers.
  • Documents the two-wallet regtest fixture, acceptance evidence, and end-to-end journey steps.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

FilenameOverview
app/src/main/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreen.ktStandardizes request-row tags and adds a request-specific Pay-button identifier without changing payment behavior.
app/src/androidTest/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreenTest.ktUpdates identifier assertions and verifies that the incoming request exposes its Pay action.
app/src/main/java/to/bitkit/ui/screens/profile/PubkyAuthApprovalSheet.ktAdds stable identifiers to the authorization and success actions.
app/src/main/java/to/bitkit/ui/settings/SettingsScreen.ktRenames the contact-payments switch identifier to align with the documented journey.
journeys/pubky-marketplace/README.mdDefines the integration fixture, evidence contract, release provenance, and recorded acceptance runs.
journeys/pubky-marketplace/wallet-leg.xmlEncodes the seller-authorization, buyer-payment, broadcast, and confirmation journey.

Sequence Diagram

sequenceDiagram
participant S as Seller Wallet
participant F as Marketplace Fixture
participant B as Buyer Wallet
participant C as Regtest Chain
S->>F: Authorize watch-only account claim
S->>B: Establish reciprocal linked contacts
F->>B: Deliver marketplace payment request
B->>B: Review and approve payment
B->>C: Broadcast transaction
F->>C: Detect zero-confirmation payment
F->>C: Mine one block
C-->>B: Confirm transaction
C-->>F: Confirm payment
F->>F: Complete marketplace purchase
Loading

Reviews (2): Last reviewed commit: "docs: record selector replay" | Re-trigger Greptile

@ovitrif
ovitrif marked this pull request as draft September 2, 2026 10:05
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from b296556 to 496b457CompareSeptember 2, 2026 10:37
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from 496b457 to 0a0f7c8CompareSeptember 2, 2026 10:52
@ovitrif
ovitrif marked this pull request as ready for review September 2, 2026 11:42

@piotr-iohkpiotr-iohk 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.

QA LGTM on the identifiers + journey contract. Did not re-run the isolated marketplace fixture.

Checked latest (0a0f7c8b):

  • Cited IDs exist on this branch: PubkyAuthWatchOnlyConsent / Approve / Authorize / OK, ContactPaymentsToggle, PaymentRequestsSheet, PaymentRequestRow-<id>, PaymentRequestPay-<id>, ReviewAmount, ReviewContactRecipient, GRAB, SendSuccess, ActivityAmount, ActivityTxDetails.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml passes.
  • Compose identifier tests in PaymentRequestsScreenTest match the hyphenated tags.
  • CI green, including e2e-tests-staging - pubky_paykit.

Notes, not blockers:

  • Merge #1217 first. This PR’s PaymentRequestRow- / PaymentRequestPay- tags are a subset of #1217 (that one also adds PaymentRequestDismiss-<id>).
  • PR body QA notes cite request 5db852f6-… / tx a3a427ca…. README records different accepted runs (ad1a8463-…, then selector replay b7f67854-…). Fine if those are separate replays — worth one line so we do not treat it as a mismatch later.
  • README says #1209 “preserves rejected incoming requests as visible history.” On #1217, parse rejects stay log-only; the visible-history / retry path is the explicit Pay terminal toast. Wording is slightly off.

I am not blocking on not replaying the Locks/Paykit Server fixture here. The journey is documentation of an accepted 2026-09-02 run, and the app-side selectors it needs are present.

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.

test: prove the Android Pubky marketplace wallet leg

2 participants

@ovitrif@piotr-iohk
, '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

test: prove marketplace wallet journey - #1220

Open
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey
Open

test: prove marketplace wallet journey#1220
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey

Conversation

@ovitrif

@ovitrifovitrif commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Closes#1212

This PR:

  1. Adds the Android wallet journey for a Pubky marketplace purchase, aligned with the iOS journey in test: add marketplace wallet-leg journey bitkit-ios#720.
  2. Adds stable identifiers for watch-only authorization, contact payments, incoming requests, and payment approval.
  3. Records the live 2026-09-02 exact-head acceptance baseline and the first-release provenance for the existing claim and incoming-request surfaces.

Acceptance evidence covers the full controlled journey: seller watch-only claim, reciprocal linked-contact setup, fresh buyer funding, canonical Paykit delivery, payment approval, zero-confirmation detection, broadcast, one-block confirmation, paid request history, and Locks completion. This branch is rebased onto Android master merge 9698dea4, where merged #1178 supplies the incoming-request swipe behavior previously tracked by #1218.

Description

  • Documents the controlled two-wallet integration fixture contract, emulator port mappings, evidence requirements, and exact cross-platform actions.
  • Aligns request-row identifiers to PaymentRequestRow-<id> and adds PaymentRequestPay-<id>.
  • Adds PubkyAuthAuthorize, PubkyAuthOK, and ContactPaymentsToggle identifiers.
  • Cites merged upstream Paykit Server POC wake2pay from notification #2 for canonical request behavior and merged Android feat: send paykit payment proofs #1178 for incoming-request swipe behavior.
  • Records successful live acceptance identifiers, both device identifiers, zero-confirmation and one-confirmation boundaries, and the intended first release milestone 2.6.0.

Preview

bitkit-android-1212-journey.mp4

QA Notes

Manual Tests

  • 1. Fresh funded Android buyer → receive request 5db852f6-d47a-43c4-8b17-fb7a654ac4dd → review the accepted fallback seller identity pubky…apfiy, 15,000 sats, and 141-sat fee → swipe once → verify transaction a3a427ca69a3f1d3f26fb47f38182c8543fdbd997227ddb8a2dec1ef0e927166 at zero confirmations → mine one regtest block → verify confirmed Android activity, paid request history without a Pay action, confirmed Paykit delivery, and completed Locks purchase.

Automated Checks

  • PaymentRequestsScreenTest.kt: all five focused Compose tests pass, including the incoming row and Pay identifiers.
  • just compile: passes.
  • just test: passes all 2,283 tests.
  • just lint: passes with existing baseline findings outside this change.
  • Post-undraft CI build and all E2E shards pass; lightning_security passed on its isolated rerun after the first attempt hit a runner Docker host-port collision before test execution.
  • Independent exact-head source audit and narrow re-certification: pass with no findings.
  • Exact head 0a0f7c8b4b7153fb9f0d39d7016ec1c0b73bf96a includes master merge 9698dea447592f0380ef4a7f8231c88beae46a18.
  • Fresh arm64 E2E APK SHA-256: cf96c9a637fd5b037ee4e34b5ea5ea77dd6049c71497d3cb22b4d221159e721c.
  • Preview video SHA-256: e21ce4b0bea14e42c0bb437cd8d443deebe6e2ba40488c0b24dbaaad54ec05ec.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml: passes.
  • git diff --check: passes.

@greptile-apps

greptile-appsBot commented Sep 2, 2026

Copy link
Copy Markdown

Greptile Summary

Adds stable Compose identifiers and documentation for the controlled Pubky marketplace wallet journey.

  • Standardizes payment-request row identifiers and adds identifiers for payment approval, Pubky authorization, and contact-payment controls.
  • Adds instrumented-test coverage for the payment-request identifiers.
  • Documents the two-wallet regtest fixture, acceptance evidence, and end-to-end journey steps.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

FilenameOverview
app/src/main/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreen.ktStandardizes request-row tags and adds a request-specific Pay-button identifier without changing payment behavior.
app/src/androidTest/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreenTest.ktUpdates identifier assertions and verifies that the incoming request exposes its Pay action.
app/src/main/java/to/bitkit/ui/screens/profile/PubkyAuthApprovalSheet.ktAdds stable identifiers to the authorization and success actions.
app/src/main/java/to/bitkit/ui/settings/SettingsScreen.ktRenames the contact-payments switch identifier to align with the documented journey.
journeys/pubky-marketplace/README.mdDefines the integration fixture, evidence contract, release provenance, and recorded acceptance runs.
journeys/pubky-marketplace/wallet-leg.xmlEncodes the seller-authorization, buyer-payment, broadcast, and confirmation journey.

Sequence Diagram

sequenceDiagram
participant S as Seller Wallet
participant F as Marketplace Fixture
participant B as Buyer Wallet
participant C as Regtest Chain
S->>F: Authorize watch-only account claim
S->>B: Establish reciprocal linked contacts
F->>B: Deliver marketplace payment request
B->>B: Review and approve payment
B->>C: Broadcast transaction
F->>C: Detect zero-confirmation payment
F->>C: Mine one block
C-->>B: Confirm transaction
C-->>F: Confirm payment
F->>F: Complete marketplace purchase
Loading

Reviews (2): Last reviewed commit: "docs: record selector replay" | Re-trigger Greptile

@ovitrif
ovitrif marked this pull request as draft September 2, 2026 10:05
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from b296556 to 496b457CompareSeptember 2, 2026 10:37
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from 496b457 to 0a0f7c8CompareSeptember 2, 2026 10:52
@ovitrif
ovitrif marked this pull request as ready for review September 2, 2026 11:42

@piotr-iohkpiotr-iohk 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.

QA LGTM on the identifiers + journey contract. Did not re-run the isolated marketplace fixture.

Checked latest (0a0f7c8b):

  • Cited IDs exist on this branch: PubkyAuthWatchOnlyConsent / Approve / Authorize / OK, ContactPaymentsToggle, PaymentRequestsSheet, PaymentRequestRow-<id>, PaymentRequestPay-<id>, ReviewAmount, ReviewContactRecipient, GRAB, SendSuccess, ActivityAmount, ActivityTxDetails.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml passes.
  • Compose identifier tests in PaymentRequestsScreenTest match the hyphenated tags.
  • CI green, including e2e-tests-staging - pubky_paykit.

Notes, not blockers:

  • Merge #1217 first. This PR’s PaymentRequestRow- / PaymentRequestPay- tags are a subset of #1217 (that one also adds PaymentRequestDismiss-<id>).
  • PR body QA notes cite request 5db852f6-… / tx a3a427ca…. README records different accepted runs (ad1a8463-…, then selector replay b7f67854-…). Fine if those are separate replays — worth one line so we do not treat it as a mismatch later.
  • README says #1209 “preserves rejected incoming requests as visible history.” On #1217, parse rejects stay log-only; the visible-history / retry path is the explicit Pay terminal toast. Wording is slightly off.

I am not blocking on not replaying the Locks/Paykit Server fixture here. The journey is documentation of an accepted 2026-09-02 run, and the app-side selectors it needs are present.

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.

test: prove the Android Pubky marketplace wallet leg

2 participants

@ovitrif@piotr-iohk
, '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

test: prove marketplace wallet journey - #1220

Open
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey
Open

test: prove marketplace wallet journey#1220
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey

Conversation

@ovitrif

@ovitrifovitrif commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Closes#1212

This PR:

  1. Adds the Android wallet journey for a Pubky marketplace purchase, aligned with the iOS journey in test: add marketplace wallet-leg journey bitkit-ios#720.
  2. Adds stable identifiers for watch-only authorization, contact payments, incoming requests, and payment approval.
  3. Records the live 2026-09-02 exact-head acceptance baseline and the first-release provenance for the existing claim and incoming-request surfaces.

Acceptance evidence covers the full controlled journey: seller watch-only claim, reciprocal linked-contact setup, fresh buyer funding, canonical Paykit delivery, payment approval, zero-confirmation detection, broadcast, one-block confirmation, paid request history, and Locks completion. This branch is rebased onto Android master merge 9698dea4, where merged #1178 supplies the incoming-request swipe behavior previously tracked by #1218.

Description

  • Documents the controlled two-wallet integration fixture contract, emulator port mappings, evidence requirements, and exact cross-platform actions.
  • Aligns request-row identifiers to PaymentRequestRow-<id> and adds PaymentRequestPay-<id>.
  • Adds PubkyAuthAuthorize, PubkyAuthOK, and ContactPaymentsToggle identifiers.
  • Cites merged upstream Paykit Server POC wake2pay from notification #2 for canonical request behavior and merged Android feat: send paykit payment proofs #1178 for incoming-request swipe behavior.
  • Records successful live acceptance identifiers, both device identifiers, zero-confirmation and one-confirmation boundaries, and the intended first release milestone 2.6.0.

Preview

bitkit-android-1212-journey.mp4

QA Notes

Manual Tests

  • 1. Fresh funded Android buyer → receive request 5db852f6-d47a-43c4-8b17-fb7a654ac4dd → review the accepted fallback seller identity pubky…apfiy, 15,000 sats, and 141-sat fee → swipe once → verify transaction a3a427ca69a3f1d3f26fb47f38182c8543fdbd997227ddb8a2dec1ef0e927166 at zero confirmations → mine one regtest block → verify confirmed Android activity, paid request history without a Pay action, confirmed Paykit delivery, and completed Locks purchase.

Automated Checks

  • PaymentRequestsScreenTest.kt: all five focused Compose tests pass, including the incoming row and Pay identifiers.
  • just compile: passes.
  • just test: passes all 2,283 tests.
  • just lint: passes with existing baseline findings outside this change.
  • Post-undraft CI build and all E2E shards pass; lightning_security passed on its isolated rerun after the first attempt hit a runner Docker host-port collision before test execution.
  • Independent exact-head source audit and narrow re-certification: pass with no findings.
  • Exact head 0a0f7c8b4b7153fb9f0d39d7016ec1c0b73bf96a includes master merge 9698dea447592f0380ef4a7f8231c88beae46a18.
  • Fresh arm64 E2E APK SHA-256: cf96c9a637fd5b037ee4e34b5ea5ea77dd6049c71497d3cb22b4d221159e721c.
  • Preview video SHA-256: e21ce4b0bea14e42c0bb437cd8d443deebe6e2ba40488c0b24dbaaad54ec05ec.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml: passes.
  • git diff --check: passes.

@greptile-apps

greptile-appsBot commented Sep 2, 2026

Copy link
Copy Markdown

Greptile Summary

Adds stable Compose identifiers and documentation for the controlled Pubky marketplace wallet journey.

  • Standardizes payment-request row identifiers and adds identifiers for payment approval, Pubky authorization, and contact-payment controls.
  • Adds instrumented-test coverage for the payment-request identifiers.
  • Documents the two-wallet regtest fixture, acceptance evidence, and end-to-end journey steps.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

FilenameOverview
app/src/main/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreen.ktStandardizes request-row tags and adds a request-specific Pay-button identifier without changing payment behavior.
app/src/androidTest/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreenTest.ktUpdates identifier assertions and verifies that the incoming request exposes its Pay action.
app/src/main/java/to/bitkit/ui/screens/profile/PubkyAuthApprovalSheet.ktAdds stable identifiers to the authorization and success actions.
app/src/main/java/to/bitkit/ui/settings/SettingsScreen.ktRenames the contact-payments switch identifier to align with the documented journey.
journeys/pubky-marketplace/README.mdDefines the integration fixture, evidence contract, release provenance, and recorded acceptance runs.
journeys/pubky-marketplace/wallet-leg.xmlEncodes the seller-authorization, buyer-payment, broadcast, and confirmation journey.

Sequence Diagram

sequenceDiagram
participant S as Seller Wallet
participant F as Marketplace Fixture
participant B as Buyer Wallet
participant C as Regtest Chain
S->>F: Authorize watch-only account claim
S->>B: Establish reciprocal linked contacts
F->>B: Deliver marketplace payment request
B->>B: Review and approve payment
B->>C: Broadcast transaction
F->>C: Detect zero-confirmation payment
F->>C: Mine one block
C-->>B: Confirm transaction
C-->>F: Confirm payment
F->>F: Complete marketplace purchase
Loading

Reviews (2): Last reviewed commit: "docs: record selector replay" | Re-trigger Greptile

@ovitrif
ovitrif marked this pull request as draft September 2, 2026 10:05
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from b296556 to 496b457CompareSeptember 2, 2026 10:37
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from 496b457 to 0a0f7c8CompareSeptember 2, 2026 10:52
@ovitrif
ovitrif marked this pull request as ready for review September 2, 2026 11:42

@piotr-iohkpiotr-iohk 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.

QA LGTM on the identifiers + journey contract. Did not re-run the isolated marketplace fixture.

Checked latest (0a0f7c8b):

  • Cited IDs exist on this branch: PubkyAuthWatchOnlyConsent / Approve / Authorize / OK, ContactPaymentsToggle, PaymentRequestsSheet, PaymentRequestRow-<id>, PaymentRequestPay-<id>, ReviewAmount, ReviewContactRecipient, GRAB, SendSuccess, ActivityAmount, ActivityTxDetails.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml passes.
  • Compose identifier tests in PaymentRequestsScreenTest match the hyphenated tags.
  • CI green, including e2e-tests-staging - pubky_paykit.

Notes, not blockers:

  • Merge #1217 first. This PR’s PaymentRequestRow- / PaymentRequestPay- tags are a subset of #1217 (that one also adds PaymentRequestDismiss-<id>).
  • PR body QA notes cite request 5db852f6-… / tx a3a427ca…. README records different accepted runs (ad1a8463-…, then selector replay b7f67854-…). Fine if those are separate replays — worth one line so we do not treat it as a mismatch later.
  • README says #1209 “preserves rejected incoming requests as visible history.” On #1217, parse rejects stay log-only; the visible-history / retry path is the explicit Pay terminal toast. Wording is slightly off.

I am not blocking on not replaying the Locks/Paykit Server fixture here. The journey is documentation of an accepted 2026-09-02 run, and the app-side selectors it needs are present.

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.

test: prove the Android Pubky marketplace wallet leg

2 participants

@ovitrif@piotr-iohk
, '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

test: prove marketplace wallet journey - #1220

Open
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey
Open

test: prove marketplace wallet journey#1220
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey

Conversation

@ovitrif

@ovitrifovitrif commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Closes#1212

This PR:

  1. Adds the Android wallet journey for a Pubky marketplace purchase, aligned with the iOS journey in test: add marketplace wallet-leg journey bitkit-ios#720.
  2. Adds stable identifiers for watch-only authorization, contact payments, incoming requests, and payment approval.
  3. Records the live 2026-09-02 exact-head acceptance baseline and the first-release provenance for the existing claim and incoming-request surfaces.

Acceptance evidence covers the full controlled journey: seller watch-only claim, reciprocal linked-contact setup, fresh buyer funding, canonical Paykit delivery, payment approval, zero-confirmation detection, broadcast, one-block confirmation, paid request history, and Locks completion. This branch is rebased onto Android master merge 9698dea4, where merged #1178 supplies the incoming-request swipe behavior previously tracked by #1218.

Description

  • Documents the controlled two-wallet integration fixture contract, emulator port mappings, evidence requirements, and exact cross-platform actions.
  • Aligns request-row identifiers to PaymentRequestRow-<id> and adds PaymentRequestPay-<id>.
  • Adds PubkyAuthAuthorize, PubkyAuthOK, and ContactPaymentsToggle identifiers.
  • Cites merged upstream Paykit Server POC wake2pay from notification #2 for canonical request behavior and merged Android feat: send paykit payment proofs #1178 for incoming-request swipe behavior.
  • Records successful live acceptance identifiers, both device identifiers, zero-confirmation and one-confirmation boundaries, and the intended first release milestone 2.6.0.

Preview

bitkit-android-1212-journey.mp4

QA Notes

Manual Tests

  • 1. Fresh funded Android buyer → receive request 5db852f6-d47a-43c4-8b17-fb7a654ac4dd → review the accepted fallback seller identity pubky…apfiy, 15,000 sats, and 141-sat fee → swipe once → verify transaction a3a427ca69a3f1d3f26fb47f38182c8543fdbd997227ddb8a2dec1ef0e927166 at zero confirmations → mine one regtest block → verify confirmed Android activity, paid request history without a Pay action, confirmed Paykit delivery, and completed Locks purchase.

Automated Checks

  • PaymentRequestsScreenTest.kt: all five focused Compose tests pass, including the incoming row and Pay identifiers.
  • just compile: passes.
  • just test: passes all 2,283 tests.
  • just lint: passes with existing baseline findings outside this change.
  • Post-undraft CI build and all E2E shards pass; lightning_security passed on its isolated rerun after the first attempt hit a runner Docker host-port collision before test execution.
  • Independent exact-head source audit and narrow re-certification: pass with no findings.
  • Exact head 0a0f7c8b4b7153fb9f0d39d7016ec1c0b73bf96a includes master merge 9698dea447592f0380ef4a7f8231c88beae46a18.
  • Fresh arm64 E2E APK SHA-256: cf96c9a637fd5b037ee4e34b5ea5ea77dd6049c71497d3cb22b4d221159e721c.
  • Preview video SHA-256: e21ce4b0bea14e42c0bb437cd8d443deebe6e2ba40488c0b24dbaaad54ec05ec.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml: passes.
  • git diff --check: passes.

@greptile-apps

greptile-appsBot commented Sep 2, 2026

Copy link
Copy Markdown

Greptile Summary

Adds stable Compose identifiers and documentation for the controlled Pubky marketplace wallet journey.

  • Standardizes payment-request row identifiers and adds identifiers for payment approval, Pubky authorization, and contact-payment controls.
  • Adds instrumented-test coverage for the payment-request identifiers.
  • Documents the two-wallet regtest fixture, acceptance evidence, and end-to-end journey steps.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

FilenameOverview
app/src/main/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreen.ktStandardizes request-row tags and adds a request-specific Pay-button identifier without changing payment behavior.
app/src/androidTest/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreenTest.ktUpdates identifier assertions and verifies that the incoming request exposes its Pay action.
app/src/main/java/to/bitkit/ui/screens/profile/PubkyAuthApprovalSheet.ktAdds stable identifiers to the authorization and success actions.
app/src/main/java/to/bitkit/ui/settings/SettingsScreen.ktRenames the contact-payments switch identifier to align with the documented journey.
journeys/pubky-marketplace/README.mdDefines the integration fixture, evidence contract, release provenance, and recorded acceptance runs.
journeys/pubky-marketplace/wallet-leg.xmlEncodes the seller-authorization, buyer-payment, broadcast, and confirmation journey.

Sequence Diagram

sequenceDiagram
participant S as Seller Wallet
participant F as Marketplace Fixture
participant B as Buyer Wallet
participant C as Regtest Chain
S->>F: Authorize watch-only account claim
S->>B: Establish reciprocal linked contacts
F->>B: Deliver marketplace payment request
B->>B: Review and approve payment
B->>C: Broadcast transaction
F->>C: Detect zero-confirmation payment
F->>C: Mine one block
C-->>B: Confirm transaction
C-->>F: Confirm payment
F->>F: Complete marketplace purchase
Loading

Reviews (2): Last reviewed commit: "docs: record selector replay" | Re-trigger Greptile

@ovitrif
ovitrif marked this pull request as draft September 2, 2026 10:05
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from b296556 to 496b457CompareSeptember 2, 2026 10:37
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from 496b457 to 0a0f7c8CompareSeptember 2, 2026 10:52
@ovitrif
ovitrif marked this pull request as ready for review September 2, 2026 11:42

@piotr-iohkpiotr-iohk 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.

QA LGTM on the identifiers + journey contract. Did not re-run the isolated marketplace fixture.

Checked latest (0a0f7c8b):

  • Cited IDs exist on this branch: PubkyAuthWatchOnlyConsent / Approve / Authorize / OK, ContactPaymentsToggle, PaymentRequestsSheet, PaymentRequestRow-<id>, PaymentRequestPay-<id>, ReviewAmount, ReviewContactRecipient, GRAB, SendSuccess, ActivityAmount, ActivityTxDetails.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml passes.
  • Compose identifier tests in PaymentRequestsScreenTest match the hyphenated tags.
  • CI green, including e2e-tests-staging - pubky_paykit.

Notes, not blockers:

  • Merge #1217 first. This PR’s PaymentRequestRow- / PaymentRequestPay- tags are a subset of #1217 (that one also adds PaymentRequestDismiss-<id>).
  • PR body QA notes cite request 5db852f6-… / tx a3a427ca…. README records different accepted runs (ad1a8463-…, then selector replay b7f67854-…). Fine if those are separate replays — worth one line so we do not treat it as a mismatch later.
  • README says #1209 “preserves rejected incoming requests as visible history.” On #1217, parse rejects stay log-only; the visible-history / retry path is the explicit Pay terminal toast. Wording is slightly off.

I am not blocking on not replaying the Locks/Paykit Server fixture here. The journey is documentation of an accepted 2026-09-02 run, and the app-side selectors it needs are present.

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.

test: prove the Android Pubky marketplace wallet leg

2 participants

@ovitrif@piotr-iohk
, '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

test: prove marketplace wallet journey - #1220

Open
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey
Open

test: prove marketplace wallet journey#1220
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey

Conversation

@ovitrif

@ovitrifovitrif commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Closes#1212

This PR:

  1. Adds the Android wallet journey for a Pubky marketplace purchase, aligned with the iOS journey in test: add marketplace wallet-leg journey bitkit-ios#720.
  2. Adds stable identifiers for watch-only authorization, contact payments, incoming requests, and payment approval.
  3. Records the live 2026-09-02 exact-head acceptance baseline and the first-release provenance for the existing claim and incoming-request surfaces.

Acceptance evidence covers the full controlled journey: seller watch-only claim, reciprocal linked-contact setup, fresh buyer funding, canonical Paykit delivery, payment approval, zero-confirmation detection, broadcast, one-block confirmation, paid request history, and Locks completion. This branch is rebased onto Android master merge 9698dea4, where merged #1178 supplies the incoming-request swipe behavior previously tracked by #1218.

Description

  • Documents the controlled two-wallet integration fixture contract, emulator port mappings, evidence requirements, and exact cross-platform actions.
  • Aligns request-row identifiers to PaymentRequestRow-<id> and adds PaymentRequestPay-<id>.
  • Adds PubkyAuthAuthorize, PubkyAuthOK, and ContactPaymentsToggle identifiers.
  • Cites merged upstream Paykit Server POC wake2pay from notification #2 for canonical request behavior and merged Android feat: send paykit payment proofs #1178 for incoming-request swipe behavior.
  • Records successful live acceptance identifiers, both device identifiers, zero-confirmation and one-confirmation boundaries, and the intended first release milestone 2.6.0.

Preview

bitkit-android-1212-journey.mp4

QA Notes

Manual Tests

  • 1. Fresh funded Android buyer → receive request 5db852f6-d47a-43c4-8b17-fb7a654ac4dd → review the accepted fallback seller identity pubky…apfiy, 15,000 sats, and 141-sat fee → swipe once → verify transaction a3a427ca69a3f1d3f26fb47f38182c8543fdbd997227ddb8a2dec1ef0e927166 at zero confirmations → mine one regtest block → verify confirmed Android activity, paid request history without a Pay action, confirmed Paykit delivery, and completed Locks purchase.

Automated Checks

  • PaymentRequestsScreenTest.kt: all five focused Compose tests pass, including the incoming row and Pay identifiers.
  • just compile: passes.
  • just test: passes all 2,283 tests.
  • just lint: passes with existing baseline findings outside this change.
  • Post-undraft CI build and all E2E shards pass; lightning_security passed on its isolated rerun after the first attempt hit a runner Docker host-port collision before test execution.
  • Independent exact-head source audit and narrow re-certification: pass with no findings.
  • Exact head 0a0f7c8b4b7153fb9f0d39d7016ec1c0b73bf96a includes master merge 9698dea447592f0380ef4a7f8231c88beae46a18.
  • Fresh arm64 E2E APK SHA-256: cf96c9a637fd5b037ee4e34b5ea5ea77dd6049c71497d3cb22b4d221159e721c.
  • Preview video SHA-256: e21ce4b0bea14e42c0bb437cd8d443deebe6e2ba40488c0b24dbaaad54ec05ec.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml: passes.
  • git diff --check: passes.

@greptile-apps

greptile-appsBot commented Sep 2, 2026

Copy link
Copy Markdown

Greptile Summary

Adds stable Compose identifiers and documentation for the controlled Pubky marketplace wallet journey.

  • Standardizes payment-request row identifiers and adds identifiers for payment approval, Pubky authorization, and contact-payment controls.
  • Adds instrumented-test coverage for the payment-request identifiers.
  • Documents the two-wallet regtest fixture, acceptance evidence, and end-to-end journey steps.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

FilenameOverview
app/src/main/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreen.ktStandardizes request-row tags and adds a request-specific Pay-button identifier without changing payment behavior.
app/src/androidTest/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreenTest.ktUpdates identifier assertions and verifies that the incoming request exposes its Pay action.
app/src/main/java/to/bitkit/ui/screens/profile/PubkyAuthApprovalSheet.ktAdds stable identifiers to the authorization and success actions.
app/src/main/java/to/bitkit/ui/settings/SettingsScreen.ktRenames the contact-payments switch identifier to align with the documented journey.
journeys/pubky-marketplace/README.mdDefines the integration fixture, evidence contract, release provenance, and recorded acceptance runs.
journeys/pubky-marketplace/wallet-leg.xmlEncodes the seller-authorization, buyer-payment, broadcast, and confirmation journey.

Sequence Diagram

sequenceDiagram
participant S as Seller Wallet
participant F as Marketplace Fixture
participant B as Buyer Wallet
participant C as Regtest Chain
S->>F: Authorize watch-only account claim
S->>B: Establish reciprocal linked contacts
F->>B: Deliver marketplace payment request
B->>B: Review and approve payment
B->>C: Broadcast transaction
F->>C: Detect zero-confirmation payment
F->>C: Mine one block
C-->>B: Confirm transaction
C-->>F: Confirm payment
F->>F: Complete marketplace purchase
Loading

Reviews (2): Last reviewed commit: "docs: record selector replay" | Re-trigger Greptile

@ovitrif
ovitrif marked this pull request as draft September 2, 2026 10:05
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from b296556 to 496b457CompareSeptember 2, 2026 10:37
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from 496b457 to 0a0f7c8CompareSeptember 2, 2026 10:52
@ovitrif
ovitrif marked this pull request as ready for review September 2, 2026 11:42

@piotr-iohkpiotr-iohk 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.

QA LGTM on the identifiers + journey contract. Did not re-run the isolated marketplace fixture.

Checked latest (0a0f7c8b):

  • Cited IDs exist on this branch: PubkyAuthWatchOnlyConsent / Approve / Authorize / OK, ContactPaymentsToggle, PaymentRequestsSheet, PaymentRequestRow-<id>, PaymentRequestPay-<id>, ReviewAmount, ReviewContactRecipient, GRAB, SendSuccess, ActivityAmount, ActivityTxDetails.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml passes.
  • Compose identifier tests in PaymentRequestsScreenTest match the hyphenated tags.
  • CI green, including e2e-tests-staging - pubky_paykit.

Notes, not blockers:

  • Merge #1217 first. This PR’s PaymentRequestRow- / PaymentRequestPay- tags are a subset of #1217 (that one also adds PaymentRequestDismiss-<id>).
  • PR body QA notes cite request 5db852f6-… / tx a3a427ca…. README records different accepted runs (ad1a8463-…, then selector replay b7f67854-…). Fine if those are separate replays — worth one line so we do not treat it as a mismatch later.
  • README says #1209 “preserves rejected incoming requests as visible history.” On #1217, parse rejects stay log-only; the visible-history / retry path is the explicit Pay terminal toast. Wording is slightly off.

I am not blocking on not replaying the Locks/Paykit Server fixture here. The journey is documentation of an accepted 2026-09-02 run, and the app-side selectors it needs are present.

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.

test: prove the Android Pubky marketplace wallet leg

2 participants

@ovitrif@piotr-iohk
, '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

test: prove marketplace wallet journey - #1220

Open
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey
Open

test: prove marketplace wallet journey#1220
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey

Conversation

@ovitrif

@ovitrifovitrif commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Closes#1212

This PR:

  1. Adds the Android wallet journey for a Pubky marketplace purchase, aligned with the iOS journey in test: add marketplace wallet-leg journey bitkit-ios#720.
  2. Adds stable identifiers for watch-only authorization, contact payments, incoming requests, and payment approval.
  3. Records the live 2026-09-02 exact-head acceptance baseline and the first-release provenance for the existing claim and incoming-request surfaces.

Acceptance evidence covers the full controlled journey: seller watch-only claim, reciprocal linked-contact setup, fresh buyer funding, canonical Paykit delivery, payment approval, zero-confirmation detection, broadcast, one-block confirmation, paid request history, and Locks completion. This branch is rebased onto Android master merge 9698dea4, where merged #1178 supplies the incoming-request swipe behavior previously tracked by #1218.

Description

  • Documents the controlled two-wallet integration fixture contract, emulator port mappings, evidence requirements, and exact cross-platform actions.
  • Aligns request-row identifiers to PaymentRequestRow-<id> and adds PaymentRequestPay-<id>.
  • Adds PubkyAuthAuthorize, PubkyAuthOK, and ContactPaymentsToggle identifiers.
  • Cites merged upstream Paykit Server POC wake2pay from notification #2 for canonical request behavior and merged Android feat: send paykit payment proofs #1178 for incoming-request swipe behavior.
  • Records successful live acceptance identifiers, both device identifiers, zero-confirmation and one-confirmation boundaries, and the intended first release milestone 2.6.0.

Preview

bitkit-android-1212-journey.mp4

QA Notes

Manual Tests

  • 1. Fresh funded Android buyer → receive request 5db852f6-d47a-43c4-8b17-fb7a654ac4dd → review the accepted fallback seller identity pubky…apfiy, 15,000 sats, and 141-sat fee → swipe once → verify transaction a3a427ca69a3f1d3f26fb47f38182c8543fdbd997227ddb8a2dec1ef0e927166 at zero confirmations → mine one regtest block → verify confirmed Android activity, paid request history without a Pay action, confirmed Paykit delivery, and completed Locks purchase.

Automated Checks

  • PaymentRequestsScreenTest.kt: all five focused Compose tests pass, including the incoming row and Pay identifiers.
  • just compile: passes.
  • just test: passes all 2,283 tests.
  • just lint: passes with existing baseline findings outside this change.
  • Post-undraft CI build and all E2E shards pass; lightning_security passed on its isolated rerun after the first attempt hit a runner Docker host-port collision before test execution.
  • Independent exact-head source audit and narrow re-certification: pass with no findings.
  • Exact head 0a0f7c8b4b7153fb9f0d39d7016ec1c0b73bf96a includes master merge 9698dea447592f0380ef4a7f8231c88beae46a18.
  • Fresh arm64 E2E APK SHA-256: cf96c9a637fd5b037ee4e34b5ea5ea77dd6049c71497d3cb22b4d221159e721c.
  • Preview video SHA-256: e21ce4b0bea14e42c0bb437cd8d443deebe6e2ba40488c0b24dbaaad54ec05ec.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml: passes.
  • git diff --check: passes.

@greptile-apps

greptile-appsBot commented Sep 2, 2026

Copy link
Copy Markdown

Greptile Summary

Adds stable Compose identifiers and documentation for the controlled Pubky marketplace wallet journey.

  • Standardizes payment-request row identifiers and adds identifiers for payment approval, Pubky authorization, and contact-payment controls.
  • Adds instrumented-test coverage for the payment-request identifiers.
  • Documents the two-wallet regtest fixture, acceptance evidence, and end-to-end journey steps.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

FilenameOverview
app/src/main/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreen.ktStandardizes request-row tags and adds a request-specific Pay-button identifier without changing payment behavior.
app/src/androidTest/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreenTest.ktUpdates identifier assertions and verifies that the incoming request exposes its Pay action.
app/src/main/java/to/bitkit/ui/screens/profile/PubkyAuthApprovalSheet.ktAdds stable identifiers to the authorization and success actions.
app/src/main/java/to/bitkit/ui/settings/SettingsScreen.ktRenames the contact-payments switch identifier to align with the documented journey.
journeys/pubky-marketplace/README.mdDefines the integration fixture, evidence contract, release provenance, and recorded acceptance runs.
journeys/pubky-marketplace/wallet-leg.xmlEncodes the seller-authorization, buyer-payment, broadcast, and confirmation journey.

Sequence Diagram

sequenceDiagram
participant S as Seller Wallet
participant F as Marketplace Fixture
participant B as Buyer Wallet
participant C as Regtest Chain
S->>F: Authorize watch-only account claim
S->>B: Establish reciprocal linked contacts
F->>B: Deliver marketplace payment request
B->>B: Review and approve payment
B->>C: Broadcast transaction
F->>C: Detect zero-confirmation payment
F->>C: Mine one block
C-->>B: Confirm transaction
C-->>F: Confirm payment
F->>F: Complete marketplace purchase
Loading

Reviews (2): Last reviewed commit: "docs: record selector replay" | Re-trigger Greptile

@ovitrif
ovitrif marked this pull request as draft September 2, 2026 10:05
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from b296556 to 496b457CompareSeptember 2, 2026 10:37
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from 496b457 to 0a0f7c8CompareSeptember 2, 2026 10:52
@ovitrif
ovitrif marked this pull request as ready for review September 2, 2026 11:42

@piotr-iohkpiotr-iohk 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.

QA LGTM on the identifiers + journey contract. Did not re-run the isolated marketplace fixture.

Checked latest (0a0f7c8b):

  • Cited IDs exist on this branch: PubkyAuthWatchOnlyConsent / Approve / Authorize / OK, ContactPaymentsToggle, PaymentRequestsSheet, PaymentRequestRow-<id>, PaymentRequestPay-<id>, ReviewAmount, ReviewContactRecipient, GRAB, SendSuccess, ActivityAmount, ActivityTxDetails.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml passes.
  • Compose identifier tests in PaymentRequestsScreenTest match the hyphenated tags.
  • CI green, including e2e-tests-staging - pubky_paykit.

Notes, not blockers:

  • Merge #1217 first. This PR’s PaymentRequestRow- / PaymentRequestPay- tags are a subset of #1217 (that one also adds PaymentRequestDismiss-<id>).
  • PR body QA notes cite request 5db852f6-… / tx a3a427ca…. README records different accepted runs (ad1a8463-…, then selector replay b7f67854-…). Fine if those are separate replays — worth one line so we do not treat it as a mismatch later.
  • README says #1209 “preserves rejected incoming requests as visible history.” On #1217, parse rejects stay log-only; the visible-history / retry path is the explicit Pay terminal toast. Wording is slightly off.

I am not blocking on not replaying the Locks/Paykit Server fixture here. The journey is documentation of an accepted 2026-09-02 run, and the app-side selectors it needs are present.

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.

test: prove the Android Pubky marketplace wallet leg

2 participants

@ovitrif@piotr-iohk
, '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

test: prove marketplace wallet journey - #1220

Open
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey
Open

test: prove marketplace wallet journey#1220
ovitrif wants to merge 5 commits into
masterfrom
codex/1212-marketplace-journey

Conversation

@ovitrif

@ovitrifovitrif commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Closes#1212

This PR:

  1. Adds the Android wallet journey for a Pubky marketplace purchase, aligned with the iOS journey in test: add marketplace wallet-leg journey bitkit-ios#720.
  2. Adds stable identifiers for watch-only authorization, contact payments, incoming requests, and payment approval.
  3. Records the live 2026-09-02 exact-head acceptance baseline and the first-release provenance for the existing claim and incoming-request surfaces.

Acceptance evidence covers the full controlled journey: seller watch-only claim, reciprocal linked-contact setup, fresh buyer funding, canonical Paykit delivery, payment approval, zero-confirmation detection, broadcast, one-block confirmation, paid request history, and Locks completion. This branch is rebased onto Android master merge 9698dea4, where merged #1178 supplies the incoming-request swipe behavior previously tracked by #1218.

Description

  • Documents the controlled two-wallet integration fixture contract, emulator port mappings, evidence requirements, and exact cross-platform actions.
  • Aligns request-row identifiers to PaymentRequestRow-<id> and adds PaymentRequestPay-<id>.
  • Adds PubkyAuthAuthorize, PubkyAuthOK, and ContactPaymentsToggle identifiers.
  • Cites merged upstream Paykit Server POC wake2pay from notification #2 for canonical request behavior and merged Android feat: send paykit payment proofs #1178 for incoming-request swipe behavior.
  • Records successful live acceptance identifiers, both device identifiers, zero-confirmation and one-confirmation boundaries, and the intended first release milestone 2.6.0.

Preview

bitkit-android-1212-journey.mp4

QA Notes

Manual Tests

  • 1. Fresh funded Android buyer → receive request 5db852f6-d47a-43c4-8b17-fb7a654ac4dd → review the accepted fallback seller identity pubky…apfiy, 15,000 sats, and 141-sat fee → swipe once → verify transaction a3a427ca69a3f1d3f26fb47f38182c8543fdbd997227ddb8a2dec1ef0e927166 at zero confirmations → mine one regtest block → verify confirmed Android activity, paid request history without a Pay action, confirmed Paykit delivery, and completed Locks purchase.

Automated Checks

  • PaymentRequestsScreenTest.kt: all five focused Compose tests pass, including the incoming row and Pay identifiers.
  • just compile: passes.
  • just test: passes all 2,283 tests.
  • just lint: passes with existing baseline findings outside this change.
  • Post-undraft CI build and all E2E shards pass; lightning_security passed on its isolated rerun after the first attempt hit a runner Docker host-port collision before test execution.
  • Independent exact-head source audit and narrow re-certification: pass with no findings.
  • Exact head 0a0f7c8b4b7153fb9f0d39d7016ec1c0b73bf96a includes master merge 9698dea447592f0380ef4a7f8231c88beae46a18.
  • Fresh arm64 E2E APK SHA-256: cf96c9a637fd5b037ee4e34b5ea5ea77dd6049c71497d3cb22b4d221159e721c.
  • Preview video SHA-256: e21ce4b0bea14e42c0bb437cd8d443deebe6e2ba40488c0b24dbaaad54ec05ec.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml: passes.
  • git diff --check: passes.

@greptile-apps

greptile-appsBot commented Sep 2, 2026

Copy link
Copy Markdown

Greptile Summary

Adds stable Compose identifiers and documentation for the controlled Pubky marketplace wallet journey.

  • Standardizes payment-request row identifiers and adds identifiers for payment approval, Pubky authorization, and contact-payment controls.
  • Adds instrumented-test coverage for the payment-request identifiers.
  • Documents the two-wallet regtest fixture, acceptance evidence, and end-to-end journey steps.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

FilenameOverview
app/src/main/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreen.ktStandardizes request-row tags and adds a request-specific Pay-button identifier without changing payment behavior.
app/src/androidTest/java/to/bitkit/ui/screens/paymentrequests/PaymentRequestsScreenTest.ktUpdates identifier assertions and verifies that the incoming request exposes its Pay action.
app/src/main/java/to/bitkit/ui/screens/profile/PubkyAuthApprovalSheet.ktAdds stable identifiers to the authorization and success actions.
app/src/main/java/to/bitkit/ui/settings/SettingsScreen.ktRenames the contact-payments switch identifier to align with the documented journey.
journeys/pubky-marketplace/README.mdDefines the integration fixture, evidence contract, release provenance, and recorded acceptance runs.
journeys/pubky-marketplace/wallet-leg.xmlEncodes the seller-authorization, buyer-payment, broadcast, and confirmation journey.

Sequence Diagram

sequenceDiagram
participant S as Seller Wallet
participant F as Marketplace Fixture
participant B as Buyer Wallet
participant C as Regtest Chain
S->>F: Authorize watch-only account claim
S->>B: Establish reciprocal linked contacts
F->>B: Deliver marketplace payment request
B->>B: Review and approve payment
B->>C: Broadcast transaction
F->>C: Detect zero-confirmation payment
F->>C: Mine one block
C-->>B: Confirm transaction
C-->>F: Confirm payment
F->>F: Complete marketplace purchase
Loading

Reviews (2): Last reviewed commit: "docs: record selector replay" | Re-trigger Greptile

@ovitrif
ovitrif marked this pull request as draft September 2, 2026 10:05
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from b296556 to 496b457CompareSeptember 2, 2026 10:37
@ovitrif
ovitrifforce-pushed the codex/1212-marketplace-journey branch from 496b457 to 0a0f7c8CompareSeptember 2, 2026 10:52
@ovitrif
ovitrif marked this pull request as ready for review September 2, 2026 11:42

@piotr-iohkpiotr-iohk 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.

QA LGTM on the identifiers + journey contract. Did not re-run the isolated marketplace fixture.

Checked latest (0a0f7c8b):

  • Cited IDs exist on this branch: PubkyAuthWatchOnlyConsent / Approve / Authorize / OK, ContactPaymentsToggle, PaymentRequestsSheet, PaymentRequestRow-<id>, PaymentRequestPay-<id>, ReviewAmount, ReviewContactRecipient, GRAB, SendSuccess, ActivityAmount, ActivityTxDetails.
  • xmllint --noout journeys/pubky-marketplace/wallet-leg.xml passes.
  • Compose identifier tests in PaymentRequestsScreenTest match the hyphenated tags.
  • CI green, including e2e-tests-staging - pubky_paykit.

Notes, not blockers:

  • Merge #1217 first. This PR’s PaymentRequestRow- / PaymentRequestPay- tags are a subset of #1217 (that one also adds PaymentRequestDismiss-<id>).
  • PR body QA notes cite request 5db852f6-… / tx a3a427ca…. README records different accepted runs (ad1a8463-…, then selector replay b7f67854-…). Fine if those are separate replays — worth one line so we do not treat it as a mismatch later.
  • README says #1209 “preserves rejected incoming requests as visible history.” On #1217, parse rejects stay log-only; the visible-history / retry path is the explicit Pay terminal toast. Wording is slightly off.

I am not blocking on not replaying the Locks/Paykit Server fixture here. The journey is documentation of an accepted 2026-09-02 run, and the app-side selectors it needs are present.

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.

test: prove the Android Pubky marketplace wallet leg

2 participants

@ovitrif@piotr-iohk