mit einem Klick
fix-client-bug
// Fix bugs or add features in the @mysten/sui client layer (gRPC, JSON-RPC, GraphQL). Ensures all three transport implementations stay in sync.
// Fix bugs or add features in the @mysten/sui client layer (gRPC, JSON-RPC, GraphQL). Ensures all three transport implementations stay in sync.
| name | fix-client-bug |
| description | Fix bugs or add features in the @mysten/sui client layer (gRPC, JSON-RPC, GraphQL). Ensures all three transport implementations stay in sync. |
| user-invocable | true |
| allowed-tools | Bash, Read, Edit, Write, Grep, Glob |
Use this workflow when making changes to Core API methods in packages/sui/src/. The key architectural constraint is that the three transport implementations (gRPC, JSON-RPC, GraphQL) must always produce identical results for the same Core API call.
packages/sui/src/client/core.ts.packages/sui/src/client/types.ts.packages/sui/src/grpc/core.tspackages/sui/src/jsonRpc/core.tspackages/sui/src/graphql/core.tsCoreClient (not abstract), check whether the bug is in the shared logic or in a method it delegates to.Do not stop after reading one implementation. A bug in one transport very often exists in a different form in the others.
If the change affects the return type in src/client/types.ts:
$kind discriminated union pattern for any polymorphic data. Search types.ts for $kind to see how ObjectOwner, TransactionResult, ExecutionError, etc. are structured.(item): SuiClientTypes.SomeType => { ... }) to catch type mismatches at the implementation site.src/grpc/core.ts)readMask.paths array — fields not listed here are not returned by the server.src/grpc/proto/ to discover available fields.src/graphql/core.ts).graphql query file in src/graphql/queries/.pnpm --filter @mysten/sui codegen:graphqlsrc/graphql/generated/queries.ts with new typed document nodes.src/jsonRpc/core.ts)src/utils/ (e.g., deriveDynamicFieldID, normalizeStructTag) may be needed.packages/sui/test/e2e/clients/core/.testWithAllClients to run the test across all transports.expectAllClientsReturnSameData to assert identical results across clients.test/e2e/data/shared/test_data/sources/.pnpm turbo build --filter=@mysten/suipnpm --filter @mysten/sui oxlint:checkpnpm --filter @mysten/sui testpnpm prettier:checkminor if you're adding new fields or types to the public API, patch for internal-only fixes.Fix pnpm audit vulnerabilities. Upgrades packages, adds overrides, handles minimumReleaseAge restrictions, and cleans up stale overrides.
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
Write and maintain SDK documentation in packages/docs/content/. Use when adding new doc pages, updating existing docs, or modifying the documentation structure. Ensures frontmatter, meta.json, and LLM index stay in sync.