Visitar URL original
Comparing v0.17.4...v0.18.0 · rustledger/rustledger · GitHub
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rustledger/rustledger
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.17.4
Choose a base ref
...
head repository: rustledger/rustledger
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.18.0
Choose a head ref
  • 2 commits
  • 25 files changed
  • 2 contributors

Commits on Jul 1, 2026

  1. feat(ffi)!: load reports balance-assertion failures + diff on balance…

    … directives (#1663) (#1664)
    
    WIT rustledger:ledger 3.0.0 -> 3.1.0 (adds balance-dir.diff); API_VERSION -> 3.1.
    
    Part 1 (correctness): load/load-file did not run semantic validation, so
    balance-assertion failures were reported only by validate. Embedders that load via
    load (rustfava) saw a failing balance as errors: [] — a silent correctness
    failure, the user told their books reconcile when they don't. load/load-file now
    run the same ValidationSession as validate (shared semantic_validation_errors),
    matching beancount's loader.load_file. query/clamp stay validation-free.
    
    Part 2 (UX): balance-dir gains diff: option<amount> = computed - asserted in the
    asserted currency (zero = exact match, non-zero = failed), so UIs render
    per-assertion pass/fail without re-deriving. The Late balance validator records
    its OWN computed actual (new BalanceActual + ValidationSession::balance_actuals in
    rustledger-validate) — no re-derivation, so load/validate cannot diverge from the
    check. convert stamps each balance directive's diff.
    
    Tests: the repro's failing balance appears in load's errors AND its directive
    carries diff = -1004 USD. 92 validate + 18 FFI parity tests pass; clippy -D
    warnings clean.
    
    Closes #1663
    
    Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
    robcohen and claude authored Jul 1, 2026
    Configuration menu
    Copy the full SHA
    cf77f04 View commit details
    Browse the repository at this point in the history
  2. chore: release v0.18.0 (#1665)

    Minor (breaking-FFI) release: the WIT contract is now rustledger:ledger 3.1.0 —
    `load`/`load-file` report balance-assertion failures and `balance-dir` carries a
    `diff` field (#1663). Embedders (rustfava) must regenerate component bindings.
    Also carries the 0.17.x Nix-channel fix (doCheck=false). Workspace 0.17.4 ->
    0.18.0 (cargo set-version); packages/mcp-server bumped to match.
    
    Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
    robcohen and claude authored Jul 1, 2026
    Configuration menu
    Copy the full SHA
    4dfc863 View commit details
    Browse the repository at this point in the history
Loading