fix: prepare Paykit local auth and private links - #653
Conversation
Greptile SummaryThe PR updates Paykit integration and local E2E configuration while improving private-link and payment-request synchronization.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| Bitkit/Info.plist | Adds build-setting-backed local Homegate and shared local-host values; the verified processed plist behavior preserves the intended fallback. |
| Bitkit/Constants/Env.swift | Routes local E2E Homegate, Electrum, and Pubky/Paykit endpoints through the shared host while retaining production defaults. |
| Bitkit/Services/PrivatePaykitService+Contacts.swift | Adds bounded endpoint-refresh bursts and persists newly discovered supported receiver paths. |
| Bitkit/AppScene.swift | Triggers bounded private-link and payment-request refreshes after contact, lifecycle, and connectivity events. |
| Bitkit/Models/PubkyAuthRequest.swift | Requires the exact public and private watch-only capability set without depending on capability ordering. |
| Bitkit/Services/PubkyService.swift | Shares one environment-aware Pubky client configuration between bootstrap and the Paykit SDK. |
Sequence Diagram
sequenceDiagram
participant App as AppScene
participant Private as PrivatePaykitService
participant Pubky as PubkyService
participant Paykit as Paykit SDK
App->>Private: Start initial link burst
loop Every 2 seconds, bounded
Private->>Paykit: Load saved contact record
Private->>Pubky: Discover receiver paths
Pubky-->>Private: Current public/private paths
Private->>Paykit: Persist newly discovered paths
App->>Paykit: Refresh incoming payment requests
end
Reviews (3): Last reviewed commit: "test: clarify Paykit burst coverage" | Re-trigger Greptile
ovitrif
left a comment
There was a problem hiding this comment.
Requesting changes for two issues after this watch-only capability change:
- PubkyAuthApprovalSheetTests still build public-only watch-only auth URLs, so PubkyAuthRequest.parse throws before the consent and approval assertions run.
- Docs/watch-only-account-claim-v1.md is incorrect because it still documents only the public server capability as the exact watch-only requirement.
|
Docs/watch-only-account-claim-v1.md still documents only |
|
Addressed the remaining review feedback in 3086813: the watch-only contract now documents both required Paykit Server capabilities, all stale approval-sheet fixtures use the shared production capability constant, and capability matching handles reordered or whitespace-separated entries while rejecting empty entries. The focused request and approval-sheet suites pass all 50 tests on Paykit rc43. |
ovitrif
left a comment
There was a problem hiding this comment.
Looks good. The previously missing private Paykit Server capability is now required in the approval-sheet fixtures and watch-only claim contract.
jvsena42
left a comment
There was a problem hiding this comment.
No issues found,, only some missing cleanup ports from Android
3086813 to
e6173fd
Compare
|
LGTM, waiting for CI to pass before approving |
Description
0.1.0-rc43and use one cached Pubky client configuration for session bootstrap and the Paykit SDKE2E_LOCAL_HOSTsetting while keeping production defaults unchangedbitkit/server, are discovered and persistedLinked Issues/Tasks
Validation
0.1.0-rc43resolves from its published tag and the app builds against its published XCFrameworkPaykitSdkClientConfigTestsandPrivatePaykitServiceTests: 16/16 passed after rebasing onto currentmasterScreenshot / Video
N/A — no new UI; this changes local E2E configuration and private-link synchronization.