Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
552a923
chore: Bump to miden v0.15
zeljkoX Jun 11, 2026
40e857e
chore: Improvements
zeljkoX Jun 12, 2026
43509a4
chore: Improvements
zeljkoX Jun 12, 2026
a0411ef
chore: Add migration to clean pre 0.15 data
zeljkoX Jun 14, 2026
62139ea
chore: migrate ts
zeljkoX Jun 14, 2026
4a71970
chore: Intitial upstream guardian contracts support
zeljkoX Jun 16, 2026
997225e
chore: Fix Miden tx kernel commitment
zeljkoX Jun 17, 2026
6862aab
chore: Fixes
zeljkoX Jun 17, 2026
3b6d867
chore: Improvements
zeljkoX Jun 17, 2026
adb5679
chore: Improvements
zeljkoX Jun 17, 2026
5ffc2b1
fix(multisig-client): fall back to toFelts() in wordElementToBigInt (…
WiktorStarczewski Jun 18, 2026
d44fecb
chore: Improvements
zeljkoX Jun 18, 2026
5aeafac
chore: Improvements
zeljkoX Jun 18, 2026
a0390c5
chore: Bump miden packages to v15 in examples
zeljkoX Jun 18, 2026
323d98d
chore: Contidionally run table clear migration only for miden
zeljkoX Jun 18, 2026
1d66a0f
chore: smoke-web fixes
zeljkoX Jun 18, 2026
afbeb69
Merge branch 'main' into miden-v0-15-upgrade
zeljkoX Jun 18, 2026
401222d
chore: Improvements
zeljkoX Jun 18, 2026
915073f
chore: PR suggestions
zeljkoX Jun 18, 2026
b922648
chore: PR suggestions
zeljkoX Jun 19, 2026
51beb86
chore: Suggestions
zeljkoX Jun 19, 2026
e5e9789
chore: Apply PR suggestion
zeljkoX Jun 19, 2026
292f8ba
feat(server): generate OpenAPI spec with utoipa (#241) (#271)
haseebrabbani Jun 11, 2026
146a9f5
feat(server): add native Prometheus metrics endpoint (#283)
haseebrabbani Jun 16, 2026
a84d1ff
chore: Add docker-publish GH workflow release trigger and update docs…
zeljkoX Jun 17, 2026
8a8c44a
Merge branch 'miden-v0-15-upgrade' into upstream-guardian-contract
zeljkoX Jun 19, 2026
0c78874
fix: Recompute auth_tx procedure root for miden-sdk 0.15
zeljkoX Jun 19, 2026
910f536
chore: Improvements
zeljkoX Jun 20, 2026
cfe69f4
chore: Improvements
zeljkoX Jun 22, 2026
6f9cc29
chore: Update Cargo.lock
zeljkoX Jun 26, 2026
6a11a4c
Merge branch 'main' into upstream-guardian-contract
zeljkoX Jul 13, 2026
1922d78
chore: Improvements
zeljkoX Jul 13, 2026
121331c
chore: ci report fixes
zeljkoX Jul 14, 2026
2e32b02
chore: Improvements
zeljkoX Jul 15, 2026
6a197c5
chore: Improvements
zeljkoX Jul 15, 2026
1bf54ac
chore: web examples improvements
zeljkoX Jul 15, 2026
d08bca4
chore: PR suggestions
zeljkoX Jul 15, 2026
df657d4
feat: upgrade miden dependencies to v0.16.x
zeljkoX Jul 21, 2026
cfa3b6b
chore: Improvements
zeljkoX Jul 21, 2026
f18b964
chore: Remove spec files
zeljkoX Jul 21, 2026
cccd0b3
Merge branch 'main' into 329-upgrade-miden-016
zeljkoX Jul 21, 2026
0739474
feat: merge upstream guardian contract (#296) onto miden 0.16
zeljkoX Jul 21, 2026
81955b1
fix: port stranded switch_guardian e2e script to @transaction_script
zeljkoX Jul 22, 2026
3f33567
feat: warn when growing the signer set dilutes procedure threshold ov…
zeljkoX Jul 22, 2026
397392c
Merge branch 'main' into upstream-contracts-016alpha
zeljkoX Jul 22, 2026
c7016ce
chore: Apply PR suggestions
zeljkoX Jul 22, 2026
9a0696d
chore: PR suggestions
zeljkoX Jul 22, 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
6 changes: 3 additions & 3 deletions .agents/skills/smoke-test-rust-multisig-sdk/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ Record the returned commitment — you'll paste it into the demo's "GUARDIAN com
2. Declare the published crates as registry dependencies pinned to the release under test:
```toml
[dependencies]
miden-multisig-client = "0.15.1"
guardian-client = "0.15.1"
miden-client = "0.15.0"
miden-multisig-client = "0.16.0"
guardian-client = "0.16.0"
miden-client = "=0.16.0-alpha.1"
tokio = { version = "1", features = ["full"] }
```
3. Port or copy the exact menu/action code from `examples/demo/src/` into that scratch project. Keep the prompts identical so the workflows in `references/workflow-matrix.md` still apply verbatim.
Expand Down
6 changes: 3 additions & 3 deletions .agents/skills/smoke-test-ts-multisig-sdk/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ If the commitment does not round-trip into `status().multisig.guardianPubkey` af
```json
{
"dependencies": {
"@openzeppelin/miden-multisig-client": "0.15.1",
"@openzeppelin/guardian-client": "0.15.1",
"@miden-sdk/miden-sdk": "0.15.0"
"@openzeppelin/miden-multisig-client": "0.16.0",
"@openzeppelin/guardian-client": "0.16.0",
"@miden-sdk/miden-sdk": "0.16.0-alpha.1"
}
}
```
Expand Down
139 changes: 134 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,13 @@ jobs:

- name: Checkout code
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
persist-credentials: false

- name: Install Rust
uses: dtolnay/rust-toolchain@351f82a4dc29e4159746a068ed925da17341219f # 1.89.0
with:
toolchain: 1.93.0
toolchain: 1.96.1
components: llvm-tools-preview

- name: Install system dependencies
Expand Down Expand Up @@ -82,6 +84,122 @@ jobs:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}

contract-behavior:
# MockChain behavior suite for the upstream guarded-multisig component
# (crates/contracts/tests/) plus the multisig client's integration tests.
# These live in tests/ directories, which the coverage job's `--lib` run
# never executes — without this job the contract authentication paths
# (update signers, per-procedure thresholds, guardian rotation, replay
# protection) have no CI coverage at all.
name: Contract Behavior Tests
runs-on: ubuntu-latest
if: github.repository_owner == 'OpenZeppelin'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@95d9a5deda9de15063e7595e9719c11c38c90ae2 # v2.13.2
with:
egress-policy: audit

- name: Checkout code
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
persist-credentials: false

- name: Install Rust
uses: dtolnay/rust-toolchain@351f82a4dc29e4159746a068ed925da17341219f # 1.89.0
with:
toolchain: 1.96.1

Comment on lines +108 to +112

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Use Rust 1.96.1 in both new CI jobs.

The workspace requires Rust 1.96.1, but both jobs install 1.93.0; Cargo will reject workspace packages before the contract and TypeScript gates execute.

  • .github/workflows/ci.yml#L108-L112: change contract-behavior to toolchain: 1.96.1.
  • .github/workflows/ci.yml#L152-L155: change ts-sdk to toolchain: 1.96.1.

As per coding guidelines, “Keep crate and package versions aligned with the active Miden 0.16 pre-release dependency line.”

📍 Affects 1 file
  • .github/workflows/ci.yml#L108-L112 (this comment)
  • .github/workflows/ci.yml#L152-L155
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml around lines 108 - 112, Update the Install Rust
steps for both contract-behavior (.github/workflows/ci.yml:108-112) and ts-sdk
(.github/workflows/ci.yml:152-155) to use toolchain 1.96.1 instead of 1.93.0,
keeping the toolchain versions aligned with the workspace requirements.

Source: Coding guidelines

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libpq-dev

- name: Cache cargo
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
~/.cargo/registry/index
~/.cargo/git
target
key: ${{ runner.os }}-cargo-contracts-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-contracts-

- name: Run contract behavior and SDK integration tests
run: cargo test -p miden-confidential-contracts -p miden-multisig-client --all-targets

ts-sdk:
# Cross-SDK parity gates for the TypeScript multisig client. The vitest
# suite pins PROCEDURE_ROOTS against the Rust `procedure_roots` example
# output and the vendored MASM against its generated constant; the
# Playwright run is the byte-for-byte account-determinism gate (TS-built
# account id/commitment == Rust builder). A miden-standards or
# @miden-sdk/miden-sdk bump that shifts procedure roots or storage layout
# fails here instead of stranding deployed accounts silently.
name: TypeScript SDK Tests
runs-on: ubuntu-latest
if: github.repository_owner == 'OpenZeppelin'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@95d9a5deda9de15063e7595e9719c11c38c90ae2 # v2.13.2
with:
egress-policy: audit

- name: Checkout code
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
persist-credentials: false

- name: Install Rust
uses: dtolnay/rust-toolchain@351f82a4dc29e4159746a068ed925da17341219f # 1.89.0
with:
toolchain: 1.96.1

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libpq-dev

- name: Cache cargo
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
~/.cargo/registry/index
~/.cargo/git
target
key: ${{ runner.os }}-cargo-ts-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-ts-

# The vitest parity test shells out to this example; prebuilding keeps
# the test itself fast and its failure modes distinct from build errors.
- name: Prebuild procedure_roots example
run: cargo build --example procedure_roots -p miden-multisig-client

# miden-multisig-client consumes guardian-client via a `file:` link, so
# its `dist` (gitignored) must be built before the linked install below
# can resolve the client's types and runtime.
- name: Build linked guardian-client
working-directory: packages/guardian-client
run: npm ci && npm run build

# The runner's preinstalled Node (>= 18, per the package engines field)
# is used directly to avoid adding an unpinned action.
- name: Install package dependencies
working-directory: packages/miden-multisig-client
run: npm ci

- name: Run vitest parity and unit tests
working-directory: packages/miden-multisig-client
run: npm test

- name: Build package
working-directory: packages/miden-multisig-client
run: npm run build

# channel 'chrome' in playwright.config.ts uses the runner's system
# Chrome; no browser download required.
- name: Run browser determinism gate
working-directory: packages/miden-multisig-client
run: npm run test:browser

clippy:
name: Clippy
runs-on: ubuntu-latest
Expand All @@ -94,11 +212,13 @@ jobs:

- name: Checkout code
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
persist-credentials: false

- name: Install Rust
uses: dtolnay/rust-toolchain@351f82a4dc29e4159746a068ed925da17341219f # 1.89.0
with:
toolchain: 1.93.0
toolchain: 1.96.1
components: clippy

- name: Install system dependencies
Expand All @@ -118,6 +238,9 @@ jobs:
- name: Build (generate protobuf descriptors)
run: cargo build --package guardian-server

- name: Check shared crate with production features
run: cargo check --package guardian-shared --lib

- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings

Expand All @@ -133,11 +256,13 @@ jobs:

- name: Checkout code
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
persist-credentials: false

- name: Install Rust
uses: dtolnay/rust-toolchain@351f82a4dc29e4159746a068ed925da17341219f # 1.89.0
with:
toolchain: 1.93.0
toolchain: 1.96.1
components: rustfmt

- name: Check formatting
Expand All @@ -155,11 +280,13 @@ jobs:

- name: Checkout code
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
persist-credentials: false

- name: Install Rust
uses: dtolnay/rust-toolchain@351f82a4dc29e4159746a068ed925da17341219f # 1.89.0
with:
toolchain: 1.93.0
toolchain: 1.96.1

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libpq-dev
Expand Down Expand Up @@ -190,11 +317,13 @@ jobs:

- name: Checkout code
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
persist-credentials: false

- name: Install Rust
uses: dtolnay/rust-toolchain@351f82a4dc29e4159746a068ed925da17341219f # 1.89.0
with:
toolchain: 1.93.0
toolchain: 1.96.1

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libpq-dev
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ When docs are not updated after a visible behavior change, note why in the final
## 11) Versioning Policy

- Keep crate/package versions aligned with the active Miden dependency line.
- Current baseline is Miden `0.14.x`; changes must remain compatible with that line unless migration is explicit.
- Current baseline is the Miden `0.16` pre-release line (exact-pinned alphas) across the Rust workspace and `packages/miden-multisig-client`. Changes must remain compatible with that line unless migration is explicit.
- If a change requires moving to a new Miden line, treat it as a coordinated release task:
1. Update workspace/dependency constraints.
2. Update both multisig SDKs and both base clients as needed.
Expand Down
Loading
Loading