-
Notifications
You must be signed in to change notification settings - Fork 90
docs: release notes for March 2026 releases #2323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| # Changelog | ||
|
|
||
| All notable changes to this package will be documented in this file. | ||
|
|
||
| ## 2026-03-10 | ||
|
|
||
| ### Features | ||
|
|
||
| - V1 tree initialization now logs a deprecation warning. V1 trees will be removed in a future release. (#2329) | ||
| - Tree default values updated to match mainnet configuration. (#2124) | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,23 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Changelog | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| All notable changes to this package will be documented in this file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 2026-03-10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Breaking Changes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `CreateMintInputs` now requires a `rent_sponsor` field. Mint creation charges `MINT_CREATION_FEE` (50,000 lamports), transferred from the fee payer to the `rent_sponsor`. (#2309) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Before: `CreateMintInputs { ... }` -- no rent_sponsor field. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| After: `CreateMintInputs { ..., rent_sponsor: Pubkey }` -- use `MintActionMetaConfig::with_rent_sponsor()` to configure the recipient. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Migration: Add a `rent_sponsor` account to all mint creation calls and set it via `MintActionMetaConfig::with_rent_sponsor()`. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `handle_compressible_top_up()` and `process_compressible_top_up()` now take a `FEE_PAYER_IDX` const generic. `APPROVE_PAYER_IDX` and `REVOKE_PAYER_IDX` are renamed to `OWNER_IDX`. The optional `FEE_PAYER_IDX` specifies a fee payer with fallback to the owner. (#2306) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Before: `handle_compressible_top_up::<BASE_LEN, OWNER_IDX>(...)` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| After: `handle_compressible_top_up::<BASE_LEN, OWNER_IDX, FEE_PAYER_IDX>(...)` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Migration: Update const generic parameters and rename `APPROVE_PAYER_IDX`/`REVOKE_PAYER_IDX` to `OWNER_IDX` in all call sites. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Fixes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Additional self-transfer validation prevents invalid self-transfers. (#2292) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `create_token_account()` now checks rent exemption before creating the account. (#2292) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `create_ata_idempotent()` now guards against double-creation. (#2292) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+5
to
+23
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick | 🔵 Trivial Add package name, version, and release URL. This compressed-token changelog should include package metadata like 📋 Suggested addition ## 2026-03-10
+
+**Package:** `compressed-token@X.Y.Z`
+**Release:** https://github.com/Lightprotocol/light-protocol/releases/tag/compressed-token-vX.Y.Z
### Breaking Changes📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,27 @@ | ||||||||||||||||||||||||||
| # Changelog | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| All notable changes to this package will be documented in this file. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## 2026-03-10 | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Breaking Changes | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - `create_initialize_merkle_tree_instruction()`, `create_initialize_batched_merkle_tree_instruction()`, and `create_initialize_batched_address_merkle_tree_instruction()` now require the protocol authority as signer. The `payer` parameter is renamed to `authority` and must be `protocol_config_pda.authority`. | ||||||||||||||||||||||||||
| Before: `create_initialize_merkle_tree_instruction(payer, ...)` | ||||||||||||||||||||||||||
| After: `create_initialize_merkle_tree_instruction(authority, ...)` -- `authority` must be the protocol config authority. | ||||||||||||||||||||||||||
| Migration: Replace the payer account with the protocol authority in all tree initialization calls. (#2325) | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Features | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - V1 tree initialization now logs a deprecation warning. V1 trees will be removed in a future release. (#2329) | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Fixes | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - `init_v1_tree_with_custom_forester()` now correctly sets the custom forester on v1 trees. (#2319) | ||||||||||||||||||||||||||
| - `migrate_trees_ix()` no longer discards in-progress work during migration. (#2320) | ||||||||||||||||||||||||||
|
Comment on lines
+5
to
+21
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick | 🔵 Trivial Add package name, version, and release URL to the 2026-03-10 entry. Like the other program changelogs in this PR, the 2026-03-10 entry should include package metadata for traceability. This would mirror the suggestion made in the existing review comment for the 2026-03-02 entry below. 📋 Suggested addition ## 2026-03-10
+
+**Package:** `light-registry@X.Y.Z`
+**Release:** https://github.com/Lightprotocol/light-protocol/releases/tag/light-registry-vX.Y.Z
### Breaking Changes🧰 Tools🪛 LanguageTool[grammar] ~12-~12: Ensure spelling is correct (QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## 2026-03-02 | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Features | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - `is_registration_phase()` no longer enforces the registration time window check. Foresters can now register for an epoch at any time within the activation window, not only during the designated registration phase. (#2321) | ||||||||||||||||||||||||||
|
Comment on lines
+23
to
+27
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick | 🔵 Trivial Add explicit package/version + release link in this entry for traceability. This entry explains the change well, but it currently omits the release artifact metadata. Adding Suggested doc update ## 2026-03-02
### Features
- `is_registration_phase()` no longer enforces the registration time window check. Foresters can now register for an epoch at any time within the activation window, not only during the designated registration phase. (`#2321`)
+- Package: `light-registry@2.2.1`
+- Release: https://github.com/Lightprotocol/light-protocol/releases/tag/light-registry-v2.2.1📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| # Changelog | ||
|
|
||
| All notable changes to this package will be documented in this file. | ||
|
|
||
| ## 2026-03-10 | ||
|
|
||
| ### Breaking Changes | ||
|
|
||
| - `COMPRESSIBLE_CONFIG_SEED` renamed to `LIGHT_CONFIG_SEED`. (#2222) | ||
| Before: `COMPRESSIBLE_CONFIG_SEED` | ||
| After: `LIGHT_CONFIG_SEED` | ||
| Migration: Update all references to `COMPRESSIBLE_CONFIG_SEED`. | ||
|
|
||
| - `COMPRESSIBLE_CONFIG_V1` renamed to `LIGHT_TOKEN_CONFIG`. (#2222) | ||
| Before: `COMPRESSIBLE_CONFIG_V1` | ||
| After: `LIGHT_TOKEN_CONFIG` | ||
| Migration: Update all references to `COMPRESSIBLE_CONFIG_V1`. | ||
|
|
||
| - In `#[light_account]`, `token::authority` renamed to `token::owner_seeds`. Owner seeds must now be constants. (#2222) | ||
| Before: `#[light_account(token::authority = ...)]` | ||
| After: `#[light_account(token::owner_seeds = ...)]` | ||
| Migration: Rename `token::authority` to `token::owner_seeds` and ensure all values are constants. | ||
|
|
||
| - `#[light_account(init)]` now requires a `pda_rent_sponsor` account info. (#2222) | ||
| Before: No `pda_rent_sponsor` required. | ||
| After: `pda_rent_sponsor` account must be present in instruction accounts when initializing compressed PDAs. | ||
| Migration: Add `pda_rent_sponsor` to all instruction accounts that use `#[light_account(init)]`. | ||
|
|
||
| - `#[derive(Compressible)]` removed from `light-sdk-macros`. (#2230) | ||
| Before: `#[derive(Compressible)]` | ||
| After: Use `#[derive(LightAccount)]` (Anchor/Solana) or `#[derive(LightProgramPinocchio)]` (Pinocchio). | ||
| Migration: Replace all `#[derive(Compressible)]` usages with the appropriate new derive macro. | ||
|
|
||
| ### Features | ||
|
|
||
| - New `light-account` crate provides Anchor/Solana-specific type aliases (`CpiAccounts`, `CompressCtx`, `DecompressCtx`, `ValidatedPdaContext`, `PackedAccounts`) and re-exports all macros from `light-sdk-macros`. (#2230) | ||
| - New `light-account-pinocchio` crate provides Pinocchio-specific type aliases and re-exports `#[derive(LightProgramPinocchio)]`. (#2230) | ||
| - `AccountLoader` added for loading compressed accounts without derive macros. (#2222) | ||
| - `DECOMPRESSED_PDA_DISCRIMINATOR` constant (`[255u8; 8]`) added to `light-compressible` to mark decompressed PDA placeholder accounts. (#2208) | ||
| - Compressed mint photon API added. (#2198) | ||
| - V1 tree initialization now logs a deprecation warning. V1 trees will be removed in a future release. (#2329) | ||
|
|
||
| ### Fixes | ||
|
|
||
| - `MintCloseAuthority` added to `RESTRICTED_EXTENSION_TYPES` and `has_mint_extensions()` detection. A mint with this extension could previously be compressed without `CompressOnly` mode, allowing the mint authority to close the mint and strand compressed tokens. Certora audit finding M-03. (#2263) | ||
| - `store_data()` no longer caches the incorrect owner when re-entering a cached account context. (#2277) | ||
| - V2 tree rollover balance check corrected. (#2278) | ||
| - Canonical bump is now enforced during ATA verification. (#2249) | ||
| - Batched address tree initialization now asserts tree index and queue index match. (#2318) | ||
| - System program addresses corrected. (#2298) | ||
|
Comment on lines
+5
to
+50
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick | 🔵 Trivial Add package name, version, and release URL. Like the other changelogs in this PR, this system program changelog lacks package metadata. Add the package name, version number, and release URL to make the entry self-contained. 📋 Suggested addition ## 2026-03-10
+
+**Package:** `system@X.Y.Z`
+**Release:** https://github.com/Lightprotocol/light-protocol/releases/tag/system-vX.Y.Z
### Breaking Changes🤖 Prompt for AI Agents |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Date mismatch: PR description says 2026-03-02, changelog says 2026-03-10.
The PR title and description reference "2026-03-02" releases and "light-registry@2.2.1", but this changelog entry is dated 2026-03-10. The commit message also mentions "2026-03-10". Clarify which date is correct, or add separate entries if both releases are being documented.
🤖 Prompt for AI Agents
🧹 Nitpick | 🔵 Trivial
Add package name, version, and release URL for traceability.
The changelog entry lacks package metadata. Including the specific package name (e.g.,
account-compression@X.Y.Z) and a link to the GitHub release would make this entry self-contained for audits and version tracking.📋 Suggested addition
📝 Committable suggestion
🤖 Prompt for AI Agents