Skip to content

Conversation

@robcohen
Copy link
Member

@robcohen robcohen commented Feb 8, 2026

Summary

  1. Upgrade rustledger from v0.7.0 to v0.8.5
  2. Add workflow to automatically receive rustledger release updates

Changes in rustledger v0.8.5

This release includes fixes for FFI field passthrough (rustledger/rustledger#311):

LedgerOptions (13 new fields)

  • inferred_tolerance_default: per-currency tolerance map (fixes inferred_tolerance_default option not honored #71)
  • inferred_tolerance_multiplier: tolerance multiplier
  • render_commas: boolean for number formatting
  • infer_tolerance_from_cost: boolean flag
  • account_rounding: optional rounding account
  • account_previous_balances: opening balances account
  • account_previous_earnings: previous earnings account
  • account_previous_conversions: previous conversions account
  • account_current_earnings: current earnings account
  • account_current_conversions: optional current conversions account
  • account_unrealized_gains: optional unrealized gains account
  • conversion_currency: optional conversion currency

Entry fields

  • Posting.flag: posting-level flag (e.g., "!" for pending)
  • Balance.tolerance: explicit tolerance (e.g., "~ 0.01")

Automation

This PR also adds .github/workflows/update-rustledger.yml which listens for rustledger-release events. When rustledger publishes a new release, it will automatically create a PR to update the WASM version.

See rustledger PR: rustledger/rustledger#314

Test

>>> from rustfava.rustledger.loader import load_string
>>> content = 'option "inferred_tolerance_default" "*:0.01"\noption "inferred_tolerance_default" "USD:0.005"'
>>> entries, errors, options = load_string(content, "test.beancount")
>>> options.get('inferred_tolerance_default')
{'*': Decimal('0.01'), 'USD': Decimal('0.005')}  # Was {} before!

Related issues

Fixes #71

🤖 Generated with Claude Code

This release includes fixes for FFI field passthrough:
- inferred_tolerance_default is now properly passed (fixes #71)
- 12 other missing options fields added
- Posting.flag and Balance.tolerance now available

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
robcohen and others added 3 commits February 7, 2026 21:18
Listen for `rustledger-release` events dispatched by rustledger's
release workflow and automatically create a PR to update the WASM
version.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Rustledger v0.8.5 now passes through the tolerance field for Balance
entries, so the snapshot needs to reflect this.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@robcohen robcohen enabled auto-merge (squash) February 8, 2026 03:59
@robcohen robcohen merged commit 0146e62 into main Feb 8, 2026
23 checks passed
@robcohen robcohen deleted the chore/upgrade-rustledger-v0.8.5 branch February 8, 2026 04:00
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.

inferred_tolerance_default option not honored

1 participant