4fe956fcf91a70f44b15f4800fe5cadbc27ba0a9
ci/woodpecker/push/main Pipeline failed
Root cause: resolve_window() matched quarter/half with p[4] == "q" / "h"
(always '-' for "2026-q2"/"2026-h1"), and the branches sat after the
single-month branch -> dead code. Real input fell into the month branch,
so months_between() raised ValueError on int('q2') -> HTTP 500 for all
18 quarter/half options in the period selector.
Fix: judge on p[5] in ("q","h") with a digit guard on p[6], evaluated
before the single-month branch; month branch tightened to p[5:].isdigit().
Existing error-branch wording unchanged.
Tests: backend/tests/test_dupont_period_options.py (18 defect options,
case equivalence, month/year/ytd/ttm/custom non-regression, malformed
input returns error dict instead of raising).
管理会计OS
P0/P1/P2全功能已提交,CI/CD自动构建中 CI/CD: Woodpecker自动构建部署 CI验证: Sun Jul 12 05:13:08 PM CST 2026 webhook测试: 17:13:27 CI验证完成 17:15:10 CI最终验证: 17:16:24 CI全链路验证通过 ✅ woodpecker重启验证 gitea重启后验证 CI最终验证 17:19 最终测试 17:20:06 hash验证 Git Hooks自动部署验证 17:32
Languages
Python
73.7%
Vue
23.7%
TypeScript
1.2%
Shell
0.8%
HTML
0.3%
Other
0.2%