PE-9205: Release v2.88.1 - #2230
Merged
Merged
Conversation
…more PE-9205 (#2227) A Solana user bought Turbo credits in Turbo's console, and ArDrive told them they had none, then offered to sell them more. Signing in with another chain's wallet derives the Arweave account ArDrive bills, and Turbo keeps a balance per chain, so the credits sat on the sign-in wallet's account, out of reach. - When the payment sheet is refusing and the reader signed in with another chain's wallet, it looks up that wallet's Turbo balance and says where the credits are, in place of every top-up offer, in both selector modes. - On the web, for a Solana sign-in, one press shares them: Turbo is authenticated as the sign-in wallet and approves the derived address for the balance found. It refuses unless the extension's connected account is that wallet. Spending then works unchanged through `receivedApprovals`, `effectiveBalance` and `x-paid-by`. - Everywhere else, and after a share that did not go through, the notice shows the whole Arweave address to copy for sharing in Turbo by hand. - The lookup is awaited after the emit rather than raised as a second event, which could add to a closed bloc and report a closed sheet as a failed preparation. Uploads and encryption are unchanged. The web signing path cannot run in VM tests and needs a manual Phantom pass on staging, including once with a different account selected. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AAvnj5uGsaASPN47BViH8D
… sheet PE-9205 (#2228) Follow-up to #2227, from two CodeRabbit findings. `UploadPaymentMethodBloc` runs events concurrently, and a double tap on Skip or Replace in the upload conflict dialogs starts two preparations. Whichever finished last won, so an older preparation could replace the newer payment sheet, and a credit lookup could attach its answer to a sheet it was never asked about. Each preparation now takes a number. Every emit in the preparation handler, the loading state, a wallet mismatch, the prepared result and a failure, and the credit lookup's result are applied only if no newer preparation has begun. A counter rather than a `restartable` transformer, which would also change how switching payment method is handled. Tests cover a late lookup, and an older preparation finishing late with a result, with a failure, and after the newer one has loaded. Each guard was checked by reverting it and confirming a test fails. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AAvnj5uGsaASPN47BViH8D
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AAvnj5uGsaASPN47BViH8D
PE-9205: Bump version to 2.88.1
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
dev→masterfor 2.88.1. Two fixes on staging sincea5e89950c: Turbo credits on the wallet somebody signed in with (#2227), and a payment sheet that an older preparation can no longer overwrite (#2228), plus the version bump (#2229).masteris merged into this branch rather than the other way round, matching #2226. The resulting tree is byte-identical todev, so this release is exactly what is on staging.What's new
Turbo credits on the wallet you signed in with. Signing in with a Solana or Ethereum wallet gives you an Arweave account, and that account is what pays for uploads. Credits bought in Turbo's own console went to the wallet instead, so the upload sheet said you had none and offered to sell you more. It now says where your credits are, and stops offering a top-up.
Use them in one press, with a Solana wallet. On the web, one signature lets your ArDrive account spend those credits. It only signs from the wallet the credits are on. Anywhere that cannot sign, or if sharing does not go through, the sheet shows your full Arweave address to copy, so you can share the credits in Turbo yourself.
Under the hood
Notes for upgraders
schemaVersionunchanged at 29configVersionunchanged at 3ardrive_uploader,ardrive_crypto,lib/core/uploadandlib/core/cryptohave no changes. The work is in the payment sheet and the Turbo services it callsPre-flight
schemaVersion.driftchangesconfigVersionardrive_uploader,ardrive_crypto,lib/core/upload,lib/core/crypto: zero lines changed.lib/blocs/uploadchanged: the payment sheet only2e8e61b43; 21 behaviours each checked by reverting the codedevshareCreditscall; the web path is VM-untestable. A manual pass is recommended before merging. If it fails, the effect is contained: a Solana reader on a refusing sheet sees "That did not go through." and their whole Arweave address to share in Turbo by hand, instead of the old offer to buy more creditsAfter merging
The merge is the deploy:
production.yamlruns on every push tomaster, and no workflow is triggered by a tag or a release. Once that run is green andapp.ardrive.io/version.jsonreads 2.88.1, publish the GitHub releasev2.88.1pinned to the merge commit, so the tag names exactly what shipped.🤖 Generated with Claude Code
https://claude.ai/code/session_01AAvnj5uGsaASPN47BViH8D