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.
Small improvements
- You can now filter Ledger Entries by tags and groups using
allmatch 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
totalBalanceUpdatesfrom the consistency modal in the Dashboard childTotalbalances are now calculated for strongly consistent parent accounts
b. 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.
Small improvements
- Updated Schema history modal for seeing all deployed versions and drafts
- Restoring a historical version or draft now has a confirmation step
amountsandbalancesnow 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_
c. October, 2025
#Multiplayer Dashboard
Schema editing and Scenario testing now support concurrent editing. Your entire team can now collaborate simultaneously in the FRAGMENT Dashboard.
Small improvements
- Shiny new Go SDK to
v3.0.0using more idiomatic Go patterns. Users can get the newest version of the Go SDK by adding/v3to 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
d. 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.
fragment verify-schema \
--path ./my-schema.jsoncSmall improvements
- Moved the “New Ledger” creation button from the Ledger detail page to the Ledger list page in the Dashboard
- Made formatting on Schema
JSONupload more legible - Balances on Accounts 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
e. 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 docs.
Small improvements
- You can now JIT create Custom currencies when posting an Entry
- Extended
customCodelength 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
f. 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.
Small improvements
- Introduced the
migrateLedgerEntrymutation. This will post a new entry and reverse an existingLedgerEntry. Read themigrateLedgerEntryAPI reference 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
g. June, 2025
#Ledger Account Currency Upgrade
You can now upgrade a Ledger Account in your Schema from a single currency to multi-currency.
Small improvements
- The FRAGMENT Dashboard 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 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 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
h. May, 2025
#Entry Stats
You can now query more information about your Ledger Entries using ledgerEntryStats including counts by status, type, and date ranges.
Small improvements
- You can now define the Linked Account Types in your Schema from inside the Dashboard
- Introduced advanced Tag filtering with
TagMatchInputtype, enabling complex queries includingNOT,ANY,ALL, andNONEoperations - Enhanced Group-based filtering with a
GroupMatchInputfilter type for flexible matching conditions - Tags can now be updated and deleted from Entries with the
updateLedgerEntrymutation andremoveFromTagsparameter - Updated our Documentation page content and design
- Workspace members is now a dedicated option in the main navigation of the Dashboard
i. April, 2025
#Entry Versioning
- You can now update an Entry types by incrementing its
typeVersionfield. 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
addLedgerEntryandreconcileTxnow both have atypeVersionparameter. This field is optional and will default to 1, so none of your existing callsites will be impacted.
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
ledgerAccountqueries could returnledger_account_not_foundon 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
j. 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.
Small improvements
- Added drag and drop reordering of Schema Entry types in the FRAGMENT Dashboard
- Fixed a race condition with
updateLedgeranddeleteLedger - New invite feature to add members to your workspace via email
- Updated the
gen-graphqlCLI command to support query generation for runtime Entries - Added
delete-custom-txs,delete-ledger,delete-schema, andreverse-ledger-entryto the FRAGMENT CLI - Add support for
notEqualToandnotInon StringFilter, to support filtering onLedgerEntry.type
k. February, 2025
#Reverse Ledger Entries
- Introduced a
reverseEntryLedgermutation. This will post a new entry with the opposite amounts of an existingLedgerEntry. It will also free up the idempotency key, and allow you to repost a newLedgerEntry. - Ledger Entry and Ledger Line now expose
reversalHistory,reversalPosition,reversedByandreversesto traverse this chain.
Small improvements
- Increased throughput when posting Entries that instantiate Ledger Accounts templates
- List Entries now support filtering on Groups
l. 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.
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.
Small improvements
- Started enforcing that static parameters in the Schema cannot have an empty string key or value