Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 10 additions & 0 deletions programs/account-compression/CHANGELOG.md
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)
Comment on lines +5 to +10
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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
Verify each finding against the current code and only fix it if needed.

In `@programs/account-compression/CHANGELOG.md` around lines 5 - 10, The changelog
entry currently shows "2026-03-10" but the PR title/description and commit
mention "2026-03-02" (and references light-registry@2.2.1); reconcile by
choosing the authoritative release date or by adding two separate entries:
update the date string in the CHANGELOG.md header from "2026-03-10" to
"2026-03-02" if that is the correct release, or create an additional
"2026-03-02" section describing the light-registry@2.2.1 changes and keep the
"2026-03-10" entry for the V1 tree message; ensure the PR title/description and
commit message are updated to match the chosen changelog entries so all
references (dates and light-registry@2.2.1) are consistent.

🧹 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
 ## 2026-03-10
+
+**Package:** `account-compression@X.Y.Z`  
+**Release:** https://github.com/Lightprotocol/light-protocol/releases/tag/account-compression-vX.Y.Z

 ### Features
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## 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)
## 2026-03-10
**Package:** `account-compression@X.Y.Z`
**Release:** https://github.com/Lightprotocol/light-protocol/releases/tag/account-compression-vX.Y.Z
### 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`)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@programs/account-compression/CHANGELOG.md` around lines 5 - 10, Update the
CHANGELOG.md entry under "## 2026-03-10" to include the package identifier and
release link by prepending a header like "account-compression@X.Y.Z — YYYY-MM-DD
— https://github.com/…/releases/tag/vX.Y.Z"; modify the existing section that
contains the two bullet points (the V1 deprecation and tree default changes) to
remain unchanged but be clearly associated with that package/version header so
each release entry is self-contained and traceable.

23 changes: 23 additions & 0 deletions programs/compressed-token/program/CHANGELOG.md
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
Copy link
Contributor

Choose a reason for hiding this comment

The 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 compressed-token@X.Y.Z and a release link for traceability.

📋 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

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## 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)
## 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
- `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`)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@programs/compressed-token/program/CHANGELOG.md` around lines 5 - 23, Add
package metadata to the top of the CHANGELOG entry: prepend the release title
with the package name and version (e.g., "compressed-token@X.Y.Z") and include a
release URL pointing to the release notes or tag for traceability; update the
2026-03-10 entry header to include this metadata and ensure the release URL is a
full link to the repository release/tag for that version.

27 changes: 27 additions & 0 deletions programs/registry/CHANGELOG.md
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
Copy link
Contributor

Choose a reason for hiding this comment

The 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
Context: ...ount with the protocol authority in all tree initialization calls. (#2325) ### Feat...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@programs/registry/CHANGELOG.md` around lines 5 - 21, Add package metadata
(package name, version, and release URL) to the 2026-03-10 changelog entry under
the "## 2026-03-10" heading so it matches other entries (e.g., the 2026-03-02
format); include the package name, the released version string, and a link to
the release or changelog URL directly above or below the heading to provide
traceability for the changes to create_initialize_merkle_tree_instruction(),
create_initialize_batched_merkle_tree_instruction(), and
create_initialize_batched_address_merkle_tree_instruction().


## 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
Copy link
Contributor

Choose a reason for hiding this comment

The 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 light-registry@2.2.1 and the release URL on Line 5–Line 9 would make the note self-contained for audits and downstream consumers.

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

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## 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)
## 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
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@programs/registry/CHANGELOG.md` around lines 5 - 9, Update the CHANGELOG
entry for 2026-03-02 to include the package name and version and a release link
for traceability: append "light-registry@2.2.1" and the canonical release URL
(e.g. GitHub/GitLab release page) to the Features bullet that mentions
is_registration_phase(), so the entry reads as a self-contained note containing
the affected symbol (is_registration_phase()), the package
(light-registry@2.2.1) and the release artifact URL.

50 changes: 50 additions & 0 deletions programs/system/CHANGELOG.md
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
Copy link
Contributor

Choose a reason for hiding this comment

The 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
Verify each finding against the current code and only fix it if needed.

In `@programs/system/CHANGELOG.md` around lines 5 - 50, The changelog entry under
"## 2026-03-10" is missing package metadata; add a top-of-entry header line
containing the package name, semantic version, and a release URL (e.g.,
"package-name vX.Y.Z — https://...") so the entry is self-contained; update the
block that starts with "## 2026-03-10" to insert the new metadata line above
"### Breaking Changes" and ensure the package name and version reflect the
release and the URL points to the PR/release page.