docs: release notes for March 2026 program releases#29
docs: release notes for March 2026 program releases#29klausundklaus wants to merge 2 commits intoLightprotocol:mainfrom
Conversation
WalkthroughAdds a new MDX changelog ( Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10-15 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
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. Comment Tip CodeRabbit can generate a title for your PR based on the changes with custom instructions.Set the |
There was a problem hiding this comment.
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.
| <Warning> | ||
| Breaking changes in this release. See the CHANGELOG for migration steps. | ||
| </Warning> |
There was a problem hiding this comment.
Point these migration warnings at a real destination.
“See the CHANGELOG” is ambiguous here: readers are already on changelog.mdx, and changelog.md is the automation doc, not the migration guide. Please link each warning to the matching breaking-changes section or change the copy to “See below” so the migration path is obvious.
Also applies to: 73-75, 152-154, 254-256
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@changelog.mdx` around lines 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.
| ### 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) | ||
|
|
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (2)
changelog.mdx (2)
30-32:⚠️ Potential issue | 🟡 MinorClarify 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 | 🟡 MinorAdd 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.
| --- | ||
| title: "Changelog" | ||
| sidebarTitle: "Latest Releases" | ||
| description: "Latest Releases" | ||
| rss: true | ||
| --- |
There was a problem hiding this comment.
🧩 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.jsonRepository: 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 -B2Repository: 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 -20Repository: 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" -iRepository: 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 -20Repository: Lightprotocol/docs-v2
Length of output: 47
🏁 Script executed:
# Check package.json or build setup
cat package.json | head -50Repository: 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 yamlRepository: Lightprotocol/docs-v2
Length of output: 1792
🏁 Script executed:
# List root directory to see what config files exist
ls -la | head -30Repository: Lightprotocol/docs-v2
Length of output: 1874
🏁 Script executed:
# Get line count first
wc -l docs.jsonRepository: 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 -20Repository: Lightprotocol/docs-v2
Length of output: 637
🏁 Script executed:
# Look for the structure around where pages/navigation are defined
sed -n '1,100p' docs.jsonRepository: Lightprotocol/docs-v2
Length of output: 3260
🏁 Script executed:
# Search for changelog in the navigation/pages structure
rg -n '"changelog"' docs.jsonRepository: 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 -100Repository: 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.
Release Notes - 2026-03-10
Packages covered
GitHub Releases
Highlights
Generated by OpenClaw release-notes automation.
Summary by CodeRabbit