ic-cdk-executor 2.0.0

Async executor for `ic-cdk`
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased

## [2.0.0] - 2025-11-13

### Changed

- Breaking: The API has been significantly revised.
    - `spawn` has been replaced with `spawn_protected` and `spawn_migratory`. Protected tasks are cancelled when the method ends.
    - Contexts are now 'tracking', meaning that they know when canister methods start and end. Calls to `ic0.call_*` must be accompanied by `extend_current_method_context`; `in_callback_executor_context_for` takes this value.
    - Cancellation is no longer done per-task with the waker, but per-method with the function `cancel_all_tasks_attached_to_current_method`.

## [1.0.2] - 2025-08-18

### Changed

- Moved the panic handler logic into the executor.

### Fixed

- Removed a panic from the case where a callback context closure doesn't do anything. The only way this usually occurs is if you upgrade a canister without stopping it first. A message has been added warning you not to do this.

## [1.0.1] - 2025-06-30

### Changed

- Added a check against spawning tasks during trap recovery.
- Added a check against invoking wakers outside an executor context.

### Fixed

- Removed a panic when a dangling waker is invoked.

## [1.0.0] - 2025-05-13

This release is a copy-paste of the executor from ic-cdk 0.18.1.

## [0.1.0] - 2025-05-13

This release is a copy-paste of the executor from ic-cdk 0.17.1.