Summary

Frontend Canister Upgrade

This release moves identity-number recovery to the recovery page, adds a hold-to-confirm step before entering a new-device code, and refactors the sign-in/sign-up disambiguation flows. Opening identity management from the sign-in screen now lands you there already signed in. Open Cloud joins the dapps explorer and translations have been updated.

What's Changed

Since proposal-frontend-142132

  • fix(fe): remap CLI delegation origin to legacy *.ic0.app domain (#4009)
  • chore(fe): update translations (de, es, fr, id, it, nl, pl, ru, uk, ur) (#4012)
  • feat(be,fe): generic stale-while-revalidate single-flight cache (#3995)
  • refactor(fe): make AuthWizard a black box (#3991)
  • feat(fe): add Open Cloud to the dapps explorer (#4008)
  • fix(fe): make support-request link one translatable sentence (#4007)
  • feat(fe): require hold-to-confirm before entering new-device code (#3958)
  • fix(fe): hand off auth to manage tab via postMessage from authorize popover (#3929)
  • refactor(be,fe): explicit DoH fallback for email recovery; de-duplicate wizards (#3992)
  • feat(fe): update icons across recovery surfaces (#4001)
  • fix(fe): Update CLI snippet to new 'icp identity link web' syntax (#3994)
  • feat(fe): add identity-number recovery option on /recovery (#3983)
  • feat(scripts): add create-staging for provisioning new staging envs (#3985)
  • feat(be,fe): instrument DoH failure cause for the recovery funnel (#3990)
  • chore(fe): update translations (de, es, fr, id, it, nl, pl, ru, uk, ur) (#3964)

Full release notes

Wasm Verification

To build the wasm modules yourself and verify their hashes, run the following commands from the root of the Internet Identity repository:

git pull  # to ensure you have the latest changes.
git checkout 9ae51005f9ab8afe26366ad45c8ea706b6ce8d3c
./scripts/verify-hash --iife-hash 7f9e8557d25544dc00e72afc0f0c677e9823d66d07f8e65b671c102a44170c35

Frontend Argument Verification

Run the following command to verify the frontend upgrade argument hash:

didc encode -d ./src/internet_identity_frontend/internet_identity_frontend.did -t '(InternetIdentityFrontendInit)' '(record {
  backend_canister_id = principal "rdmx6-jaaaa-aaaaa-aaadq-cai";
  backend_origin = "https://backend.id.ai";
  related_origins = opt vec {
    "https://id.ai";
    "https://identity.ic0.app";
    "https://identity.internetcomputer.org";
    "https://identity.icp0.io";
    "https://identity.icp.net";
  };
  analytics_config = opt opt variant {
    Plausible = record {
      domain = opt "identity.internetcomputer.org";
    }
  };
  featured_dashboard_apps = opt vec {
    "https://caffeine.ai";
    "https://oisy.com";
    "https://oc.app";
  };
})' | xxd -r -p | sha256sum

The output should match the argument hash.

Original NNS proposal

Payload

Proposal to execute nervous system function:

Nervous system function:

NervousSystemFunction { id: 1000, name: "Vote on NNS proposal", description: Some( "Vote yes to a given NNS proposal. If there is no strict majority, vote for the majority outcome.", ), function_type: Some( GenericNervousSystemFunction( GenericNervousSystemFunction { target_canister_id: Some( tsbvt-pyaaa-aaaar-qafva-cai, ), target_method_name: Some( "approve_proposal", ), validator_canister_id: Some( tsbvt-pyaaa-aaaar-qafva-cai, ), validator_method_name: Some( "approve_proposal_validate", ), topic: Some( ApplicationBusinessLogic, ), }, ), ), }

Payload sha256:

7d63a453f18c0845b094ea34e8692b7e4ea9f48a2f8dd9d9bc97651e614a9b9c

Payload:

142270

Overview