Skip to content

Latest commit

 

History

History
269 lines (207 loc) · 28.9 KB

File metadata and controls

269 lines (207 loc) · 28.9 KB

Changelog

All notable changes to this project will be documented in this file.

0.9.0 (2026-03-31)

Features

  • web: auto reload on changes through --watch flag (#121) (4e28b10)

Bug Fixes

  • ci: remove duplicate govulncheck tags (15542bd)
  • cli: add missing error context for Price/Event/Custom/Commodity (41a55c7)
  • editor: preserve updateListener in reconfigure to fix empty save (f52d0ba)
  • formatter: preserve inline comments on price directives (60185bc)
  • formatter: split source lines on \r and \r\n to match lexer (444f5ae)
  • ledger: move pad-used marking from Validate to Apply (bbab4f2)
  • ledger: prevent division by zero in empty cost inference (05104b5)
  • ledger: remove double counting of inferred amounts in tolerance (d664b1a)
  • ledger: replace dead code in cost label validation (25179ce)
  • lexer: prevent newline consumption in malformed strings (913b29e)
  • lexer: support slash dates and multiline strings (3022516)
  • parser: accept documented top-level and txn forms (bfbe22d)
  • parser: accept org headers and open metadata (0a3625f)
  • parser: add same-line check for currency in custom amounts (f54ff07)
  • parser: align with beancount and add query support (54d3932)
  • parser: handle ACCOUNT tokens in custom directive values (a3e4ff7)
  • parser: propagate errors from parseMetadataValue (7b369de)
  • parser: remove incorrect look-back in escape sequences (ebb8f65)
  • parser: remove ineffective break in custom value switch (098eca5)
  • parser: return clear error on EOF after date token (f9d867b)
  • parser: return error on unmatched parentheses in expressions (78be9d5)
  • parser: return ILLEGAL token for unterminated strings (82a14c9)
  • parser: store non-boolean IDENTs as string in custom values (ed09117)
  • parser: support documented directive syntax variants (b5e6134)
  • parser: support documented metadata and custom values (803ec37)
  • upgrade Go toolchain to 1.24.11 for crypto/x509 security fixes (2e55c43)
  • web: eliminate race condition in handleFileChange (742b09e)
  • web: return response instead of 500 when reload fails after save (88867ec)

Performance Improvements

  • lexer: use map lookup for keyword type resolution (94458eb)
  • parser: avoid string conversion in calculateSourceRange (2d5a35d)
  • parser: use strings.Builder in parseRestOfLine (b24a5ec)

0.8.0 (2026-01-13)

Features

  • add cosign signing and SBOM attestation (bc56f30)
  • cli: add --host flag to web command (457a0d7)
  • generate SBOM for included assets (96d4f91)
  • ledger: add generic GetBalanceTree API for financial reports (#117) (fe1ce75)
  • ledger: support custom account names (67a54ed)
  • release docker image alongside executables (5ee77dd)
  • serve index.html for all unmatched paths (551362f)
  • sign docker manifests upon releases (4a106b9)
  • web: add file selector dropdown for included files (4c5150c)
  • web: add sidebar navigation (2c2b50a)
  • web: set up solidjs router (fc8a20f)

Bug Fixes

  • ledger: make implicit parent accounts accessible via GetParent/GetChildren (f6291b9)
  • parser: validate dates at lex time to match beancount behavior (5e0b8c1)
  • web: filter errors to only show current file (639ac05)

0.7.0 (2026-01-07)

Features

  • add doctor lex command for token debugging (163ac5b)
  • add Must* variants and refactor tests (d8a788d)
  • ast: add DirectiveKind with Kind() method, remove Directive() (bf1442c)
  • ledger: add ConvertBalance and GetBalanceInCurrency APIs (56e874d)
  • ledger: add GetAccountsByType() for filtering by account type (be8c27c)
  • ledger: add GetBalanceInCurrencyAsOf plus rename GetBalancesAsOfInCurrency (ef4db35)
  • ledger: add GetBalancesAsOfInCurrency and consolidate account iteration (ca980a5)
  • ledger: add graph abstraction with pathfinding (66249ae)
  • ledger: add reporting APIs with posting history (0ea3f5b)
  • ledger: implement account hierarchy with balance aggregation (aa6a6f2)
  • ledger: implement explicit commodity nodes in graph (dcf0089)
  • ledger: implement temporal price index with forward-fill semantics (a065b5e)
  • ledger: support implicit posting amount inference (598109d)
  • support and preserve comma thousands separators (#114) (2e39fee)
  • web: add read-only mode to UI and API (bb390fe)

Bug Fixes

  • parser: handle blank lines between postings (15c1063)
  • parser: preserve blank lines after transaction postings (fab5930)
  • parser: standardize token names to uppercase (88dcb36)
  • web: check return value of Fprint (7f7b638)
  • web: correctly lowercase position properties when encoded to json (310f47d)
  • web: start error marker at beginning of line (b177d81)

0.6.0 (2025-12-18)

Features

  • ast: attach string escape metadata and inline flag to AST nodes (8bdd108)
  • ast: store inferred amounts directly on AST nodes (7211e03)
  • lexer: implement consistent token consumption (bececd1)
  • make codemirror aware of beancount syntax (#79) (d7298fc)
  • make codemirror popover colors consistent with overall theme (6adaeb3)
  • parser: add UTF-8 validation to lexer (9af4688)
  • parser: add validation to reject invalid beancount syntax at parse time (bf06702)
  • parser: improve string literal parsing with escapes and validation (d873409)
  • parser: preserve original string escape information for round-trip formatting (6bcfbc7)
  • parser: track escape sequences for round-trip formatting (98b6c8b)
  • web: add account autocomplete with match-sorter (90bdb2c)
  • web: add context-aware account autocomplete (16e567e)
  • web: add GET /api/accounts endpoint (0a6ce4f)

Bug Fixes

  • formatter: ensure idempotency by trimming leading and trailing blank lines (5c33705)
  • formatter: ensure idempotency by trimming trailing blank lines (4d57fa1)
  • formatter: gracefully handle malformed input (227895e)
  • formatter: resolve idempotency failure in Note/Document with inline metadata (6c06ab8)
  • formatter: respect Metadata.Inline flag for posting metadata (c3c9abb)
  • formatter: skip directives with invalid dates to prevent malformed output (c1008fe)
  • formatter: skip raw tokens with newlines to preserve idempotency (f552d07)
  • ledger: reject invalid years (48e35d2)
  • metadata parsing and formatting bugs affecting idempotency (b77a8e9)
  • parser: correct position tracking for multi-line directives (6e575be)
  • parser: handle escaped backslash with escape chars correctly (f59e7e5)
  • parser: handle inline comments in transaction postings (718444c)
  • parser: require narration in transaction headers (f59b5cf)

0.5.0 (2025-11-03)

Features

  • add average time per item to all structured timer outputs (0cea719)
  • serve interactive editor through web command (#45) (7a58980)

Bug Fixes

  • formatter: auto-calculate currency column by default (29076d4)

Performance Improvements

  • parser: add consistent string interning for memory savings (a3ab4c9)
  • telemetry: aggregate transaction validation timing for large files (289198b)

0.4.0 (2025-10-21)

Features

  • add source context to parse errors (f032ef1)
  • add support for additional metadata value types (195d6c5)
  • add support for expressions in amounts (73d76de)
  • apply small optimizations to parser logic (8b809cc)
  • cost: add total cost syntax {{…}} (5489905)
  • goreleaser: add nfpms for linux packages (c6b5545)
  • ledger: add validators for costs/prices/directives (8cf6a6c)
  • ledger: implement merge-cost lots {*} functionality (ddc409c)
  • ledger: implement modern tolerance inference (5dc2124)
  • ledger: implement pad synthetic transactions (e04a984)
  • ledger: implement validation/mutation separation (0225cf6)
  • make stdin default input when no filename provided (5d417f6)
  • replaced participle with a custom recursive descent parser (#43) (85d9ba2)
  • support multiple values for option directives (94f3bc6)
  • telemetry: add µs precision and rounding indicators (7e02668)

Bug Fixes

  • add binary field to homebrew cask (5f16baf)
  • ast: add stable sort with line number tertiary key (eeec8ba)
  • correctly resolve binaries when testing on windows (bea1a35)
  • goreleaser: package executable not archive (5835fcb)
  • match formatting defaults with bean-format (be80e43)
  • parser: report error at the end of the number token (f852036)
  • support Unicode characters in account names (b8ff156)
  • telemetry: correct hierarchy and timer lifecycle (cb3e100)

0.3.0 (2025-10-17)

Features

  • add context for cancellation support (7f4f14c)
  • add timing telemetry with --telemetry flag (5902a9f)
  • ast: add builder functions with functional options (39fa281)
  • expose ast types through ast/ package (930f0d6)
  • make error formatting consistent (c607c41)
  • telemetry: make flag global, add to format (785b531)

0.2.0 (2025-10-17)

Features

  • add support for custom directive (54d352a)
  • add support for plugin directive (8112921)
  • add support for pushtag/poptag and pushmeta/popmeta (d318c52)
  • add transaction context to account errors (d627eb6)
  • add transaction context to errors (b582421)
  • align currencies correctly regardless of character type (66f99e5)
  • initial ledger functionality (#42) (fd495c6)
  • make parser accept quoted string as booking method (3a369b9)
  • pass short commit when building (12725d1)
  • resolve files from include directives (2fdd162)
  • show usage instead of error (836c496)
  • sign checksums when releasing (17176a6)
  • update formatter with additional directives (15e2495)

Bug Fixes

  • allow transactions on account close date (d98d576)
  • correctly handle slashes on windows (22502eb)
  • detect empty cost specs in weight calculation (6c60c44)
  • infer costs for empty cost spec augmentations (1ea35e1)
  • preserve original spacing when formatting (d00e75f)
  • update test for close date behavior (d784e27)

0.1.0 (2025-10-17)

Features

  • account validation through switch statement (fc7d37b)
  • add merge cost specification (13a6845)
  • Add support for document directive (4808d39)
  • Add support for event directive (356fbe1)
  • Add support for note directive (482b970)
  • Add support for pad directive (1969c96)
  • Add support for price directive (30023f4)
  • add support for cost with date syntax (90e9b58)
  • add support for empty costs ({}) (b0f190d)
  • add support for formatting beancount files (#41) (aefe473)
  • Add support for include directives (629f3fe)
  • add support for links in transactions (#40) (5975259)
  • add support for tags (138df65)
  • attach text labels to cost basis (e7ecd05)
  • Capture dates as Date structs (c46e387)
  • Define all possible directives as structs (8d61b14)
  • directly parse date from guaranteed format (1703578)
  • expose version information through CLI (3d23350)
  • Let kong handle reading the file’s content (8dfe1af)
  • Make account name parsing stricter (5edd9be)
  • Move parser to subpackage (2c12ca8)
  • remove prefixes from links and tags (550432a)
  • remove unnecessary time.Time() conversion (2f3d2a8)
  • require at least go 1.24 (137f238)
  • Reuse Amount struct to define price on posting (dd4c6be)
  • simplified account regex pattern (b4e3381)
  • skip characters from guaranteed format (abf4a47)
  • skip sorting if already sorted (04e25c8)
  • Sort directives by date while checking (738ca7c)

Bug Fixes

  • Check error return value of Capture() call (438577d)
  • Make constraint currencies on open directive optional (2ef88a8)