Proposal to elect new release rc--2025-05-08_03-21

Hello there!

We are happy to announce that voting is now open for a new GuestOS release.
The NNS proposal is here: IC NNS Proposal 136567.

Here is a summary of the changes since the last GuestOS release:

Release Notes for release-2025-05-08_03-21-base (2f52f298de53944209f550774505aa72a1a3ed17)

This release is based on changes since release-2025-05-01_03-23-base (f195ba756bc3bf170a2888699e5e74101fdac6ba).

Please note that some commits may be excluded from this release if they’re not relevant, or not modifying the GuestOS image. Additionally, descriptions of some changes might have been slightly modified to fit the release notes format.

To see a full list of commits added since last release, compare the revisions on GitHub.

Features:

  • c95a256e8 Execution,Interface,Message Routing: Break out dropped message metrics by kind / context / class (#4966)
  • 8347b794a Interface,Node(node): add compatibility_tests for config_types (#4857)
  • 2f52f298d Node: Build with hermetic cc toolchains (again) (#4848)

Bugfixes:

Chores:

Refactoring:


Full list of changes (including the ones that are not relevant to GuestOS) can be found on GitHub.

IC-OS Verification

To build and verify the IC-OS GuestOS disk image, after installing curl if necessary (sudo apt install curl), run:

# From https://github.com/dfinity/ic#verifying-releases
curl -fsSL https://raw.githubusercontent.com/dfinity/ic/master/ci/tools/repro-check | python3 - -c 2f52f298de53944209f550774505aa72a1a3ed17 --guestos

The two SHA256 sums printed above from a) the downloaded CDN image and b) the locally built image, must be identical, and must match the SHA256 from the payload of the NNS proposal.

While not required for this NNS proposal, as we are only electing a new GuestOS version here, you have the option to verify the build reproducibility of the HostOS by passing --hostos to the script above instead of --guestos, or the SetupOS by passing --setupos.

Hello there!

We are happy to announce that voting is now open for a new HostOS release.
The NNS proposal is here: IC NNS Proposal 136568.

Here is a summary of the changes since the last HostOS release:

Release Notes for release-2025-05-08_03-21-base (2f52f298de53944209f550774505aa72a1a3ed17)

This release is based on changes since release-2025-05-01_03-23-base (f195ba756bc3bf170a2888699e5e74101fdac6ba).

Please note that some commits may be excluded from this release if they’re not relevant, or not modifying the HostOS image. Additionally, descriptions of some changes might have been slightly modified to fit the release notes format.

To see a full list of commits added since last release, compare the revisions on GitHub.

Features:

  • 8347b794a Interface,Node(node): add compatibility_tests for config_types (#4857)
  • 2f52f298d Node: Build with hermetic cc toolchains (again) (#4848)

Bugfixes:

Chores:


Full list of changes (including the ones that are not relevant to HostOS) can be found on GitHub.

IC-OS Verification

To build and verify the IC-OS HostOS disk image, after installing curl if necessary (sudo apt install curl), run:

# From https://github.com/dfinity/ic#verifying-releases
curl -fsSL https://raw.githubusercontent.com/dfinity/ic/master/ci/tools/repro-check | python3 - -c 2f52f298de53944209f550774505aa72a1a3ed17 --hostos

The two SHA256 sums printed above from a) the downloaded CDN image and b) the locally built image, must be identical, and must match the SHA256 from the payload of the NNS proposal.

While not required for this NNS proposal, as we are only electing a new HostOS version here, you have the option to verify the build reproducibility of the GuestOS by passing --guestos to the script above instead of --hostos, or the SetupOS by passing --setupos.

Proposal 136567 & 136568 - Hamish | CodeGov

Vote: Adopt
Reason: I have successfully run the build script and in my opinion all the commits listed look fine and match their descriptions.

Features:

  • c95a256e8 Execution,Interface,Message Routing: Break out dropped message metrics by kind / context / class (#4966)
    Review: Looks fine + matches description
    Notes: Adds labels to dropped message metrics, allowing the data to be filtered by request/response, inbound/outbound and guaranteed response/best-effort.

  • 8347b794a Interface,Node(node): add compatibility_tests for config_types (#4857)
    Review: Looks fine + matches description
    Notes: Adds a test which checks that the latest code is able to successfully deserialize each of the old IC-OS config versions. It does this by storing a sample config file for each previous version then attempting to deserialize each one in turn.

  • 2f52f298d Node: Build with hermetic cc toolchains (again) (#4848)
    Review: Looks fine + matches description
    Notes: Switches build targets to by default use a patched version of the hermetic_cc_toolchain since this results in deterministic builds.

Bugfixes:

  • 5d2416d7f Node: //ic-os/…/:disk.img targets (#5019)
    Review: Looks fine + matches description
    Notes: Fixes the toolchains/sysimage/toolchain.bzl script to use inputs.extend(..) rather than inputs.append(..) since the value passed in is a list, so using append resulted in a runtime error whereas using extend will add each of the items within the list.

Chores:

  • ec33e0169 Consensus,Interface: ramp up new socks proxy discovery to 50% (#5001)
    Review: Looks fine + matches description
    Notes: Introduces the new NEW_SOCKS_PROXY_ROLLOUT config value and set it to 50, meaning that 50% of the time, an http out call will go via the new API boundary nodes and the other 50% of the time the request will be sent via both the new system and the old system in order to compare the results. In a future PR this config value will be set to 100 so that all requests go via the new system.

  • 0e60d4ed5 Crypto: Rename IBE parameter from context to identity (#5008)
    Review: Looks fine + matches description
    Notes: Simply renames a field used within VetKeys from context to identity, then also extends a VetKey test with an additional check.

  • 4b4bbc41e Execution,Interface: Upgrade Wasmtime to v.32 (#4927)
    Review: Looks fine + matches description
    Notes: Bumps wasmtime from v31.0.0 to v32.0.0 and removes some code patches that are no longer required to make builds deterministic.

  • 9344ddd22 Execution,Interface: Unify message class label values (#4989)
    Review: Looks fine + matches description
    Notes: Updates the label values used within execution environment metrics to differentiate between best-effort and guaranteed response messages so that the values used match those used within the message routing metrics.

  • cf70f0e99 Execution,Interface: Drop best_effort_responses flag (#4763)
    Review: Looks fine + matches description
    Notes: Drops the best_effort_responses feature flag since this feature has now been enabled on all subnets for a while, also implements const fn const_default() for FeatureFlags to support creating new default embedder configs within const contexts (i.e. pub const fn new()).

  • 3490ef2a0 Interface: bump the monorepo version of ic-cdk to 0.18.0 (#5005)
    Review: Looks fine + matches description
    Notes: Bumps the ic-cdk version within the workspace Cargo.toml to v0.18.0, however some packages are still referencing the previous 0.17.1 version.

  • 31ec56b2c Owners: Remove wasmtime stderr patch (#4981)
    Review: Looks fine + matches description
    Notes: Removes a patch of cranelift-codegen-meta which was previously required to make builds deterministic.

  • 9da8cc52d Node: Consolidate and standardize sysimage tools (#4919)
    Review: Looks fine + matches description
    Notes: Moves common logic out of the sysimage tools and into the utils.py script and then modifies the Bazel build file so that each tool is wrapped within a py_binary.

  • ee0cf4ca6 Node: Tidy up IC-OS tmpfs (#4917)
    Review: Looks fine + matches description
    Notes: Modifies the sysimage tools to use the tempfile script for creating temporary directories plus also does some cleaning up of these scripts.

  • 8aa575d86 Node: Update Base Image Refs [2025-05-01-0807] (#4951)
    Review: Looks fine + matches description
    Notes: Updates base IC-OS image references.

Refactoring:

  • 40f3cb626 Interface: Move StateManagerError (#4977)
    Review: Looks fine + matches description
    Notes: Simply moves the ic_interfaces_state_manager::StateManagerError type to the ic-types package.
About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

proposal - [136567, 136568] Cyberowl | CodeGov

Proposals:

136567
136568

Vote: ADOPT

Reason:

The build was successful, and all the commit descriptions matched the changes in the code. We’ve had other image builds fail in the past—this time it was SetupOS, not GuestOS. In previous cases, the decision was to ADOPT, and I’m following that precedent.

Checks:

Hash Match: MATCH, MATCH
2 Urls: MATCH, MATCH
Proposer Check: MATCH, MATCH

Feedback:

NONE

Overall Summary:

Proposals 136567 and 136568 introduce a series of commits enhancing infrastructure, including a new DroppedMessageMetrics trait for better message-dropping accounting, a fully hermetic C/C++ compilation via Zig’s toolchain, and a new SOCKS-proxy implementation for HTTPS outcalls with a 50% traffic split for testing. They also include automated compatibility testing for rs/ic_os/config_types, refactoring of the ic-os image-building toolchain to eliminate brittle tmpfs plumbing, and relocation of StateManagerError and StateManagerResult to ic-types.

Commits Summary

proposal/136567

c95a256e8
Adds DroppedMessageMetrics trait that abstracts “message‑dropped” accounting and is threaded through canister‑queue, subnet‑queue, replicated‑state and state‑machine. time_out_messages, shed_largest_message, and enforce_best_effort_message_limit stop returning the number/bytes of discarded messages and instead receive an &impl DroppedMessageMetrics. Prometheus counters that were single‑valued IntCounter become labelled IntCounterVec and are split along three new label dimensions—kind (request/response), context (inbound/outbound) and class (guaranteed‑response/best‑effort).

8347b794a
Automated compatibility‑test pipeline for the rs/ic_os/config_types crate.
A new Rust workspace module compatibility_tests contains a small library plus a CLI generate_config_types_fixture that serialises the current HostOSConfig schema into version‑tagged JSON fixtures and adds tests that deserialise every historical fixture to guarantee backward compatibility.
CI is extended with a generate-config-fixtures job (both in the template and the rendered workflow) that runs on PRs touching rs/ic_os/config_types/**; it regenerates fixtures, stages them, and—if differences exist—pushes an “Automatically updated config type fixtures” commit back to the PR and fails the job so the author is forced either to bump CONFIG_VERSION or accept the auto‑update. Every schema change is now caught at review time, ensuring nodes can always read older configs and that fixture drift is surfaced automatically.

2f52f298d
Makee C/C++ compilation fully hermetic via Zig’s “hermetic cc toolchain”. hermetic_cc_toolchain Bazel module, registers Zig‑based toolchains for Linux, macOS and WASM, and adds a global --hermetic_cc flag plus use_hermetic_cc constraint so individual targets can opt out when they still require system compilers.

5d2416d7f
Matches description fix: //ic-os/.../:disk.img targets .

ec33e0169
Begins rolling out a new SOCKS‑proxy implementation for HTTPS outcalls and wires in a temporary feature‑flag to split live traffic between the “old” and “new” paths.
A randomised helper should_only_use_new_socks_proxy() returns true for ≈50 % of calls NEW_SOCKS_PROXY_ROLLOUT = 50, so half the requests bypass the legacy socks_client and are routed exclusively through the new do_https_outcall_socks_proxy code; in the other half both proxies run and their results are compared (with warnings logged on divergence).

0e60d4ed5
Fix matches description Rename IBE parameter from context to identity .

4b4bbc41e
Matches description Upgrade Wasmtime to v.32.

9344ddd22
Matches description Unify message class label values .

cf70f0e99
Finalizes the rollout of “best‑effort response” calls by deleting the BestEffortResponsesFeature gate, hard‑coding the always‑on setting in every configuration path, and stripping out all conditional logic, flags, and test cases that previously guarded the feature.

3490ef2a0
Bumps the default ic‑cdk & ic‑cdk‑macros crates from 0.17.x → 0.18.0 everywhere.

31ec56b2c
Removes bazel/cranelift-codegen-meta.patch

9da8cc52d
Refactors the ic-os image-building toolchain by deduplicating generic Starlark helpers, converting Python helpers into py_binary targets. Potential risks include transitive label churn, verity_sign binary compatibility, and dependency renames, which require thorough checks and CI validation before merging.

ee0cf4ca6
ICOS_TMPDIR refactor by eliminating brittle tmpfs plumbing, enabling helpers to use tempfile.mkdtemp() and centralizing tmpfs mounts in proc_wrapper.sh for hermetic, self-contained builds. Removes obsolete flags, attrs, and the unused inject_files rule, while slimming utils.py to ~80 LOC and improving cleanup with purge_podman() and safer defaults.

8aa575d86
Update base image refs.

40f3cb626
Relocates StateManagerError and StateManagerResult from ic_interfaces_state_manager to a new state_manager.rs module in ic-types.

proposal/136568

8347b794a
Same as proposal 136567.

2f52f298d
Same as proposal 136567.

5d2416d7f
Same as proposal 136567.

9da8cc52d
Same as proposal 136567.

ee0cf4ca6
Same as proposal 136567.

8aa575d86
Same as proposal 136567.

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

Proposals 136567 & 136568 | Tim - CodeGov

Vote: Adopt

Reason: Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound. The HostOS commits (proposal 136568) are a subset of the GuestOS commits (proposal 136567). I’ve reviewed commits for Consensus, Crypto, Interface and Node as detailed below.

Review

Features:

[8347b794a]
Adds new crate config_types_compatibility_lib. As described in the commit notes, this contains tests to ensure backwards compatibility of the config_types library. If config objects have changed then the pull request will fail and the config_types version will need to be updated.

[2f52f298d]
Makes use of hermetic_cc_toolchain, which is a self-contained set of tools for compiling C/C++ programs on top of the Zig compiler.

Bugfixes:

[5d2416d7f]
Changes inputs.append(...) to inputs.extend(...) in sysimage/toolchain.bzl in order to fix an error in which this expression produced a list rather than a file object.

Chores:

[ec33e0169]
Extends the SOCKS proxy dark launch for API boundary nodes so that now 50% of http outcall requests will go via just the new SOCKS proxy instead of comparing the results between the old and new SOCKS proxy and returning the result from the old SOCKS proxy as all requests are currently doing.

[0e60d4ed5]
Renames a parameter in IBECiphertext::encrypt from context to identity in order to prevent confusion with a similarly named value elsewhere.

[3490ef2a0]
Updates the monorepo version of ic-cdk to 0.18.0 and maintains a distinction between ic-cdk 0.17.1 and ic-cdk 0.18.0 (and similarly for related crates).

[9da8cc52d]
Renames sysimage container_utils to utils and reorganises several Python functions in toolchains/sysimage so as to enable increased consistency amongst the related Bazel rules.

[ee0cf4ca6]
Adapts several of the Python build scripts in toolchains/sysimage/ to create a new temporary directory rather than relying on an external environmental variable. Several related clean-ups to IC-OS build code including removal of various unused functions

[8aa575d86]
Updates Boundary GuestOS, GuestOS, HostOS and SetupOS base image container references.

Refactoring:

[40f3cb626]
Moves StateManagerError and StateManagerResult types from rs/interfaces/state_manager/src/lib.rs to rs/types/types/src/state_manager.rs.

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neurons’ Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralisation of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

Proposal: 136567 & 136568 - Manvick | ZenithCode

Summary:

  1. Build Hash: I am not able to build, Adopting the proposal since others were able to build. Will try to run the build again and will upload the new screenshots if the build is successful.
  2. Summary: The release notes matches the code changes
  3. Vote: I vote to adopt the proposal

Commits

Features:

  • c95a256e8 Execution,Interface,Message Routing: Break out dropped message metrics by kind / context / class (#4966)
    Review: Matches description + changes are appropriate
    Notes: This commit introduces detailed metrics for dropped messages broken down by a few parameters such as kind, context, and class improving observability. Tests have been added and updated accordingly.

  • 8347b794a Interface,Node(node): add compatibility_tests for config_types (#4857)
    Review: Matches description + changes are appropriate
    Notes: This commit adds a structured testing framework to enable backward compatibility of the config_type module. This allows newer versions of the code to deserialize older HostOS config files. Any config structure changes without a version bump will trigger failures preventing silent breakage during upgrades.

  • 2f52f298d Node: Build with hermetic cc toolchains (again) (#4848)
    Review: Matches description + changes are appropriate
    Notes: This commit adds hermetic zig cc toolchains again to ensure reproducible sandboxed builds across platforms. Sharing Zig’s compilation cache and patches improves performance by better handling debug symbols and target naming.

Bugfixes:

  • 5d2416d7f Node: //ic-os/…/:disk.img targets (#5019)
    Review: Matches description + changes are appropriate
    Notes: This commit fixes a Bazel build error in the disk.img generation for ic-os targets by replacing a faulty append() call with extend()

Chores:

  • ec33e0169 Consensus,Interface: ramp up new socks proxy discovery to 50% (#5001)
    Review: Matches description + changes are appropriate
    Notes: This commit increases the rollout of the SOCKS proxy based http outcall to 50% of requests chosen randomly per invocation, the other 50% will do both the old calls and the new ones returning the old ones but this canary rollout is good for making sure that the new system is reliable.

  • 0e60d4ed5 Crypto: Rename IBE parameter from context to identity (#5008)
    Review: Matches description + changes are appropriate
    Notes: This commit renames parameter IBE to identity and updates documentation accordingly

  • 4b4bbc41e Execution,Interface: Upgrade Wasmtime to v.32 (#4927)
    Review: Matches description + changes are appropriate
    Notes: bumps Wasmtime version to v.32, simplifying Bazel patching and ensuring compatibility with recent updates.

  • 9344ddd22 Execution,Interface: Unify message class label values (#4989)
    Review: Matches description + changes are appropriate
    Notes: This commit cleans up and standardizes Prometheus metric labels for message class types using types such as ‘best-effort’ and ‘guaranteed response’ across all components.

  • cf70f0e99 Execution,Interface: Drop best_effort_responses flag (#4763)
    Review: Matches description + changes are appropriate
    Notes: this commit enables best effort messaging platform-wide by removing the rollout mechanism and associated logic.

  • 3490ef2a0 Interface: bump the monorepo version of ic-cdk to 0.18.0 (#5005)
    Review: Matches description + changes are appropriate
    Notes: upgrades version of ic-cdk to 1.18.0 across the system and updates .toml and .bzel files accordingly.

  • 31ec56b2c Owners: Remove wasmtime stderr patch (#4981)
    Review: Matches description + changes are appropriate
    Notes: This commit removes the stderr patch that was used to get deterministic output from the wasmtime build process since bazel no longer tracks stderr.

  • 9da8cc52d Node: Consolidate and standardize sysimage tools (#4919)
    Review: Matches description + changes are appropriate
    Notes: This commit cleans up and standardizes the sysimage toolchain logic by consolidating interfaces, wrapping each tool as a py_binary and isolating logic into utils.py.

  • ee0cf4ca6 Node: Tidy up IC-OS tmpfs (#4917)
    Review: Matches description + changes are appropriate
    Notes: This commit cleans up and replaces tempdir and tmpfs, temporary files, setup with standardized logic using python’s tempfile module.

  • 8aa575d86 Node: Update Base Image Refs [2025-05-01-0807] (#4951)
    Review: Matches description + changes are appropriate
    Note: Automated patch. Updates the base image reference for various IC OS components like boundary-guestos, guesos(dev) etcetera.

Refactoring:

  • 40f3cb626 Interface: Move StateManagerError (#4977)
    Review: Matches description + changes are appropriate
    Notes: This commit relocated the StateManagerError and StateManagerResult types from the ic-interfaces-state-manager crate into the shared ic-types crate, this improves modularity allowing consistent imports and enables cleaner error handling.

Proposal 136567 & 136568 | Yuvika - Zentih Code

Summary

  1. Vote: Adopt (since others are able to build)
  2. Hash: Having some issues building. Will try again and update the post if successful.
  3. Reasons to adopt: Release notes match the commits.

Commits

Features:

  • c95a256e8
    Summary: Break out dropped message metrics by kind / context / class.
    Notes: To improve tracking for dropped message metrics, add labels such as kind, context, and class.
    Review: The description matches the code changes.

  • 8347b794a
    Summary: add compatibility_tests for config_types.
    Notes: Add config_types_compatibility_lib module to ensure backward compatibility of config_types library. This test will ensure that new versions can deserialize older configurations.
    Review: The description matches the code changes.

  • 2f52f298d
    Summary: Build with hermetic cc toolchains.
    Notes: Use the patched version of hermetic_cc_toolchain as a default build target to improve build performance.
    Review: The description matches the code changes.

Bugfixes:

  • 5d2416d7f
    Summary: //ic-os/…/:disk.img targets.
    Notes: Replace inputs.append() to inputs.extend() in toolchains/sysimage/toolchain.bzl. Since it was expecting a file object instead of a list, which was causing an error.
    Review: The description matches the code changes.

Chores:

  • ec33e0169
    Summary: ramp up new socks proxy discovery to 50%.
    Notes: Add a new config parameter NEW_SOCKS_PROXY_ROLLOUT and set it to 50.
    This ensures that 50% of the time, the HTTP outcall requests go via the new socks proxy and the remaining 50% go via both old and new socks proxy to compare results. The plan is to update this value to 100 in the future, so that all results go via the new socks proxy.
    Review: The description matches the code changes.

  • 0e60d4ed5
    Summary: Rename IBE parameter from context to identity.
    Notes: Rename the field context to identity in the VetKey protocol to make the names clearer. Update the comments to reflect the same.
    Review: The description matches the code changes.

  • 4b4bbc41e
    Summary: Upgrade Wasmtime to v.32.
    Notes: Upgrade Wasmtime v.31.0.0 to v.32.0.0 and resolve Bazel build determinism and cache issues.
    Review: The description matches the code changes.

  • 9344ddd22
    Summary: Unify message class label values.
    Notes: Update LABEL_VALUE_BEST_EFFORT to best-effort and LABEL_VALUE_GUARANTEED_RESPONSE to guaranteed response to use the same label values across message routing and execution metrics.
    Review: The description matches the code changes.

  • cf70f0e99
    Summary: Drop best_effort_responses flag.
    Notes: Remove the best_effort_responses flag, BestEffortResponsesFeature type and restore various const functions of EmbedderConfig since the best-effort messages feature was rolled out.
    Review: The description matches the code changes.

  • 3490ef2a0
    Summary: bump the monorepo version of ic-cdk to 0.18.0.
    Notes: Upgrade ic-cdk version to 0.18.0.
    Review: The description matches the code changes.

  • 31ec56b2c
    Summary: Remove wasmtime stderr patch.
    Notes: Remove cranelift-codegen-meta patch, which was used to make builds deterministic. It is no longer needed since Bazel’s rules_rust build output doesn’t track stderr.
    Review: The description matches the code changes.

  • 9da8cc52d
    Summary: Consolidate and standardize sysimage tools.
    Notes: Refactor Python functions in toolchains/sysimage to ensure consistency over the Bazel rules and rename container_utils to utils
    under toolchains/sysimage.
    Review: The description matches the code changes.

  • ee0cf4ca6
    Summary: Tidy up IC-OS tmpfs.
    Notes: Remove unused bazel targets, code clean up (remove unused methods, etc.), and instead of relying on external environment variables, refactor toolchains/sysimage/ to create a new temporary directory.
    Review: The description matches the code changes.

  • 8aa575d86
    Summary: Update Base Image Refs [2025-05-01-0807].
    Notes: Update the base image references used for IC OS.
    Review: The description matches the code changes.

Refactoring:

  • 40f3cb626
    Summary: Move StateManagerError.
    Notes: Move StateManagementError from
    ic-interfaces-state-manager to ic-types to have a clean separation between the two.
    Review: The description matches the code changes.

Proposal 136567 & 136568 - Ipsita | ZenithCode

Summary

  1. Vote: Adopt
  2. Hash: All the hashes matches
  3. Reason to Adopt The release notes match the commits and the code changes.

Features:

  • c95a256e8 Execution,Interface,Message Routing: Break out dropped message metrics by kind / context / class (#4966)
    Notes: Updates the DroppedMessageMetrics to tag timed_out_messages_total, shed_messages_total, and shed_message_bytes_total by adding kind, context, and class labels to enable more detailed monitoring.
    Review: Code changes look good and match release notes.
  • 8347b794a Interface,Node(node): add compatibility_tests for config_types (#4857)
    Notes: Added the compatibility_tests module to provide backward compatibility for config_types using a system of fixtures to detect config schema changes and preserve historical HostOS config deserialization capabilities.
    Review: Code changes look good and match release notes.
  • 2f52f298d Node: Build with hermetic cc toolchains (again) (#4848)
    Notes: This commit reintroduces hermetic C/C++ toolchains by sharing the Zig compiler cache across Bazel targets to enhance build efficiency, and modifies rules_rust and hermetic_cc_toolchain to strip only debug info while preserving symbols.
    Review: Code changes look good and match release notes.

Bugfixes:

  • 5d2416d7f Node: //ic-os/…/:disk.img targets (#5019)
    Notes: Bazel build error is fixed by replacing inputs.append(ctx.files.layout) with inputs.extend(ctx.files.layout)
    Review: Code changes look good and match release notes.

Chores:

  • ec33e0169 Consensus,Interface: ramp up new socks proxy discovery to 50% (#5001)
    Notes: This commit implements a 50% rollout of the new SOCKS proxy using a randomized flag (NEW_SOCKS_PROXY_ROLLOUT) to route HTTP outcalls either via the new proxy or both old and new for comparison, returning the old proxy’s result and reduces MAX_SOCKS_PROXY_TRIES from 3 to 2.
    Review: Code changes look good and match release notes.
  • 0e60d4ed5 Crypto: Rename IBE parameter from context to identity (#5008)
    Notes: Context parameter is renamed to identity in IBECiphertext::encrypt, related functions, and tests to clarify its role in IBE and avoid confusion with VetKey’s context, while updating doc comments to explain the mapping to VetKey’s input.
    Review: Code changes look good and match release notes.
  • 4b4bbc41e Execution,Interface: Upgrade Wasmtime to v.32 (#4927)
    Notes: Update to Wasmtime v0.32 from v0.31 to remove unnecessary Bazel patches due to upstream refactors in Cranelift codegen and the remaining patches were revised to adapt to the new srcgen crate structure and eliminate generated file paths.
    Review: Code changes look good and match release notes.
  • 9344ddd22 Execution,Interface: Unify message class label values (#4989)
    Notes: This commit updates the class label values in metrics.rs by updating “best_effort” to “best-effort” and “guaranteed_response” to “guaranteed response,” with corresponding adjustments in call_tree_tests.rs for consistency in test assertions.
    Review: Code changes look good and match release notes.
  • cf70f0e99 Execution,Interface: Drop best_effort_responses flag (#4763)
    Notes: The best_effort_responses flag and the BestEffortResponsesFeature type are removed to restore the original constant functions in EmbedderConfig
  • 3490ef2a0 Interface: bump the monorepo version of ic-cdk to 0.18.0 (#5005)
    Notes: The ic-cdk and ic-cdk-macros dependencies are updated to version 0.18.0 from 0.17.0
    Review: Code changes look good and match release notes.
  • 31ec56b2c Owners: Remove wasmtime stderr patch (#4981)
    Notes: The cranelift-codegen-meta.patch, which was previously added to suppress wasmtime’s stderr output for consistent builds, has been removed since Bazel’s updated rules_rust no longer rely on stderr for build outputs.
    Review: Code changes look good and match release notes.
  • 9da8cc52d Node: Consolidate and standardize sysimage tools (#4919)
    Notes: This commit consolidates all sysimage tools under a unified Bazel rule structure wrapping py_binary to ensure consistent formatting and build behavior across the codebase.
    Review: Code changes look good and match release notes.
  • ee0cf4ca6 Node: Tidy up IC-OS tmpfs (#4917)
    Notes: This commit streamlines the IC-OS build process by removing unused Bazel targets, simplifying tmpdir handling, and introducing a temporary shim for on-demand tmpfs to enhance configuration consistency.
    Review: Code changes look good and match release notes.
  • 8aa575d86 Node: Update Base Image Refs [2025-05-01-0807] (#4951)
    Notes: Updates the base container image references to newer versions to have secure container images.
    Review: Code changes look good and match release notes.

Refactoring:

  • 40f3cb626 Interface: Move StateManagerError (#4977)
    Notes: Refactors the codebase by moving StateManagerError and StateManagerResult from ic-interfaces-state-manager to ic-types to enable broader reuse of error types without cyclic dependencies and allows cleaner interface separation.
    Review: Code changes look good and match release notes.

Proposal 136567 – Zane | CodeGov

Vote: ADOPT
Reason: Build completes successfully, both hashes and reviewed commits match their descriptions, so I’ve voted to adopt.

Features:

c95a256e8 Modified timed_out_messages_total, shed_messages_total and shed_message_bytes_total metrics to also include kind / context / class labels. The logic used to observe them has been slightly refactored, instead of being called directly inside execute_round, both time_out_messages, enforce_best_effort_message_limit methods’s signatures have been updated to take in a reference to an object that implements the DroppedMessageMetrics trait as an additional parameter. DroppedMessageMetrics requires the implementor to specify observe_timed_out_message, observe_shed_message methods, which are then called in time_out_messages and enforce_best_effort_message_limit respectively to update timed out and shed message metrics with the proper labels. As a result of this change there is no longer need for the aforementioned methods to return anything other than eventual lost cycles associated to the messages.

Bugfixes:

5d2416d7f Fixed error in _disk_image_no_tar_impl function of toolchains/sysimage/toolchain.bzl, by replacing inputs.append with inputs.extend. append adds its argument as a single element to the list, since ctx.files.layout is a list too, it’d result in a nested list structure and cause an error. extend iterates over the argument and adds each element individually.

Chores:

ec33e0169 Reduced maximum number connection attempts to a socks proxy from 3 to 2 and modified https_outcall implementation for the canister HTTP service to randomly perform the http request either by relying only on the new socks proxy or using the previous behaviour of using both old/new proxies and the comparing the results. This is done by calling should_only_use_new_socks_proxy method, which generates a random number between 0 ands 100 and returns whether it is less than the NEW_SOCKS_PROXY_ROLLOUT constant. The constant is currently set so there is a 50% chance.

0e60d4ed5 Renamed few variables/arguments in ic-vetkd-utils crate to identity.

4b4bbc41e Bumped wasmtime from v31 to v32 and removed custom patches that were needed to ensure deterministic behaviour.

9344ddd22 Renamed message class label values in rs/execution_environment/src/metrics.rs to match the same scheme used in other parts of the stack.

cf70f0e99 Deprecated best_effort_responses feature flag, removed associated type, i.e BestEffortResponsesFeature, tests and logic used to determine whether the feature was supported by the running subnet and restored compile time evaluation for embedders config.

3490ef2a0 Bumped the monorepo’s workspace version of ic-cdk to 0.18.0 and opt out of it for some packages by explicitly configuring them to use 0.17.1 instead.

31ec56b2c Removed patch for cranelift-codegen-meta.

8aa575d86 Updated ICOS image refs.

Refactoring:

40f3cb626 Moved StateManagerError and StateManagerResult type definitions from rs/interfaces/state_manager/src/lib.rs to rs/types/types/src/state_manager.rs. Updated imports accordingly.

Proposal 136568 – Zane | CodeGov

Vote: ADOPT
Reason: Build completes successfully, both hashes and reviewed commits match their descriptions, so I’ve voted to adopt.

1 Like