Skip to content

docs: release notes for March 2026 releases#2323

Open
klausundklaus wants to merge 3 commits intoLightprotocol:mainfrom
klausundklaus:release-notes/2026-03-02
Open

docs: release notes for March 2026 releases#2323
klausundklaus wants to merge 3 commits intoLightprotocol:mainfrom
klausundklaus:release-notes/2026-03-02

Conversation

@klausundklaus
Copy link

@klausundklaus klausundklaus commented Mar 3, 2026

Release Notes - 2026-03-02

Packages covered

  • light-registry@2.2.1

GitHub Releases


Generated by OpenClaw release-notes automation.

Summary by CodeRabbit

  • New Features

    • Batch append/update and multi-nullify operations; Forester dedup integration; Foresters may register within the activation window.
  • Breaking Changes

    • Some tree/mint initialization flows now require protocol authority and updated signer/fee semantics; V1 trees deprecated with migration guidance and deprecation warnings.
  • Bug Fixes

    • Fixed transfer validation, rent-exemption checks, duplicate-account creation, and indexing/counting correctness.
  • Documentation

    • Added changelogs documenting these changes.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 3, 2026

📝 Walkthrough

Walkthrough

Adds or updates CHANGELOG.md entries across multiple programs documenting breaking changes, feature updates, deprecations, and fixes — including Merkle tree protocol-authority requirements, V1 tree deprecation, compressed-token mint rent_sponsor changes, and assorted system/compression fixes.

Changes

Cohort / File(s) Summary
Registry CHANGELOG
programs/registry/CHANGELOG.md
New changelog with dated entries: protocol authority required for Merkle tree init; payerauthority rename; V1 deprecation warnings; forester/activation and migration fixes.
Account Compression CHANGELOG
programs/account-compression/CHANGELOG.md
New changelog adding V1 tree deprecation warning and updates to tree default values to match mainnet.
Compressed Token CHANGELOG
programs/compressed-token/program/CHANGELOG.md
New changelog: create-mint requires rent_sponsor (fee flow changes), generic/index renames for top-up handlers, and robustness fixes (self-transfer validation, rent-exempt checks, idempotent ATA creation).
System CHANGELOG
programs/system/CHANGELOG.md
New changelog listing renames, API/derive changes, new crates/types and aliases, deprecations, and multiple correctness/audit fixes affecting compression, ATA verification, integer/tree init, and system addresses.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested labels

release

Suggested reviewers

  • sergeytimoshin

Poem

📜 Small files whisper changes through the night,
Trees retire, new guards step into light,
Mints find sponsors, checks stand tall and true,
Changelogs mark the path for what we do.
🚀 Onward — tidy notes for the dev crew.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the changeset: multiple CHANGELOG.md files documenting March 2026 releases across four programs (registry, account-compression, compressed-token, system).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

CodeRabbit can use OpenGrep to find security vulnerabilities and bugs across 17+ programming languages.

OpenGrep is compatible with Semgrep configurations. Add an opengrep.yml or semgrep.yml configuration file to your project to enable OpenGrep analysis.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@programs/registry/CHANGELOG.md`:
- Around line 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.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 14adf27 and 491d138.

📒 Files selected for processing (1)
  • programs/registry/CHANGELOG.md

Comment on lines +5 to +9
## 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)
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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

♻️ Duplicate comments (3)
programs/system/CHANGELOG.md (1)

5-50: ⚠️ Potential issue | 🟡 Minor

Date mismatch: PR metadata inconsistent with changelog date.

This entry is dated 2026-03-10, but the PR description references "2026-03-02" releases. See similar comment on programs/account-compression/CHANGELOG.md. Ensure all changelogs use consistent dates that match the PR intent.

🤖 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 header date
"## 2026-03-10" in programs/system/CHANGELOG.md is inconsistent with the PR
metadata referencing "2026-03-02"; update the date to match the PR intent (e.g.,
change "## 2026-03-10" to "## 2026-03-02") and verify consistency with the
similar entry in programs/account-compression/CHANGELOG.md so both changelogs
reflect the same release date and PR metadata.
programs/compressed-token/program/CHANGELOG.md (1)

5-23: ⚠️ Potential issue | 🟡 Minor

Date mismatch: Same inconsistency as other changelogs.

This changelog also uses 2026-03-10 while the PR targets "2026-03-02" releases. Ensure date consistency across all changelog entries.

🤖 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, Update
the changelog date to match the PR target release date: replace the header date
"2026-03-10" with "2026-03-02" so this entry is consistent with other
changelogs; no other content changes to the described items (references to
CreateMintInputs, MintActionMetaConfig::with_rent_sponsor,
handle_compressible_top_up, process_compressible_top_up, FEE_PAYER_IDX,
OWNER_IDX should remain unchanged).
programs/registry/CHANGELOG.md (1)

23-27: 🧹 Nitpick | 🔵 Trivial

Past review comment remains applicable.

The existing review comment requesting package metadata for the 2026-03-02 entry is still valid. This entry documents light-registry@2.2.1 (as mentioned in the PR description) but should explicitly state the package name and version in the changelog itself.

Note: The PR description specifically mentions "light-registry@2.2.1" for 2026-03-02, which aligns with this entry.

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

In `@programs/registry/CHANGELOG.md` around lines 23 - 27, The changelog entry for
2026-03-02 documents the change to is_registration_phase() but doesn't state the
package and version; update the entry to explicitly include the package name and
version "light-registry@2.2.1" (e.g., prepend or append "light-registry@2.2.1")
so the 2026-03-02 entry clearly ties the is_registration_phase() change to the
released package version.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@programs/account-compression/CHANGELOG.md`:
- Around line 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.
- Around line 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.

In `@programs/compressed-token/program/CHANGELOG.md`:
- Around line 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.

In `@programs/registry/CHANGELOG.md`:
- Around line 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().

In `@programs/system/CHANGELOG.md`:
- Around line 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.

---

Duplicate comments:
In `@programs/compressed-token/program/CHANGELOG.md`:
- Around line 5-23: Update the changelog date to match the PR target release
date: replace the header date "2026-03-10" with "2026-03-02" so this entry is
consistent with other changelogs; no other content changes to the described
items (references to CreateMintInputs, MintActionMetaConfig::with_rent_sponsor,
handle_compressible_top_up, process_compressible_top_up, FEE_PAYER_IDX,
OWNER_IDX should remain unchanged).

In `@programs/registry/CHANGELOG.md`:
- Around line 23-27: The changelog entry for 2026-03-02 documents the change to
is_registration_phase() but doesn't state the package and version; update the
entry to explicitly include the package name and version "light-registry@2.2.1"
(e.g., prepend or append "light-registry@2.2.1") so the 2026-03-02 entry clearly
ties the is_registration_phase() change to the released package version.

In `@programs/system/CHANGELOG.md`:
- Around line 5-50: The changelog header date "## 2026-03-10" in
programs/system/CHANGELOG.md is inconsistent with the PR metadata referencing
"2026-03-02"; update the date to match the PR intent (e.g., change "##
2026-03-10" to "## 2026-03-02") and verify consistency with the similar entry in
programs/account-compression/CHANGELOG.md so both changelogs reflect the same
release date and PR metadata.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1de657ca-6781-434c-bb0a-22bd1f677c9b

📥 Commits

Reviewing files that changed from the base of the PR and between 491d138 and 36abe61.

📒 Files selected for processing (4)
  • programs/account-compression/CHANGELOG.md
  • programs/compressed-token/program/CHANGELOG.md
  • programs/registry/CHANGELOG.md
  • programs/system/CHANGELOG.md

Comment on lines +5 to +10
## 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)
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.

Comment on lines +5 to +23
## 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)
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.

Comment on lines +5 to +21
## 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)
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().

Comment on lines +5 to +50
## 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)
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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
programs/registry/CHANGELOG.md (1)

5-18: 🧹 Nitpick | 🔵 Trivial

Add package version and release URL to the 2026-03-18 entry.

Like the other entries in this file, the 2026-03-18 section should include the package name, version, and release URL for traceability. This mirrors the recommendations already made for the 2026-03-10 and 2026-03-02 entries.

📦 Suggested metadata addition
 ## 2026-03-18
+
+**Package:** `light-registry@X.Y.Z`  
+**Release:** https://github.com/Lightprotocol/light-protocol/releases/tag/light-registry-vX.Y.Z

 ### Features
🤖 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 - 18, The 2026-03-18 changelog
entry is missing package metadata; add the package name, version, and release
URL to the top of the "## 2026-03-18" section (matching the format used in the
2026-03-10 and 2026-03-02 entries) so the entry includes package/version and a
link to the release for traceability; update the heading block above the
"Features" list to include the package identifier, semantic version, and the
full release URL.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@programs/registry/CHANGELOG.md`:
- Around line 5-42: The PR description and commit metadata disagree with the
CHANGELOG.md entries: the changelog contains three release entries (2026-03-18,
2026-03-10, 2026-03-02) and the commit mentions "light-registry v2.3.1
(2026-03-18)" while the PR description claims "light-registry@2.2.1"; update the
PR description to precisely list each release date and its corresponding package
version (or state that this PR only adds the 2026-03-02 entry and move the other
dates to separate PRs), and make the commit message / tag match the version you
choose; if the intention is a single-entry change, remove the unintended entries
from CHANGELOG.md or split them into separate commits/PRs so the PR description,
commit message, and CHANGELOG.md are consistent (references: the literal
changelog entries "2026-03-18", "2026-03-10", "2026-03-02" and the version
strings "light-registry@2.2.1" / "light-registry v2.3.1").

---

Duplicate comments:
In `@programs/registry/CHANGELOG.md`:
- Around line 5-18: The 2026-03-18 changelog entry is missing package metadata;
add the package name, version, and release URL to the top of the "## 2026-03-18"
section (matching the format used in the 2026-03-10 and 2026-03-02 entries) so
the entry includes package/version and a link to the release for traceability;
update the heading block above the "Features" list to include the package
identifier, semantic version, and the full release URL.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 9a6bc9f5-f50b-4c4c-9229-6803fab69a2d

📥 Commits

Reviewing files that changed from the base of the PR and between 36abe61 and 04919f3.

📒 Files selected for processing (1)
  • programs/registry/CHANGELOG.md

Comment on lines +5 to +42
## 2026-03-18

### Features

- `batch_append()` reimburses the forester fee payer 2x the network fee from the output queue when network_fee >= 5,000 lamports. A `fee_payer` account is now required in the instruction. (#2335)
- `batch_update_address_tree()` reimburses the forester fee payer 1x the network fee from the merkle tree when network_fee >= 5,000 lamports. A `fee_payer` account is now required in the instruction. (#2335)
- `nullify_dedup` instruction batches 2-4 nullifications in one transaction using proof deduplication.
- `nullify_2` uses a shared proof node and a 1-byte discriminator.
- Forester dedup integration adds `min_queue_items` threshold, versioned transaction support, and a transaction size fix.
- V1 state multi-nullify is disabled when the queue exceeds 10,000 items.

### Fixes

- `count_from_leaf_indices()` rejects non-trailing sentinels.

## 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)

## 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)
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

Reconcile PR description with actual changelog content.

The PR description states it "Adds release notes for 2026-03-02. Packages covered: light-registry@2.2.1", but the file contains three distinct release entries (2026-03-18, 2026-03-10, and 2026-03-02). Additionally, the commit message references "light-registry v2.3.1 (2026-03-18)", not v2.2.1. This discrepancy makes it unclear which versions correspond to which dates and hampers release traceability.

Update the PR description to accurately reflect all three dates and their associated versions, or clarify whether this PR is meant to add only one entry.

🤖 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 - 42, The PR description and
commit metadata disagree with the CHANGELOG.md entries: the changelog contains
three release entries (2026-03-18, 2026-03-10, 2026-03-02) and the commit
mentions "light-registry v2.3.1 (2026-03-18)" while the PR description claims
"light-registry@2.2.1"; update the PR description to precisely list each release
date and its corresponding package version (or state that this PR only adds the
2026-03-02 entry and move the other dates to separate PRs), and make the commit
message / tag match the version you choose; if the intention is a single-entry
change, remove the unintended entries from CHANGELOG.md or split them into
separate commits/PRs so the PR description, commit message, and CHANGELOG.md are
consistent (references: the literal changelog entries "2026-03-18",
"2026-03-10", "2026-03-02" and the version strings "light-registry@2.2.1" /
"light-registry v2.3.1").

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant