Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
949ad2a
feat(sync-plugin): scaffold plugin sync step with Component Model int…
lwshang Apr 15, 2026
b841457
feat(sync-plugin): implement wasmtime Component Model runtime and POC…
lwshang Apr 15, 2026
84deefa
feat(sync-plugin): add icp-sync-plugin example with Rust CDK canister
lwshang Apr 16, 2026
3cd68f9
feat(sync-plugin): switch to WASI preopens and add manifest files field
lwshang Apr 16, 2026
f69b85b
feat(sync-plugin): move Candid encoding into the plugin
lwshang Apr 16, 2026
6dd648f
chore(deps): upgrade wasmtime from 30 to 41
lwshang Apr 16, 2026
55193a1
chore: ignore all target/ dirs from root gitignore
lwshang Apr 17, 2026
399d6bd
refactor(sync-plugin): replace custom stdio streams with MemoryOutput…
lwshang Apr 20, 2026
529a51b
refactor(sync-plugin): move sync-plugin.wit into icp-sync-plugin crate
lwshang Apr 20, 2026
42a8c5f
docs(sync-plugin): update SANDBOX.md for buffered stdio and moved WIT
lwshang Apr 20, 2026
51e96be
refactor(sync-plugin): move PoC plugin into examples/icp-sync-plugin …
lwshang Apr 20, 2026
5159b3a
docs(sync-plugin): replace outdated docs with DESIGN.md and TODO.md
lwshang Apr 20, 2026
7194a6c
feat(sync-plugin): forward proxy to sync_many and add direct flag to …
lwshang Apr 20, 2026
f15b540
feat(sync-plugin): exercise direct flag with set_uploader and identit…
lwshang Apr 20, 2026
e4bfae8
docs(sync-plugin): add README for icp-sync-plugin example
lwshang Apr 20, 2026
9a5c99e
feat(sync): add --proxy flag to icp sync command
lwshang Apr 20, 2026
e71b5f8
chore: merge main into lwshang/sync_plugin
lwshang Apr 20, 2026
ebeefd5
chore: upgrade wasmtime to 43 and bump toolchain to 1.91.0
lwshang Apr 20, 2026
277a547
Merge remote-tracking branch 'origin/main' into lwshang/sync_plugin
lwshang Apr 27, 2026
504a6c7
refactor: centralize wasm fetch/cache in canister::wasm module
lwshang Apr 28, 2026
56abfd1
test(icp-sync-plugin): add unit tests for run_plugin error paths and …
lwshang Apr 28, 2026
dd02be6
test(icp-sync-plugin): add e2e integration test for sync plugin happy…
lwshang Apr 28, 2026
561c75a
docs: update changelog for sync plugin system and icp sync --proxy
lwshang Apr 28, 2026
541b44b
fix: update stale test expectations and add wasm targets to toolchain
lwshang Apr 28, 2026
97efbd9
fix: use manifest path in wasm read log and error messages
lwshang Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/target
target/
.DS_Store
.cursor

Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Unreleased

* feat: Canister manifests now support a `plugin` sync step type. Plugins are WebAssembly components that run in a sandboxed environment and can drive arbitrary post-deployment logic against the canister being synced. See `crates/icp-sync-plugin/DESIGN.md` for details.
* feat: `icp sync` now accepts `--proxy` to route management canister calls through a proxy canister, consistent with other `icp` subcommands.
Copy link

Copilot AI Apr 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changelog entry says icp sync --proxy routes “management canister calls”, but in this PR the new behavior is primarily routing sync plugin calls to the target canister through the proxy canister. Consider rewording to reflect the actual effect of --proxy for icp sync.

Suggested change
* feat: `icp sync` now accepts `--proxy` to route management canister calls through a proxy canister, consistent with other `icp` subcommands.
* feat: `icp sync` now accepts `--proxy` to route sync plugin calls to the target canister through a proxy canister.

Copilot uses AI. Check for mistakes.
* fix: `icp canister call` now serializes arguments built via the interactive Candid assist prompt against the method's declared signature, matching the behavior of arguments passed on the command line. Previously, narrower values (e.g. a variant case from a multi-case variant) were encoded with a type table inferred only from the value, which the target canister rejected with errors like "Variant index N larger than length 1".

# v0.2.5
Expand Down
Loading
Loading