Skip to content

feat(component): consume v0.16.5 — clamp provenance, load filename, narration#181

Merged
robcohen merged 1 commit into
mainfrom
feat/component-flip-ready
Jun 18, 2026
Merged

feat(component): consume v0.16.5 — clamp provenance, load filename, narration#181
robcohen merged 1 commit into
mainfrom
feat/component-flip-ready

Conversation

@robcohen

Copy link
Copy Markdown
Member

Companions to rustledger beancount#1425 / v0.16.5, closing the last of #173's snapshot triage. The full rustfava suite now passes via the component backend: 497 passed, 0 failed (was 114).

Changes

  • RUSTLEDGER_VERSION → v0.16.5 — the component now preserves clamp provenance + the WIT load takes a filename (German Translations beancount/fava#1425).
  • component_engine.load passes filename through to the WIT load (was dropped) → source-location metadata matches JSON-RPC. Fixes fava_options (InsertEntryOption.filename).
  • types: narration default — the component emits absent narration as null (present-but-None) where JSON-RPC omits it; .get(k, "") returned the None. Fixes payee_transaction.

(Clamp provenance fixed download_journal + trial_balance; posting-meta advanced_filter landed in #180.)

Validation

RUSTFAVA_RUSTLEDGER_BACKEND=component pytest497 passed, 0 failed. mypy clean; no new ruff violations (reduced types.py debt by 2). Default JSON-RPC path unchanged.

CI depends on the v0.16.5 wasm artifact; will go green once the release publishes.

Next: flip the default to the component (#173) — now a one-line backend.py change.

…arration

Companions to rustledger beancount#1425 / v0.16.5, completing the component backend's
parity with the JSON-RPC surface (closes the last of #173's snapshot triage):

- bump RUSTLEDGER_VERSION to v0.16.5 (the component now preserves clamp
  provenance and the WIT `load` takes a filename).
- component_engine.load: pass `filename` through to the WIT `load` (was
  dropped), so source-location metadata matches the JSON-RPC engine.
- types: default empty `narration` to "" on falsy — the component emits absent
  narration as null (present-but-None) where JSON-RPC omits it; `.get(k, "")`
  returned the None. Fixes the payee/transaction serialization.

With these, the full rustfava suite passes via the component backend
(`RUSTFAVA_RUSTLEDGER_BACKEND=component`): 497 passed, 0 failed (was 114).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.

1 participant