@dfinitydfinity/pic — Release Announcements
This topic tracks releases of @dfinity/pic, an ICP canister testing library for TypeScript and JavaScript.
Source code: GitHub - dfinity/pic-js: An Internet Computer Protocol canister testing library for TypeScript and JavaScript. · GitHub
Documentation: PicJS | PicJS
Releases: https://www.npmjs.com/package/@dfinity/pic
Install
npm i -D @dfinity/pic
Follow this topic to get notified about new releases. If you run into any issues, please report them on GitHub Issues. Contributions are also very welcome — check out our contributing guide to get started.
v0.19.0 (2026-03-10)
GitHub Release: Release 0.19.0 · dfinity/pic-js · GitHub
Changelog: pic-js/CHANGELOG.md at main · dfinity/pic-js · GitHub
Changes
Breaking changes
- PocketIC server upgraded to v12.0.0 — make sure to update your local PocketIC server binary (#231)
New features
- Chunked WASM upload — large WASM modules are now uploaded in chunks (#239)
- HTTP gateway support — PocketIC now supports an HTTP gateway for canister HTTP requests (#233)
Bug fixes
- Fail immediately on non-retryable PocketIC server errors — errors that cannot be resolved by retrying now fail fast instead of timing out (#242)
Upgrade
npm install -D @dfinity/pic@0.19.0
Give it a try and let us know how it goes! 
Thank you to everyone who contributed to this release:
RIP my custom chunked uploading code. You served our bloated binaries well.
I had to downgrade PicJS back to v0.17.2
.
I’m not sure whether the issue is related to v0.18.x or v0.19.x, but my test suite became flaky after upgrading - “heavy” tests (those in which I assert behavior of canister upgrades) started timing out regularly at 60000ms.
Is there a known performance regression in the recent versions of PicJS, or any change that could cause these tests to fail?
Example: https://github.com/junobuild/juno/actions/runs/23088589705/job/67071317699?pr=2666
Thanks for reporting this @peterparker! I had a look and found a probable cause.
PicJS currently polls for update call completion using individual tick() + ingressStatus() HTTP requests in a loop.
PocketIC’s changelog (v10.0.0) explicitly acknowledges this pattern has a performance regression and introduced a dedicated await_ingress_message endpoint to solve it pocketic/CHANGELOG.md at main · dfinity/pocketic · GitHub.
The performance issue is fix in https://www.npmjs.com/package/@dfinity/pic/v/0.21.0, could you please try if this version resolves the issue?
The first CI run using this version of PicJS went through on first try, it looks promising
. I’ll monitor it the next few days. Thanks!