Skip to content

chore: update paykit to rc77 - #1500

Merged
ovitrif merged 1 commit into
masterfrom
codex/paykit-rc77
Oct 15, 2026
Merged

ovitrif merged 1 commit into
masterfrom
codex/paykit-rc77

Conversation

@ben-kaufman

@ben-kaufman ben-kaufman commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Closes #1501

This PR updates Bitkit to published Paykit RC77 after #1485 merged.

Description

  • Pin RC77 so Pubky file reads preserve encoded paths and malformed URIs cannot be reinterpreted as another resource.
  • Include Paykit's current error-redaction fixes so remote document and decrypted field values stay out of errors.

The SDK source is merged in pubky/paykit-rs#194. Generated APIs are unchanged from RC76. No app logic, polling, payment approval, storage migration or safety wait changes.

Design

N/A - no UI changes.

Preview

N/A

QA Notes

Journeys

N/A - not drivable; see Manual Tests. These URI and error fixtures are not supplied by the standard journey environment.

Manual Tests

  • 1 Seed a public profile/avatar whose canonical Pubky URI contains spaces, Unicode or literal percent signs → open Profile or the contact → the expected image loads without changing the resource name; malformed backslash/control URIs fail. Arbitrary encoded-path profile fixtures are not in Capabilities.
  • 2 Seed a malformed Paykit document with recognizable dummy field values → trigger its read → the error identifies the failure without echoing those values. Controlled malformed-document fixtures are not in Capabilities.

Automated Checks

  • ran testDevDebugUnitTest --rerun-tasks --no-daemon --max-workers=2 --warning-mode all against the downloaded RC77 Maven artifact: 4,239 tests passed, with no failures or skips. The same-source RC76 baseline also passed 4,239 tests.
  • ran a full diagnostic comparison against master 262b169735: all 1,401 Detekt findings and compiler/deprecation diagnostics are unchanged; no introduced findings. Compilation and APK assembly passed.
  • ran release-artifact verification: published AAR, POM, module and sources match their remote SHA-256 files; generated Kotlin APIs match the validated SDK bindings. All three native libraries in Bitkit's universal APK exactly match the published RC77 AAR. No Maven-local Paykit override was used.

No tests were added or removed. No current-head device or checkout pass is claimed. Existing Shop-contact acceptance checks from #1485 are not completed by this dependency bump. Matching iOS update: synonymdev/bitkit-ios#934.

@github-actions

Copy link
Copy Markdown
Contributor

Regtest APK

Built from 82c6350 (run).

Download bitkit-dev-debug universal APK (expires in 30 days).

@greptile-apps

greptile-apps Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable defects were found.

Summary

Updates Paykit from 0.1.0-rc76 to 0.1.0-rc77.

  • Bitkit now uses Paykit RC77 for Pubky file reads and document errors.

Reviews (1) · Last reviewed commit: "chore: update paykit to rc77" · Reviewed by Greptile

@talosmachina talosmachina left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No findings. Bumps paykit-android from 0.1.0-rc76 to 0.1.0-rc77 and adds a changelog fragment. Reviewed 82c6350, full tier (dependency manifest), reasoned from the code and CI; the branch was not built locally.

What I checked, and 2 candidates I ruled out

Upstream diff read: pubky/paykit-rs v0.1.0-rc76..v0.1.0-rc77 (tag at 1d2ca71, on master): pubky_session.rs (new decode_pubky_uri), runtime/mod.rs (fetch_public_file_uri), runtime/profiles.rs (directory listing, blob delete), domain/contacts/blobs.rs, the error-redaction changes in paykit-lib. No paykit-ffi/src change, so the generated Kotlin surface is the same as rc76, consistent with the PR body.
App call sites traced: PaykitSdkService.fetchFile / fetchPublicFile / listPublicDirectoryPage, reached from PubkyImageFetcher (avatars) and ShopContactImporter (marker listing and shop.json fetch).
CI: build, lint, detekt green; build-local (e2e) still pending at time of review.

Ruled out

  • Double decoding of app-built URIs: rc77 now percent-decodes every input before PubkyResource re-encodes it. The only behaviour change is for paths containing %; the app's constructed URIs (pubky://$seller/pub/pubky.app/marketplace/v1/shop.json, the marker root) contain none, and listed URIs are passed back unchanged, which is the convention rc77 documents.
  • ShopContactImporter.verifiedSeller string comparison: it compares a listed URI with "$root$seller.json"; the seller is a z-base-32 key and the root has no encodable characters, so the canonical encoding cannot make them differ.

Merge confidence: 4/5, a native dependency bump whose new URI handling has no app-side test; the e2e job was still running.

@ovi-reviewer ovi-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggestion: 👍 Approve

Review: diff 2 files.
synonymdev/bitkit-ios#934 pins Paykit RC77 at 67bae1f too. Its wider Shop-contact changes match those in merged #1485.

QA:
Tests queued.


Reviewed by gpt-6.1-sol-high via gh-pr-review-loop skill
Commands: @ovi-reviewer review · test · retest

@ovitrif
ovitrif enabled auto-merge October 15, 2026 18:35

@ovitrif ovitrif 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.

utAck

@ovitrif
ovitrif merged commit c7000aa into master Oct 15, 2026
23 checks passed
@ovitrif
ovitrif deleted the codex/paykit-rc77 branch October 15, 2026 18:50
Sign up for free to 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.

fix: pubky file reads keep encoded paths intact

4 participants