docs(handoff): fastUSD (#87) + multisig CLI (#85) transfer — tracking#96
Open
Zhaiyuqing2003 wants to merge 3 commits into
Open
docs(handoff): fastUSD (#87) + multisig CLI (#85) transfer — tracking#96Zhaiyuqing2003 wants to merge 3 commits into
Zhaiyuqing2003 wants to merge 3 commits into
Conversation
Captures branch state, remaining work, and the file-by-file conflict surface for rebasing feat/multisig-cli onto feat/cli-fund-fastusd, so the work can be picked up by another teammate. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…#87 Default fastUSD must not silently fall back to a different token on routes it can't serve (e.g. fund usdc crypto via allSet) — print an error instructing the user to pass --token USDC explicitly. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
10 tasks
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.
Handoff — fastUSD (PR #87) + multisig CLI (PR #85)
Date: 2026-05-19
From: Yuqing
To: TBD
Two open PRs need to land on
develop, in this order: PR #87 (fastUSD) first, then PR #85 (multisig) rebased on top. This doc captures branch state, what's left, and the concrete conflict surface for the multisig rebase. Rebase mechanics are standardgit rebase --onto; this doc does not prescribe them.PR #87 —
feat(cli): fund command restructure + fastUSD adoptionfeat/cli-fund-fastusd· PR: #87developtip95dc796; 5 commits behind currentorigin/develop(00635d3). The 5 new commits (wallet popup module + npm/pnpm install safeguards) touch only.npmrc,pnpm-workspace.yaml,packages/fast-sdk/{package.json,src/wallet/**,tests/unit/wallet-*.test.ts}— no overlap with this branch. Rebase is fast-forward-clean.fundrestructured into a 2-deep tree (fund usdc fiat,fund usdc crypto, newfund fastusd); mainnet Fast→Fastsenddefaults to fastUSD; x402-client surfaces the real paid asset so dry-run/log/history stop mislabeling asUSDC.docs/superpowers/specs/2026-05-06-cli-fund-restructure-and-fastusd-design.mddocs/superpowers/plans/2026-05-06-cli-fund-restructure-and-fastusd.mdRemaining — fastUSD
PaymentDetails; non-throwing default-token selection insendpath; Ramp URL hardened withURLSearchParams+ real Fast-address validation;fastUSDCdropped as a--tokenvalue; docs reworded for route-specific defaults). A reviewer pass is needed to confirm each finding is closed.fund fastusdURL once the unified Fast web app is live; confirmto=is recognized andamount=pre-fills.fast send fast1addr 5(no--token) defaults totestUSDC; mainnet equivalent defaults tofastUSD.fastUSDcan't serve. Default isfastUSDon mainnet, but some routes (e.g.fund usdc crypto, which goes through allSet) can't settle in fastUSD. When--tokenis omitted on one of those routes, do not silently substitute a different default (e.g. fall through tofastUSDCor the chain's bridge token). Instead, print an error explaining that the defaultfastUSDis not supported on this command and instructing the user to pass--token USDCexplicitly. The principle: default is fastUSD everywhere or it's an explicit choice — never a silent route-dependent substitution.PR #85 —
feat(cli): multisig support — N-of-M wallets + token operationsfeat/multisig-cli· PR: #85origin/developand force-pushed. New PR head is2b1268d(fix(cli): declare viem type dependency);origin/developat rebase time was28ceed9.viemtype import. The feature still spans@fastxyz/sdk(newMultiSigSigner,deriveMultiSigAddress,assertAuthorizedSigner, tagged errors) and@fastxyz/cli(accountstable migrated to tagged union;signer-resolverservice;multisig {init,import,export,pending,vote}; polymorphicsend;token {create,mint,burn,manage}; six new tagged errors).pnpm -C app/cli exec tsc --noEmitpnpm -C app/cli exec vitest run-- 77 tests passed.pnpm -C packages/fast-sdk exec vitest run tests/unit/multisig-signer.test.ts-- 14 tests passed.pnpm build-- 9/9 tasks successful.testcheck runs.docs/superpowers/specs/2026-05-04-multisig-in-fast-cli-design.mddocs/superpowers/plans/2026-05-04-multisig-cli-phase-1.md(backbone),docs/superpowers/plans/2026-05-05-multisig-cli-phase-2-token-ops.md(token ops).Remaining — multisig
d7e03a1and reported 23 inline comments. Triage each comment against new head2b1268d: close anything made obsolete by the rebase/feat(cli): fund command restructure + fastUSD adoption #87/feat(cli): explicit default-token resolution + CommandUnsupportedForTokenError #98 integration, and fix anything still valid.2b1268d; the old review context predates the fastUSD rebase.send-> cosignervote-> quorum success.token createfrom single-signer -> admin assignment is correct.token managerejects a wrongupdateIdand accepts the currentupdateId.MultiSigConfigInvalidErrorand CLIMultiSigConfigInvalidErrorsharing the same_tag; runtime behavior is currently fine because the CLI maps SDK errors, but reviewers may still ask for disambiguation.Rebase/conflict resolution notes — multisig onto develop
Rebase is complete. The actual conflicts matched the expected conflict surface and were resolved on
feat/multisig-clibefore force-pushing #85.packages/fast-sdk/src/index.tsFastNetwork/FastTokenexports fromdevelopand added the multisig SDK public API exports.app/cli/src/commands/fund/usdc/crypto.tsfast fund usdc crypto.app/cli/src/commands/send.tsdevelop's default-token resolution/fail-loud path, then dispatches Fast -> Fast sends through the multisig-aware single-vs-multisig flow.--asonly affects signer/member resolution, not token resolution.app/cli/src/commands/pay.tsapp/cli/src/cli.ts,app/cli/src/main.ts,app/cli/src/commands/index.tsfund usdc/fund fastusdtree and registered all multisig/token parsers, handlers, and validation hints.app/cli/package.json,pnpm-lock.yamlviemas a CLI dev dependency becauseapp/cli/src/services/api/allset.tsdirectly importsviemtypes; this avoids clean-installtscfailures under pnpm.Pointers
docs/superpowers/specs/2026-05-06-cli-fund-restructure-and-fastusd-design.md,docs/superpowers/specs/2026-05-04-multisig-in-fast-cli-design.mddocs/superpowers/plans/2026-05-06-cli-fund-restructure-and-fastusd.md,docs/superpowers/plans/2026-05-04-multisig-cli-phase-1.md,docs/superpowers/plans/2026-05-05-multisig-cli-phase-2-token-ops.md