---
title: "2025"
canonical: "https://fragment.dev/changelog/2025"
---

# 2025

Source: https://fragment.dev/changelog/2025

[Documentation index](https://fragment.dev/llms.txt)

<a id="2025"></a>

<a id="december-2025"></a>
<a id="2025-12"></a>

## December, 2025
Clearing Accounts

You can now model unsettled transactions directly in your Schema using clearing accounts. Each transaction gets its own clearing account that nets to zero on settlement, and surfaces unresolved balances automatically when it doesn't.

[Visual: Dec25Changelog. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- You can now filter Ledger Entries by tags and groups using `all` match filters
- Ledger Accounts now expose timestamp fields (`createdAt`, `updatedAt`) in the API
- Chart of Accounts is now editable directly in Scenario view
- You can configure `totalBalanceUpdates` from the consistency modal in the Dashboard
- `childTotal` balances are now calculated for strongly consistent parent accounts

<a id="november-2025"></a>
<a id="2025-11"></a>

## November, 2025
New Scenario Layout

Scenarios are now vertically oriented. The layout aligns with the existing Entry and Account columns and giving more room for longer strings and balances when simulating. You can now see individual lines posted to an Account and a control panel with hotkeys has been added.

[Visual: nov2025. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- Updated Schema history modal for seeing all deployed versions and drafts
- Restoring a historical version or draft now has a confirmation step
- `amounts` and `balances` now support 120 bits
- Add expanded details to Entry, Account, and Group pages in Dashboard
- Various Dashboard hygiene changes: “Search” is now “🔍” and both “Delete Ledger” and “Entry History” were moved to the expanded details
- Improved validation for amount values in the Entry Type Editor to prevent runtime errors. Specifically disallowing  `*` and `/`, replacing spaces with `_`

<a id="october-2025"></a>
<a id="2025-10"></a>

## October, 2025
Multiplayer Dashboard

Schema editing and Scenario testing now support concurrent editing. Your entire team can now collaborate simultaneously in the Fragment Dashboard.

[Visual: Oct25Changelog. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- Shiny new Go SDK to `v3.0.0` using more idiomatic Go patterns. Users can get the newest version of the Go SDK by adding `/v3` to the end of the module url.
- Ledger Scenarios in the Schema tab are now accessed by pressing the Play/Simulate button in the upper right.
- Fixed a bug that returned incorrect Account names on failing conditions.
- Add the ability for an Entry to have both a precondition and postcondition on the same Account
- Added “Copy CLI Login” config to a new API Client Creation, to one-click copy all of your login credentials
- Improved error messaging when accidentally using a decimal in an amount instead of an integer

<a id="september-2025"></a>
<a id="2025-09"></a>

## September, 2025
Verify Schema in the CLI

The Fragment CLI now includes verify-schema. This feature enables tools, like Claude Code and Cursor, to get immediate feedback on schema correctness and auto-fix.

```bash
fragment verify-schema \
  --path ./my-schema.jsonc
```

Small improvements

- Moved the “New Ledger” creation button from the Ledger detail page to the Ledger list page in the Dashboard
- Made formatting on Schema `JSON` upload more legible
- [Balances on Accounts](https://fragment.dev/api-reference/ledger-types.md#core-types-ledgeraccount) are now paginated by Currency
- Entry Version is now shown in the Scenario view
- Adjusted our contrast on Dark Mode for better legibility
- Fixed a bug for handling parametrized currencies on Ledger Accounts
- Removed Schema drafts tab from Dashboard

<a id="august-2025"></a>
<a id="2025-08"></a>

## August, 2025
Migrations

You can now seamlessly edit and migrate Ledger Entries and Accounts for online Ledgers. This allows you to develop your product and Ledger seamlessly while maintaining data integrity the entire time. Read more about the migration, reversal, and archive mutations in our [Migrate Data](https://fragment.dev/guides/migrate-data.md#migrate-data) docs.

[Visual: migrations. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- You can now JIT create Custom currencies when posting an Entry
- Extended `customCode` length for a custom currency to 36 characters
- Fixed a bug for displaying Entry Type count in the Dashboard
- Fixed a bug that duplicated Entry Type names when creating multiple versions before deploying a Schema
- Improved our tooltip implementation to make clipping text more legible in the Dashboard
- Updated unknown error codes for Schema deployment
- Fixed issues with comma-separated values during variable substitution
- Fragment CLI is now available via npm

<a id="july-2025"></a>
<a id="2025-07"></a>

## July, 2025
Post Entry Updates

Guardrails have been added to the Entry posting flow from the Dashboard. Users will now be shown a list of available accounts for an Entry and given a warning during confirmation when an Entry will create a new Account after being posted.

[Visual: july2025. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- Introduced the `migrateLedgerEntry` mutation. This will post a new entry and reverse an existing `LedgerEntry`. Read the `migrateLedgerEntry` [API reference](https://fragment.dev/api-reference/ledger-mutations.md#migrateledgerentry) to learn more.
- Fixed a bug when editing the Schema to prevent deletion of root Ledger Accounts
- Added S3 bucket policy to the Data Export modal, making it easier to copy policies when needed
- Fixed a bug in the Fragment Dashboard that prevented accepting workspace invites
- Moved the Delete button from a secondary click to the Project Tile for better accessibility
- Fixed a bug in Ledger Line exports that excluded Tx details

<a id="june-2025"></a>
<a id="2025-06"></a>

## June, 2025
Ledger Account Currency Upgrade

You can now upgrade a Ledger Account in your Schema from a single currency to multi-currency.

[Visual: jun2025. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- The Fragment [Dashboard](https://dashboard.fragment.dev/) is now more responsive for smaller screen sizes. You can view your Schema and Ledgers from your mobile device
- You can now export Ledger Entries from the [Dashboard](https://dashboard.fragment.dev/) as CSV
- Fixed a bug with parsing empty string tag values
- Added stricter validation in the client credentials flow
- Fixed an issue when parsing invalid Ledger Entry Condition parameters. The API will now return a `BadRequestError`
- The Fragment [blog](https://fragment.dev/blog.md) got a redesign
- You can now view a Ledger Account's historical balance change over a period of time, in the Balances page of a Ledger Account

<a id="may-2025"></a>
<a id="2025-05"></a>

## May, 2025
Entry Stats

You can now query more information about your Ledger Entries using `ledgerEntryStats` including counts by `status`, `type`, and `date` ranges.

[Visual: may2025. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- You can now define the Linked Account Types in your Schema from inside the Dashboard
- Introduced advanced Tag filtering with `TagMatchInput` type, enabling complex queries including `NOT`, `ANY`, `ALL`, and `NONE` operations
- Enhanced Group-based filtering with a `GroupMatchInput` filter type for flexible matching conditions
- Tags can now be updated and deleted from Entries with the `updateLedgerEntry` mutation and `removeFromTags` parameter
- Updated our [Documentation](https://www.notion.so/4e2d296176274702b25fc621d2464bf3?pvs=21) page content and design
- Workspace members is now a dedicated option in the main navigation of the Dashboard

<a id="april-2025"></a>
<a id="2025-04"></a>

## April, 2025
Entry Versioning

- You can now update an Entry types by incrementing its `typeVersion` field. This will automatically happen when editing your Schema within the Dashboard.
- Once you deploy the Schema, the new Entry type version will become available alongside existing versions. To post to versioned entries `addLedgerEntry` and `reconcileTx` now both have a `typeVersion` parameter. This field is optional and will default to 1, so none of your existing callsites will be impacted.

[Visual: apr2025. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- Ledger Account names can now be updated in your Schema
- Mitigated impact of noisy neighbours on historical balance updates in multi-tenant environments
- Improved handling of retries when DynamoDB returns an Internal Server Error
- Fixed bug where `ledgerAccount` queries could return `ledger_account_not_found` on existing accounts in high-throughput scenarios
- Trying to use a deleted ledger now returns a specific error message instead of `ledger_not_found`
- Better error messages when an invalid Ledger Account path is received

<a id="march-2025"></a>
<a id="2025-03"></a>

## March, 2025
Repost Ledger Entries

You can now reverse and repost a Ledger Entry using the same idempotency key up to 10 times. This will create a chain to reversals and reposting that all share an idempotency key and the `id` of each `LedgerEntry` is unique.

[Visual: mar2025. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- Added drag and drop reordering of Schema Entry types in the Fragment Dashboard
- Fixed a race condition with `updateLedger` and `deleteLedger`
- New invite feature to add members to your workspace via email
- Updated the `gen-graphql` CLI command to support query generation for runtime Entries
- Added `delete-custom-txs`, `delete-ledger`, `delete-schema`, and `reverse-ledger-entry` to the Fragment CLI
- Add support for `notEqualTo` and `notIn` on StringFilter, to support filtering on `LedgerEntry.type`

<a id="february-2025"></a>
<a id="2025-02"></a>

## February, 2025
Reverse Ledger Entries

- Introduced a `reverseEntryLedger` mutation. This will post a new entry with the opposite amounts of an existing `LedgerEntry`. It will also free up the idempotency key, and allow you to repost a new `LedgerEntry`.
- Ledger Entry and Ledger Line now expose `reversalHistory`, `reversalPosition`, `reversedBy` and `reverses` to traverse this chain.

[Visual: feb2025. View on the HTML page.](https://fragment.dev/changelog/2025?mode=human)

Small improvements

- Increased throughput when posting Entries that instantiate Ledger Accounts templates
- List Entries now support filtering on Groups

<a id="january-2025"></a>
<a id="2025-01"></a>

## January, 2025
Balances over a period 

The `LedgerAccount` type now exposes `balancesDuring` and `balanceChangesDuring` fields for efficiently querying all hourly, daily or monthly balances in a specified time period. These can be used to display portfolio charts or generate trial balance reports.

```graphql
query GetBalanceHistory(
  $ledgerAccount: LedgerAccountMatchInput!
) {
  ledgerAccount(ledgerAccount: $ledgerAccount) {
    # Get monthly balances for a year
    yearlyBalances: balancesDuring(
      startTime: "2021"
      duration: 12
      granularity: monthly
    ) {
      startTime
      endTime
      granularity
      nodes {
        at
        amount {
          currency {
            code
          }
          amount
        }
      }
    }
  }
}
```

Learn more in the [documentation](https://fragment.dev/guides/read-balances.md#over-a-period).

Small improvements

- Started enforcing that static parameters in the Schema cannot have an empty string key or value
