Skip to content

v3.13.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 08:00
· 991 commits to main since this release
ed710ce

What's Changed

  • ci(release): wait for a dependency published earlier in the same tools release by @b3hr4d in #468
  • fix(release): sync example versions before a tools release updates the lockfile by @b3hr4d in #467
  • feat(react): support @icp-sdk/auth v10 alongside v8 by @b3hr4d in #469
  • test(react): run the real-AuthClient suite against @icp-sdk/auth v10 as well as v8 by @b3hr4d in #474
  • fix(react): require @tanstack/react-query 5.90.2, and test every package at its peer floors by @b3hr4d in #476
  • fix(react): decode Internet Identity's attribute message by its type by @b3hr4d in #487
  • fix(react): build one AuthClient when several callers prepare it at once by @b3hr4d in #489
  • fix(react): sign out locally when logout fails after the client let go by @b3hr4d in #488
  • fix(react): settle login state before a failed sign-in's onError runs by @b3hr4d in #490
  • fix(react): keep a sign-in that completed when the attribute request fails by @b3hr4d in #491
  • fix(react): ignore an ic_env cookie that is not valid percent-encoding by @b3hr4d in #492
  • fix(core): build a recursive type's display codec once instead of once per node by @b3hr4d in #495
  • fix(core): display opt opt T's some(none) as null so it differs from none by @b3hr4d in #496
  • fix(core): fetch a query from the canister its key names by @b3hr4d in #520
  • fix(core): construct a ClientManager where the page has no usable origin by @b3hr4d in #521
  • fix(core): invalidate the canister invalidateQueries was asked about by @b3hr4d in #522
  • fix(core): treat every loopback address as a local replica by @b3hr4d in #523
  • fix(core): let one unsubscribe remove only its own subscription by @b3hr4d in #524
  • fix(react): apply getKeyArgs in the infinite-query hooks by @b3hr4d in #532
  • fix(react): don't report placeholder data to useActorMethod's onSuccess by @b3hr4d in #533
  • fix(react): pass a query factory's networkMode, retry, retryDelay and meta to fetch() and prefetch() by @b3hr4d in #534
  • fix(codegen): pass createActorHooks its type arguments for the candid reactor classes by @b3hr4d in #535
  • fix(vite-plugin): regenerate every entry that shares a canister name by @b3hr4d in #536
  • fix(cli): stop generate --clean deleting a configured canister reached by another path by @b3hr4d in #537
  • fix(parser): return service: null from parseDid when the Candid declares none by @b3hr4d in #538
  • fix(core): poll an update call whose sync certificate does not list it yet by @b3hr4d in #519
  • fix(core): leave the caller's agentOptions untouched by @b3hr4d in #527
  • fix(candid): accept only hex text and 0-255 bytes in blob field schemas by @b3hr4d in #551
  • fix(candid): resolve display-transformed arrays the way their Candid form resolves by @b3hr4d in #554
  • ci(e2e): pin the network launcher so starting the network needs no GitHub API call by @b3hr4d in #556
  • fix(candid): read every type declaration before a registerMethod signature by @b3hr4d in #548
  • fix(candid): say why neither Candid source could be fetched by @b3hr4d in #549
  • fix(candid): reject float text the display codec cannot send by @b3hr4d in #550
  • fix(candid): describe empty as a type with no values in both form visitors by @b3hr4d in #552
  • fix(core): treat a field named constructor or toString as absent when left out by @b3hr4d in #493
  • fix(core): send a one-element opt vec of pairs instead of misreading it as the wrapper by @b3hr4d in #494
  • fix(core): retry initializeAgent after a subscriber throws while it starts by @b3hr4d in #525
  • fix(core): give query keys one encoding per argument value by @b3hr4d in #526
  • fix(core): unwrap only Result variants, not records with an ok or err field by @b3hr4d in #528
  • fix(core): build display codecs for a method typed by a recursive func alias by @b3hr4d in #568
  • fix(react): fetch an infinite query's pages from the canister its key names by @b3hr4d in #567
  • fix(core): serialize CanisterError, CallError and ValidationError with BigInts by @b3hr4d in #529
  • fix(react): mount the reactor's QueryClient while a hook uses it by @b3hr4d in #531
  • fix(candid): describe func and service references in arguments as values by @b3hr4d in #547
  • fix(candid): register a whole service definition however it is spaced by @b3hr4d in #553
  • fix(react): key useActorMutation's mutations like the other mutation paths by @b3hr4d in #570
  • docs: describe v10's real-client coverage and state the TanStack floor by @b3hr4d in #572
  • fix(cli): init -y writes the clientManagerPath that reaches src/clients.ts by @b3hr4d in #573
  • fix(react): tell v10 apps to serve the II frontend when local II has none by @b3hr4d in #574
  • fix(parser): keep a Candid name spelled proto in didToJs output by @b3hr4d in #575
  • fix(react): keep useActorMethod's call stable and report call(ownArgs) once by @b3hr4d in #530
  • docs(react): fix the invalidation, getArgs and staleTime docs (#562) by @b3hr4d in #577
  • fix(candid): close a quoted name that ends in an escaped backslash (#576) by @b3hr4d in #579
  • test(react): clear the signer heartbeat's timers when the fake II provider is restored (#580) by @b3hr4d in #581
  • test(e2e): run each reactor class against a typed canister on the replica (#569) by @b3hr4d in #585
  • fix(core): run the validator of a method that takes no arguments (#582) by @b3hr4d in #586
  • fix(core): observe an async validator's promise when callMethod() refuses it (#583) by @b3hr4d in #587
  • fix(react): keep validation issues on fields named like Object.prototype members (#584) by @b3hr4d in #588
  • docs: an empty opt displays as undefined, not null (#589) by @b3hr4d in #590
  • fix(core): resolve the display type of a type that contains itself, such as Motoko's List (#566) by @b3hr4d in #594
  • docs(core): describe fetchQuery as cache-first (#595) by @b3hr4d in #596
  • fix(react,core): validation helpers take general options and find root and index issues (#592) by @b3hr4d in #597
  • fix(react): honour useActorMethod options in call(args), and skip initialData in onSuccess (#564 items 4, 5) by @b3hr4d in #598
  • fix(core): resolve a recursive func alias to its func in getFuncClass (#608) by @b3hr4d in #612
  • fix(candid): initialize the metadata reactors when a method is a recursive func alias (#601) by @b3hr4d in #613
  • fix(candid): register one method at a time, and give each metadata reactor its own visitors (#602, #607) by @b3hr4d in #614
  • fix(candid): wait for the parser a concurrent parse is already loading (#603) by @b3hr4d in #615
  • fix(candid): read a value type that ends in a line comment (#604) by @b3hr4d in #616
  • fix(candid): offer the members of a recursive result as variable candidates (#605) by @b3hr4d in #617
  • fix(candid): accept a request path in a url field's schema (#606) by @b3hr4d in #618
  • fix(react): restore the session once per AuthenticationManager, not per useAuth() (#619) by @b3hr4d in #624
  • fix(react): give the auth hooks a fixed server snapshot, so late hydration matches (#620) by @b3hr4d in #625
  • fix(react): unsubscribe only the registration subscribeAuthState returned (#623) by @b3hr4d in #626
  • docs, ci: state TypeScript 5.7 as the floor and check the declarations compile there (#591) by @b3hr4d in #627
  • fix(candid): quote the method name in the service registerMethod builds (#635) by @b3hr4d in #636
  • fix(core,candid): refuse blob hex with an odd number of digits instead of padding it (#628) by @b3hr4d in #648
  • fix(parser): print U+0000 in a name as a \u escape, not an octal one (#629) by @b3hr4d in #649
  • fix(candid): keep "export " inside Candid names when evaluating a definition (#630) by @b3hr4d in #650
  • fix(core): fetch a local replica's root key before the first call (#637) by @b3hr4d in #651
  • fix(core): notify every ClientManager subscriber, and never with a replaced value (#638) by @b3hr4d in #652
  • fix(core): clear isInitialized when an initializeAgent attempt fails (#639) by @b3hr4d in #653
  • fix(core): recognise errors thrown by another copy of the package (#640) by @b3hr4d in #654
  • fix(core): verify synchronous update responses with pollingOptions.blsVerify (#641) by @b3hr4d in #655
  • fix(core): pin an anonymous update call's polls before the first sign-in (#645) by @b3hr4d in #656
  • docs(candid): make the metadata reactor examples run as written (#609) by @b3hr4d in #657
  • fix(candid): metadata lookups return only a method's own entry, and keep a proto field (#610) by @b3hr4d in #658
  • fix(vite-plugin): regenerate a saved .did under vite build --watch, without a rebuild loop (#660) by @b3hr4d in #667
  • fix(vite-plugin): generate a .did that appears during vite dev, and regenerate with hmr off (#661) by @b3hr4d in #668
  • fix(codegen): format the generated reactor files, and stop rewriting them once formatted (#662) by @b3hr4d in #669
  • fix(cli): report --canister names like toString as not found (#663) by @b3hr4d in #670
  • fix(cli): read an ic-reactor.json saved with a byte order mark (#665) by @b3hr4d in #671
  • fix(candid): close the remaining Object.prototype-name gaps (#659) by @b3hr4d in #672
  • fix(codegen): don't rewrite generated files whose bytes are unchanged (#666 items 1-3) by @b3hr4d in #673
  • docs(ai-context): fix llms-full and skill snippets that throw, mistype or mislabel (#674) by @b3hr4d in #680
  • docs(react): fix the server-component SSR example and the v10 idle example (#675) by @b3hr4d in #681
  • docs(core): fix the Quick Start reactor and the query-key section (#676) by @b3hr4d in #682
  • docs(cli): document the per-canister canisterId the generated reactor needs (#677) by @b3hr4d in #683
  • docs(candid, parser): fix validateIDL's contract, a strict-mode snippet and two install lines (#678) by @b3hr4d in #684
  • docs: fix docs-site snippets, the v8-only idleOptions JSDoc and stale example headers (#685 items 1-3) by @b3hr4d in #687
  • fix(core): type CanisterError.details as the Err type's own details field (#685 item 4) by @b3hr4d in #688
  • docs: drop the tanstack-router example's stale CLI config, and fix two descriptions (#689, #691) by @b3hr4d in #692
  • docs: make the suspense, useActorMethod and useAuth reference pages match the hooks (#693) by @b3hr4d in #701
  • docs: fix the query and mutation factory pages' snippets and claims (#694) by @b3hr4d in #702
  • docs: fix snippets and root-key, fallback and size claims in getting-started, guides and framework pages (#695) by @b3hr4d in #703
  • docs: describe ClientManager's ic_env trust and root-key fetch as the code does (#696) by @b3hr4d in #704
  • docs(candid): fix candid page snippets and JSDoc that fail tsc (#697) by @b3hr4d in #705
  • docs: make the example pages match their examples (#698) by @b3hr4d in #706
  • docs(react,core): fix JSDoc examples that name functions and hooks that don't exist (#699) by @b3hr4d in #707
  • docs: the auth hooks' server snapshot no longer reads a shared manager (#708) by @b3hr4d in #709
  • docs: align the Next.js page and the hooks skill with #709's AuthenticationManager wording (#710) by @b3hr4d in #711
  • fix(candid): report a rejected query's reject, not a BigInt TypeError (#712) by @b3hr4d in #714
  • docs(core): say that initialize() replaces a supplied root key on a local host (#713) by @b3hr4d in #715
  • test(candid): retry the mainnet e2e tests (#716) by @b3hr4d in #717
  • fix(core): let getIssuesForPath("") find whole-argument issues (#721) by @b3hr4d in #723
  • fix(react): notify every auth state subscriber when one of them throws (#725) by @b3hr4d in #730
  • fix(react): do not sign with a lapsed session when built over a caller's client (#728) by @b3hr4d in #733
  • fix(core): verify query signatures for mainnet in a development build (#718) by @b3hr4d in #722
  • fix(core): route a web worker's ClientManager like the page that started it (#720) by @b3hr4d in #724
  • fix(codegen): read a .did saved with a UTF-8 byte order mark (#734) by @b3hr4d in #739
  • fix(codegen): refuse a didFile inside the generated declarations directory instead of deleting it (#736) by @b3hr4d in #741
  • fix(react): keep a signed-out user off the agent when their attribute request resolves (#726) by @b3hr4d in #731
  • fix(react): show identity attributes only to the session they belong to (#727) by @b3hr4d in #732
  • fix(parser): keep Candid types named like the bindings' imports from breaking them (#735) by @b3hr4d in #740
  • fix(core): sweep the cache once per identity switch, not once per canister (#742) by @b3hr4d in #749
  • fix(candid): build one result node per recursive type and label, not per value (#743) by @b3hr4d in #750
  • fix(react): give the auth hooks a stable subscribe function (#744) by @b3hr4d in #751
  • fix(core): call nested display codecs directly, not through zod's parser (#747) by @b3hr4d in #752
  • fix(react): end a lapsed v10 session in this tab only (#753) by @b3hr4d in #756
  • fix(core): key a blob argument by its bytes, whatever form it is passed in (#748) by @b3hr4d in #757
  • fix(parser): rename a service type named like a JavaScript keyword (#738) by @b3hr4d in #758
  • fix(react): sign a v8 tab out when its own delegation lapsed, though another tab signed in (#755) by @b3hr4d in #759
  • fix(react): do not report a v8 tab signed in as the anonymous principal (#760) by @b3hr4d in #763
  • fix(core): key DisplayReactor args by the value they send, not the form given (#761, #762) by @b3hr4d in #764
  • fix(core): key a refused argument so it never matches a valid call (#765) by @b3hr4d in #766
  • fix(core): give each polled request its own counter, clock and timeout (#563) by @b3hr4d in #578
  • fix(react): await useActorMethod's invalidation before onSuccess (#564 item 3, design) by @b3hr4d in #599
  • fix(react): run createMutation's execute() in the MutationCache (#564 item 1, design) by @b3hr4d in #600

Full Changelog: v3.12.5...v3.13.0