# T07：保持兼容性的重构

`ledger/cli.py` 与 `ledger/query.py` 各自实现了一份 ISO 日期边界解析逻辑。把重复逻辑抽取到 `ledger/dates.py`，让 CLI 校验和查询过滤共用同一实现。

必须保持 `ledger.query.filter_by_date(transactions, start_date=None, end_date=None)` 的函数签名、返回类型、日期错误的 `ValueError` 行为，以及 CLI 对非法日期的错误输出和退出状态兼容。不得做无关格式化或全仓库改名；不得删改已有测试或增加运行时依赖。可增加兼容性测试。

运行 `python3 -m unittest discover -s tests -v`，并说明重构前后的职责变化和实际验证结果。
