v0.1.311

daydreamlive/DEMONv0.1.311Jan 10, 2026by github-actions[bot]

AI Summary

This release adds support for directory-based CSV sources and European CSV formats, but introduces a breaking change regarding how tags are collected to prevent unexpected behavior.

Key Highlights

  • Added support for directory and glob patterns in CSV sources
  • Improved handling of European-style semicolon-delimited CSVs
  • Tags are now collected from fewer sources (Breaking Change)

Breaking Changes

  • Tags are now only collected from tag-only rules or the winning categorization rule

New Features

  • Folder and Glob CSV Sources
  • European CSV Support
  • Currency Symbol Detection
  • Field Transforms for Fees

Full Release Notes

### Folder and Glob CSV Sources (#76)

Drop CSV files in a folder without merging - tally now supports directory and glob patterns in data sources:

```yaml
data_sources:
  - name: bank
    file: data/bank/*.csv           # All CSVs in folder
    format: "{date},{description},{amount}"

  - name: credit
    file: data/statements/**/*.csv  # Recursive glob
    format: "{date},{description},{amount}"
```

Works with all commands: `run`, `explain`, `discover`, and `diag`.

*Thanks to @criemen for the suggestion!*

### European CSV Support (#70, #72, #77)

The `inspect` command now correctly handles European-style CSVs with semicolon delimiters and quoted fields:

```csv
"Date";"Description";"Amount"
"15/01/2025";"GROCERY STORE";"123.45"
```

Auto-detection now shows the detected delimiter in suggested config:
```
Suggested format string:
  format: "{date}, {description}, {amount}"
  delimiter: ";"
```

*Thanks to @FabienDehopre for reporting this issue!*

### Currency Symbol Detection

`tally inspect` now detects currency symbols in amount columns and shows them in the analysis.

### Tag Collection Fix (#67)

**Breaking Change**: Tags are now only collected from:
- Tag-only rules (rules without a category)
- The winning categorization rule

Previously tags from ALL matching categorization rules were included, which could cause unexpected behavior (e.g., `income` tag from a non-winning rule).

*Thanks to @criemen for identifying this surprising behavior!*

### Field Transforms for Fees

Support `field.amount` transforms to handle fee columns:
```
field.amount = field.amount + field.fee
```

### Other Improvements

- Smart warnings for expensive glob patterns
- `location` is now a regular custom field (not special-cased)
- Documentation updates for transforms and experimental features

### Install

**Linux / macOS:**
```bash
curl -fsSL https://tallyai.money/install.sh | bash
```

**Windows PowerShell:**
```powershell
irm https://tallyai.money/install.ps1 | iex
```

Or download the zip for your platform below.

See https://tallyai.money for more info.