# T04: Date Range Boundary Fix

Fix `ledger.query.filter_by_date(transactions, start_date=None, end_date=None)`. Date boundaries use the fixed ISO `YYYY-MM-DD` format, and both the start and end dates are inclusive; when a boundary is omitted, that direction is unbounded. Compare by date semantics — do not substitute string sorting for date parsing. Malformed formats or invalid calendar dates must raise `ValueError`.

Keep the function signature, other filtering behavior and public interfaces compatible. You may add tests; do not delete or modify existing tests or add runtime dependencies. The CLI must keep rejecting illegal dates with a non-zero exit status in the existing error style. Run `python3 -m unittest discover -s tests -v` and report the actual result.
