Skip to content

chore: release v0.4.0 - #244

Draft
github-actions[bot] wants to merge 4 commits into
mainfrom
release-plz-2026-08-06T09-07-07Z
Draft

chore: release v0.4.0#244
github-actions[bot] wants to merge 4 commits into
mainfrom
release-plz-2026-08-06T09-07-07Z

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

🤖 New release

  • oisy_trade_types: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • oisy_trade_canister: 0.3.0 -> 0.4.0
Changelog

oisy_trade_types

[0.4.0] - 2026-08-06

Changed

  • Resolve order cancellation to the funding account (DEFI-2911 PR 6/6) (#226)
  • Resolve order placement to the funding account (DEFI-2911 PR 5/6) (#223)
  • Deny funding operations to trading accounts (DEFI-2911 PR 3/6) (#209)
  • Trading-account revocation + grant cooldown (DEFI-2911 PR 2/6) (#208)
  • Trading-account registry (DEFI-2911 PR 1/6) (#207)
  • Render principals textually in canister logs (#203)

Fixed

  • Reject non-authenticating trading-account delegation targets (#238)

oisy_trade_canister

[0.4.0] - 2026-08-06

Added

  • Separate funding and trading accounts: a funding account can whitelist trading-account principals via add_trading_account / remove_trading_account / get_my_trading_accounts. A trading account places and cancels orders on the funding account's balance but can never deposit or withdraw (deposit / withdraw are denied with a TradingAccountForbidden request-error variant). Orders and reads by a trading account resolve to the funding account, and each order records the acting key via the new placed_by / canceled_by fields on OrderRecord. Grants require a registered granter and are rate-limited by a per-account cooldown; revocation is never rate-limited. All additions are backward-compatible Candid (#207, #208, #209, #219, #223, #226)

Changed

  • Docs and test follow-ups for funding/trading accounts (#230)
  • Drop orphaned arb_order_record test fixtures (#224)
  • Classify principals via UserAccount lookup (#222)
  • Render principals textually in canister logs (#203)

Fixed

  • Validate deposit/withdraw amount before rendering it (#237)
  • Reject non-authenticating trading-account delegation targets (#238)
  • Cancel applies only its own settlement (#240)
  • Bound settling-event application cost during matching (#216)
  • Benchmark unbounded settling-event sweep during matching (#210)


This PR was generated with release-plz.

Copilot AI lite review requested due to automatic review settings August 6, 2026 09:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

The generated 0.4.0 section listed the six DEFI-2911 stack PRs as raw
commit subjects under "Changed", while the hand-written `[Unreleased]`
entry describing the same work — the new endpoints, the
`TradingAccountForbidden` variant, the `placed_by` / `canceled_by`
fields, the grant cooldown, and the backward-compatible-Candid note —
sat orphaned below it.

Move that entry into 0.4.0 as "Added" and drop the six now-redundant
"Changed" lines, so the release notes describe the feature instead of
its slices. The `!` markers on #207 / #208 only reflect Candid variant
additions to the debug `get_events` endpoint, so keeping the
compatibility note matters for readers of the GitHub release.

Also remove the emptied `[Unreleased]` headings, which release-plz left
below the new section, and move the new link definitions to the footer
blocks where the other releases' definitions live.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 6, 2026 09:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 7 out of 8 changed files in this pull request and generated no new comments.

Suppressed comments (2)

libs/types/CHANGELOG.md:8

  • The changelog drops the standard ## [Unreleased] section, which is still present in other crate changelogs (e.g. libs/client/CHANGELOG.md:8) and in the git-cliff template (cliff.toml:19). Keeping an Unreleased section at the top helps maintain a consistent changelog structure for future entries.
## [0.4.0] - 2026-08-06

canister/CHANGELOG.md:8

  • The changelog drops the standard ## [Unreleased] section, but other changelogs in this repo keep it (e.g. libs/client/CHANGELOG.md:8) and the git-cliff template expects it (cliff.toml:19). Consider keeping an Unreleased section at the top for consistency and to make it clear where new changes should be added.
## [0.4.0] - 2026-08-06

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

canbench 🏋 (dir: canister) b4a9cfe 2026-08-12 11:34:47 UTC

canister/canbench_results.yml is up to date
📦 canbench_results_benchmark.csv available in artifacts

---------------------------------------------------

Summary:
  instructions:
    status:   No significant changes 👍
    counts:   [total 16 | regressed 0 | improved 0 | new 0 | unchanged 16]
    change:   [max 0 | p75 0 | median 0 | p25 0 | min -4]
    change %: [max 0.00% | p75 0.00% | median 0.00% | p25 0.00% | min -0.00%]

  heap_increase:
    status:   No significant changes 👍
    counts:   [total 16 | regressed 0 | improved 0 | new 0 | unchanged 16]
    change:   [max 0 | p75 0 | median 0 | p25 0 | min 0]
    change %: [max 0.00% | p75 0.00% | median 0.00% | p25 0.00% | min 0.00%]

  stable_memory_increase:
    status:   No significant changes 👍
    counts:   [total 16 | regressed 0 | improved 0 | new 0 | unchanged 16]
    change:   [max 0 | p75 0 | median 0 | p25 0 | min 0]
    change %: [max 0.00% | p75 0.00% | median 0.00% | p25 0.00% | min 0.00%]

---------------------------------------------------
CSV results saved to canbench_results.csv

…fresh

release-plz sets `dependencies_update = true`, so the release commit
refreshes Cargo.lock across 74 crates, which shifts instruction counts
and leaves `canbench_results.yml` stale — failing the benchmark gate.

Reverting only Cargo.lock to main's version and re-running canbench
returns every benchmark to baseline (max +0.19%, i.e. noise), so the
whole delta is dependency-driven and no canister code regressed. The
wasm-path bumps behind it are num-bigint 0.4.6 -> 0.4.8 (candid's
Nat/Int backend) and ic_principal 0.1.3 -> 0.1.5 (via candid and
ic-stable-structures).

Net effect is favourable: 4 improvements against 1 regression, median
-0.21%. bench_write_events::Settling rises 4.39% (29.38M instructions)
while the order-book queries drop 13-23% and get_my_trades 2.66%.
Heap and stable-memory usage are unchanged throughout.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 6, 2026 09:49
@mbjorkqvist

Copy link
Copy Markdown
Contributor

Benchmark baseline re-persisted

The benchmark gate was failing with canbench_results.yml is not up to date. The drift is entirely from this PR's Cargo.lock refresh, not from any canister code change.

Isolation — reverting only Cargo.lock to main's version and re-running canbench on the same tree returns every benchmark to baseline:

Scenario instructions drift
This branch as-is 1 regressed, 4 improved — max +4.26%, min −23.43%
Same tree, main's Cargo.lock max +0.19%, median +0.03% — noise

Since the lockfile was the only variable and the drift vanished, no canister code regressed. release-plz.toml sets dependencies_update = true, so the release commit bumps 74 crates; the two in the canister's wasm path are num-bigint 0.4.6 → 0.4.8 (candid's Nat/Int backend) and ic_principal 0.1.3 → 0.1.5 (pulled in by both candid and ic-stable-structures).

Net effect is favourable — 4 improvements against 1 regression, median −0.21%:

benchmark instructions Δ%
+ bench_write_events::Settling 29.38M +4.39%
+ bench_write_events 30.00M +4.26%
bench_get_order_book_depth_max 4.61M −23.43%
bench_get_order_book_depth_default 570.07K −21.54%
bench_get_order_book_ticker 8.60K −13.34%
bench_get_my_trades 48.62M −2.66%

Heap and stable-memory deltas are zero across all 16 benchmarks. A fresh canbench run against the new baseline reports exact zero drift.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (2)

libs/types/CHANGELOG.md:8

  • The changelog no longer has an "Unreleased" section at the top. Other crate changelogs in this repo keep an empty "## [Unreleased]" header (e.g. libs/client/CHANGELOG.md), which makes it easy to accumulate upcoming changes between releases.
## [0.4.0] - 2026-08-06

canister/CHANGELOG.md:8

  • The changelog no longer has an "Unreleased" section at the top. Other changelogs in this repo keep an empty "## [Unreleased]" header (e.g. libs/types-internal/CHANGELOG.md), which helps track changes between releases.
## [0.4.0] - 2026-08-06

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants