Skip to content

docs: release notes for March 2026 program releases#29

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

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

Conversation

@klausundklaus
Copy link

@klausundklaus klausundklaus commented Mar 11, 2026

Release Notes - 2026-03-10

Packages covered

  • light-system-program@2.3.0 (Mainnet)
  • light-compressed-token@2.4.0 (Mainnet)
  • light-registry@2.3.0 (Devnet)
  • account-compression@2.2.0 (Devnet)

GitHub Releases

Highlights

  • Security fix M-03: MintCloseAuthority added to restricted extensions (Certora audit)
  • Mint creation fee: 50,000 lamports MINT_CREATION_FEE (breaking: CreateMintInputs requires rent_sponsor)
  • Pinocchio SDK: light-account + light-account-pinocchio crates with LightAccount / LightProgramPinocchio derive macros
  • V1 tree deprecation warnings + protocol authority requirement for tree creation

Generated by OpenClaw release-notes automation.

Summary by CodeRabbit

  • Documentation
    • Added a consolidated MDX changelog covering multiple Light Protocol releases across SDKs, programs, and runtimes.
    • Documents per-release notes: versions, new features, fixes, security advisories, deprecations, and breaking-change migration steps.
    • Highlights a ZK Compression V2 SDK update with explicit migration guidance, versioning (stable vs beta), RPC/build-mode notes, and program hash references for upgrade planning.

@coderabbitai
Copy link

coderabbitai bot commented Mar 11, 2026

Walkthrough

Adds a new MDX changelog (changelog.mdx) documenting multiple Light Protocol and SDK release lines, program hashes, security/fixes/breaking notes, migration guidance, and dependency pinning examples across JS and Rust packages (no code or API changes).

Changes

Cohort / File(s) Summary
Changelog Documentation
changelog.mdx
New comprehensive MDX changelog containing per-package release notes for Light Protocol and SDKs (JS and Rust): program hashes, Security/New/Fixes/Breaking sections, migration steps, TOML/npm/yarn/pnpm examples, beta vs stable guidance, and RPC/build-mode notes. Review program hash and migration accuracy.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10-15 minutes

Poem

🐇 I nibbled bytes of changelog cheer,
Hashes tucked close, versions near,
Carrots of migration, neatly tied,
Docs hop forward, side by side,
New releases bounce into the clear. 🎉

🚥 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 summarizes the main change: adding release notes documentation for March 2026 program releases, which matches the primary content (changelog.mdx with versioned updates).
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

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.

Copy link

@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: 2

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

Inline comments:
In `@changelog.mdx`:
- Around line 10-12: The <Warning> blocks currently read "See the CHANGELOG"
which is ambiguous because readers are already on changelog.mdx; update each
<Warning> instance (the ones around lines 10-12, 73-75, 152-154, 254-256) to
either point to the specific breaking-changes section anchors (e.g., link to the
matching "Breaking changes" header within this document) or change the copy to
"See below for migration steps" so the migration destination is unambiguous;
ensure each updated <Warning> contains either a correct internal link to the
matching breaking-changes section or the "See below" wording consistently.
- Around line 14-66: Under each March 2026 release heading (the headings
"light-system-program v2.3.0 (Mainnet)", "light-compressed-token v2.4.0
(Mainnet)", "light-registry v2.3.0 (Devnet)", and "account-compression v2.2.0
(Devnet)"), add a new line immediately below the heading that reads "GitHub
Release: <release URL>" (use a markdown link) pointing to that program's GitHub
release page; ensure you insert this line for the four sections that currently
only show Program hash and summary so readers can click through to the release
pages.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2b5406b3-9573-459e-9c8b-a89dd50787ad

📥 Commits

Reviewing files that changed from the base of the PR and between 0660df0 and 818402b.

📒 Files selected for processing (1)
  • changelog.mdx

Comment on lines +14 to +66
### light-system-program v2.3.0 (Mainnet)

Program hash: `581998887c26c6bda44872703b55187a435e3643293c8fd77929d562032fd04b`

`light-system-program` v2.3.0 deployed to mainnet with security fixes, new Pinocchio SDK support, and breaking SDK changes.

**Security**: `MintCloseAuthority` added to `RESTRICTED_EXTENSION_TYPES` and `has_mint_extensions()`. 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)

**New**: `light-account` (Anchor/Solana) and `light-account-pinocchio` crates provide framework-agnostic compressed account development. Introduces `#[derive(LightAccount)]`, `#[derive(LightProgramPinocchio)]`, and generic type aliases (`CpiAccounts`, `CompressCtx`, `DecompressCtx`, `ValidatedPdaContext`, `PackedAccounts`). (#2230)

**New**: `AccountLoader` for loading compressed accounts without derive macros. `#[light_account(init)]` now requires a `pda_rent_sponsor` account. (#2222)

**New**: `DECOMPRESSED_PDA_DISCRIMINATOR` constant (`[255u8; 8]`) in `light-compressible` marks decompressed PDA placeholder accounts. (#2208)

**Fixes**: `store_data()` owner caching corrected (#2277), v2 tree rollover balance check fixed (#2278), canonical bump enforced in ATA verification (#2249), batched address tree init asserts tree and queue index match (#2318), system program addresses corrected (#2298).

### Breaking changes in light-system-program v2.3.0

- `COMPRESSIBLE_CONFIG_SEED` renamed to `LIGHT_CONFIG_SEED`. Migration: update all references. (#2222)
- `COMPRESSIBLE_CONFIG_V1` renamed to `LIGHT_TOKEN_CONFIG`. Migration: update all references. (#2222)
- `token::authority` renamed to `token::owner_seeds` in `#[light_account]`. Owner seeds must be constants. (#2222)
- `#[light_account(init)]` now requires `pda_rent_sponsor` in instruction accounts. (#2222)
- `#[derive(Compressible)]` removed -- use `#[derive(LightAccount)]` or `#[derive(LightProgramPinocchio)]`. (#2230)

### light-compressed-token v2.4.0 (Mainnet)

Program hash: `ad43a477a97cad48b088a64ab51008c2d27b5798090330a922a588fdecec8ea1`

`light-compressed-token` v2.4.0 deployed to mainnet with a new mint creation fee and optional fee payer support.

**New**: Mint creation charges `MINT_CREATION_FEE` (50,000 lamports) forwarded to `rent_sponsor`. `CreateMintInputs` gains a required `rent_sponsor` field. Use `MintActionMetaConfig::with_rent_sponsor()` to configure the recipient. (#2309)

**New**: `revoke` and `approve` instructions accept an optional `fee_payer` account via `FEE_PAYER_IDX` const generic, with fallback to owner. (#2306)

**Fixes**: additional self-transfer validation (#2292), rent exemption check added to `create_token_account()` (#2292), `create_ata_idempotent()` guards against double-creation (#2292).

### Breaking changes in light-compressed-token v2.4.0

- `CreateMintInputs` requires a `rent_sponsor` field. Use `MintActionMetaConfig::with_rent_sponsor()`. (#2309)
- `handle_compressible_top_up()` and `process_compressible_top_up()` take a new `FEE_PAYER_IDX` const generic. `APPROVE_PAYER_IDX`/`REVOKE_PAYER_IDX` renamed to `OWNER_IDX`. (#2306)

### light-registry v2.3.0 (Devnet)

`light-registry` v2.3.0 deployed to devnet. Tree initialization functions (`create_initialize_merkle_tree_instruction`, `create_initialize_batched_merkle_tree_instruction`, `create_initialize_batched_address_merkle_tree_instruction`) now require the protocol authority as signer. The `payer` parameter is renamed to `authority`. (#2325)

V1 tree initialization logs a deprecation warning. V1 trees will be removed in a future release. (#2329)

Fixes: `init_v1_tree_with_custom_forester()` corrected (#2319), `migrate_trees_ix()` preserves in-progress work (#2320).

### account-compression v2.2.0 (Devnet)

`account-compression` v2.2.0 deployed to devnet. V1 tree initialization logs a deprecation warning. Tree default values updated to match mainnet configuration. (#2329, #2124)

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add the GitHub Release links for the March 2026 entries.

The PR objective already includes release URLs for these four program releases, but the published sections only show hashes and summaries. Adding a GitHub Release: link under each heading would make the changelog much easier to verify and navigate.

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

In `@changelog.mdx` around lines 14 - 66, Under each March 2026 release heading
(the headings "light-system-program v2.3.0 (Mainnet)", "light-compressed-token
v2.4.0 (Mainnet)", "light-registry v2.3.0 (Devnet)", and "account-compression
v2.2.0 (Devnet)"), add a new line immediately below the heading that reads
"GitHub Release: <release URL>" (use a markdown link) pointing to that program's
GitHub release page; ensure you insert this line for the four sections that
currently only show Program hash and summary so readers can click through to the
release pages.

Copy link

@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 (2)
changelog.mdx (2)

30-32: ⚠️ Potential issue | 🟡 Minor

Clarify migration destination in all warning blocks.

Line 31, Line 94, Line 173, and Line 275 still say “See the CHANGELOG,” which is ambiguous on this page. Link each warning to the matching “Breaking changes …” section (or use “See below for migration steps” consistently).

Suggested wording pattern
- Breaking changes in this release. See the CHANGELOG for migration steps.
+ Breaking changes in this release. See below for migration steps.

Also applies to: 93-95, 172-174, 274-276

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

In `@changelog.mdx` around lines 30 - 32, The Warning blocks in changelog.mdx
currently use ambiguous text "See the CHANGELOG" — update each <Warning> block
(the instances at the four repeated warning sections) to either link directly to
the matching "Breaking changes ..." section on this page or replace the text
with a consistent phrase like "See below for migration steps" that clearly
points readers to the migration steps; ensure each warning points to the correct
local section by using an internal anchor or explicit section title (e.g., "See
'Breaking changes in this release' below for migration steps") so readers are
not redirected ambiguously.

34-36: ⚠️ Potential issue | 🟡 Minor

Add direct GitHub Release links for March 2026 program entries.

These sections still lack click-through release URLs, which makes validation harder for readers.

Suggested additions under each heading
 ### light-system-program v2.3.0 (Mainnet)
+GitHub Release: [light-system-program-v2.3.0](https://github.com/Lightprotocol/light-protocol/releases/tag/light-system-program-v2.3.0)

 ### light-compressed-token v2.4.0 (Mainnet)
+GitHub Release: [light-compressed-token-v2.4.0](https://github.com/Lightprotocol/light-protocol/releases/tag/light-compressed-token-v2.4.0)

 ### light-registry v2.3.0 (Devnet)
+GitHub Release: [light-registry-v2.3.0](https://github.com/Lightprotocol/light-protocol/releases/tag/light-registry-v2.3.0)

 ### account-compression v2.2.0 (Devnet)
+GitHub Release: [account-compression-v2.2.0](https://github.com/Lightprotocol/light-protocol/releases/tag/account-compression-v2.2.0)

Also applies to: 58-60, 75-77, 83-85

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

In `@changelog.mdx` around lines 34 - 36, The changelog entry for
"light-system-program v2.3.0 (Mainnet)" currently only shows the program hash;
update this heading to include a direct GitHub Release URL pointing to the March
2026 release (e.g., add a Markdown link next to the heading or after the program
hash), and repeat the same pattern for the other March 2026 program entries
mentioned in the review so each program heading includes a clickable GitHub
Release link; locate these by the heading text (e.g., "light-system-program
v2.3.0 (Mainnet)" and their program hash lines) and insert the proper release
URLs.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@changelog.mdx`:
- Around line 1-6: changelog.mdx exists but is not surfaced in site navigation;
update the docs navigation or routing so the "Changelog" navbar link and the
/changelog redirect point to the local changelog.mdx instead of the external
GitHub releases page. Edit docs.json (or the site nav config) to add an entry
for "Changelog" that references changelog.mdx (or its generated route), and
update the redirect configuration that currently maps /changelog to the external
URL to instead route to the new local path; verify the navbar label "Changelog"
and the /changelog redirect now resolve to the local changelog page.

---

Duplicate comments:
In `@changelog.mdx`:
- Around line 30-32: The Warning blocks in changelog.mdx currently use ambiguous
text "See the CHANGELOG" — update each <Warning> block (the instances at the
four repeated warning sections) to either link directly to the matching
"Breaking changes ..." section on this page or replace the text with a
consistent phrase like "See below for migration steps" that clearly points
readers to the migration steps; ensure each warning points to the correct local
section by using an internal anchor or explicit section title (e.g., "See
'Breaking changes in this release' below for migration steps") so readers are
not redirected ambiguously.
- Around line 34-36: The changelog entry for "light-system-program v2.3.0
(Mainnet)" currently only shows the program hash; update this heading to include
a direct GitHub Release URL pointing to the March 2026 release (e.g., add a
Markdown link next to the heading or after the program hash), and repeat the
same pattern for the other March 2026 program entries mentioned in the review so
each program heading includes a clickable GitHub Release link; locate these by
the heading text (e.g., "light-system-program v2.3.0 (Mainnet)" and their
program hash lines) and insert the proper release URLs.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 9e1776cb-c0db-4d40-a3ec-da730af9c161

📥 Commits

Reviewing files that changed from the base of the PR and between 818402b and 3b2fde6.

📒 Files selected for processing (1)
  • changelog.mdx

Comment on lines +1 to +6
---
title: "Changelog"
sidebarTitle: "Latest Releases"
description: "Latest Releases"
rss: true
---
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Verify local changelog page exists
fd -a 'changelog.mdx'

# Inspect docs navigation + redirect entries related to changelog
rg -n -C2 '"label":\s*"Changelog"|"href":\s*"https://github.com/Lightprotocol/light-protocol/releases"|"source":\s*"/changelog"|"destination":\s*"https://github.com/Lightprotocol/light-protocol/releases"' docs.json

Repository: Lightprotocol/docs-v2

Length of output: 462


🏁 Script executed:

# Search for all /changelog references across the repo
rg -n "changelog" -i --glob="*.json" --glob="*.js" --glob="*.ts" --glob="*.tsx" --glob="*.mdx" -A2 -B2

Repository: Lightprotocol/docs-v2

Length of output: 4025


🏁 Script executed:

# Look for navigation/sidebar configuration files
fd -a '\.(json|js|ts|tsx)$' | grep -E "(nav|sidebar|route|config)" | head -20

Repository: Lightprotocol/docs-v2

Length of output: 47


🏁 Script executed:

# Check if changelog.mdx is referenced in any config or import statements
rg -n "changelog\.mdx" -i

Repository: Lightprotocol/docs-v2

Length of output: 362


🏁 Script executed:

# Check for framework config files
fd -a -e json -e js -e ts -e yml | grep -E "(next|mint|docusaurus|astro|config|sidebar)" | head -20

Repository: Lightprotocol/docs-v2

Length of output: 47


🏁 Script executed:

# Check package.json or build setup
cat package.json | head -50

Repository: Lightprotocol/docs-v2

Length of output: 761


🏁 Script executed:

# Search for mint/next config files specifically
ls -la | grep -E "(mint|next|tsconfig|build|\.config)"

Repository: Lightprotocol/docs-v2

Length of output: 196


🏁 Script executed:

# Find mint.json or main config
fd -a "mint\.json"

Repository: Lightprotocol/docs-v2

Length of output: 47


🏁 Script executed:

# Also check for any yml/yaml config files
fd -a -e yml -e yaml

Repository: Lightprotocol/docs-v2

Length of output: 1792


🏁 Script executed:

# List root directory to see what config files exist
ls -la | head -30

Repository: Lightprotocol/docs-v2

Length of output: 1874


🏁 Script executed:

# Get line count first
wc -l docs.json

Repository: Lightprotocol/docs-v2

Length of output: 78


🏁 Script executed:

# Search for any navigation or sidebar structure that might include changelog
rg -n '"pages"|"navigation"|"sidebar"' docs.json | head -20

Repository: Lightprotocol/docs-v2

Length of output: 637


🏁 Script executed:

# Look for the structure around where pages/navigation are defined
sed -n '1,100p' docs.json

Repository: Lightprotocol/docs-v2

Length of output: 3260


🏁 Script executed:

# Search for changelog in the navigation/pages structure
rg -n '"changelog"' docs.json

Repository: Lightprotocol/docs-v2

Length of output: 47


🏁 Script executed:

# Get a broader view of the full docs.json to understand its structure better
sed -n '1,300p' docs.json | tail -100

Repository: Lightprotocol/docs-v2

Length of output: 3189


Add changelog.mdx to navigation or update routing to surface the local page.

changelog.mdx exists at the repository root but is not included in the documentation navigation (docs.json). The navbar "Changelog" link (line 274) and /changelog redirect (line 884) both point to the external GitHub releases page instead of the local file. Either integrate the page into the navigation structure or update the routing to reference it.

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

In `@changelog.mdx` around lines 1 - 6, changelog.mdx exists but is not surfaced
in site navigation; update the docs navigation or routing so the "Changelog"
navbar link and the /changelog redirect point to the local changelog.mdx instead
of the external GitHub releases page. Edit docs.json (or the site nav config) to
add an entry for "Changelog" that references changelog.mdx (or its generated
route), and update the redirect configuration that currently maps /changelog to
the external URL to instead route to the new local path; verify the navbar label
"Changelog" and the /changelog redirect now resolve to the local changelog page.

Packages: @lightprotocol/compressed-token@0.23.0, @lightprotocol/stateless.js@0.23.0

GitHub release: https://github.com/Lightprotocol/light-protocol/releases/tag/v0.23-js
Copy link

@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.

♻️ Duplicate comments (2)
changelog.mdx (2)

87-89: ⚠️ Potential issue | 🟡 Minor

Replace ambiguous “See the CHANGELOG” migration wording with explicit targets.

These warnings still don’t point to a concrete destination (anchor or section) for migration steps.

Suggested edit pattern
-Breaking changes in this release. See the CHANGELOG for migration steps.
+Breaking changes in this release. See below for migration steps.

(or link to a specific in-page ### Breaking changes ... anchor)

Also applies to: 150-152, 229-231, 331-333

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

In `@changelog.mdx` around lines 87 - 89, Replace the ambiguous "See the
CHANGELOG" text inside the <Warning> blocks with explicit anchors or section
targets so users land directly on migration steps; update each offending Warning
instance (the <Warning> block around lines where the text appears) to read
something like "See the CHANGELOG — Breaking changes: [link to in-page anchor
'#breaking-changes' or full path to '### Breaking changes' section]" or similar,
and ensure the target anchor exists (add a "### Breaking changes" anchor/header
if missing) so the links resolve for all occurrences noted (the Warning blocks
at the three reported locations).

91-143: ⚠️ Potential issue | 🟡 Minor

Add GitHub Release links under each March 2026 program heading.

The four program entries should include direct release URLs for quick verification/navigation.

Suggested additions
 ### light-system-program v2.3.0 (Mainnet)
+GitHub Release: [light-system-program-v2.3.0](https://github.com/Lightprotocol/light-protocol/releases/tag/light-system-program-v2.3.0)

 ### light-compressed-token v2.4.0 (Mainnet)
+GitHub Release: [light-compressed-token-v2.4.0](https://github.com/Lightprotocol/light-protocol/releases/tag/light-compressed-token-v2.4.0)

 ### light-registry v2.3.0 (Devnet)
+GitHub Release: [light-registry-v2.3.0](https://github.com/Lightprotocol/light-protocol/releases/tag/light-registry-v2.3.0)

 ### account-compression v2.2.0 (Devnet)
+GitHub Release: [account-compression-v2.2.0](https://github.com/Lightprotocol/light-protocol/releases/tag/account-compression-v2.2.0)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@changelog.mdx` around lines 91 - 143, Add direct GitHub Release URLs under
each program heading listed (identify by the headings "light-system-program
v2.3.0 (Mainnet)", "light-compressed-token v2.4.0 (Mainnet)", "light-registry
v2.3.0 (Devnet)", and "account-compression v2.2.0 (Devnet)"); for each heading,
insert a single line with a clickable release link (e.g. "Release:
https://github.com/<org>/<repo>/releases/tag/<tag>") pointing to the
corresponding March 2026 release, ensuring the link appears immediately below
the program title and before the program hash/description for quick
verification/navigation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@changelog.mdx`:
- Around line 87-89: Replace the ambiguous "See the CHANGELOG" text inside the
<Warning> blocks with explicit anchors or section targets so users land directly
on migration steps; update each offending Warning instance (the <Warning> block
around lines where the text appears) to read something like "See the CHANGELOG —
Breaking changes: [link to in-page anchor '#breaking-changes' or full path to
'### Breaking changes' section]" or similar, and ensure the target anchor exists
(add a "### Breaking changes" anchor/header if missing) so the links resolve for
all occurrences noted (the Warning blocks at the three reported locations).
- Around line 91-143: Add direct GitHub Release URLs under each program heading
listed (identify by the headings "light-system-program v2.3.0 (Mainnet)",
"light-compressed-token v2.4.0 (Mainnet)", "light-registry v2.3.0 (Devnet)", and
"account-compression v2.2.0 (Devnet)"); for each heading, insert a single line
with a clickable release link (e.g. "Release:
https://github.com/<org>/<repo>/releases/tag/<tag>") pointing to the
corresponding March 2026 release, ensuring the link appears immediately below
the program title and before the program hash/description for quick
verification/navigation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 44ddd661-555c-4b08-a39b-cd6de748fa84

📥 Commits

Reviewing files that changed from the base of the PR and between 3b2fde6 and f8c3f47.

📒 Files selected for processing (1)
  • changelog.mdx

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