7b74736980e9f9ce750da4319955c3fd2fcbbe06
api/index.ts: add permissionApi.getModules/getConfig/saveConfig + alignmentApi.config/tree. views: replace 13 raw fetch calls and 6 local axios.create instances (each hand-building the Authorization header, without the shared 401 redirect / timeout toast) with the shared instance from api/index.ts. KPIAlignment: fixes a live bug - the header value was the string literal 'Bearer ' + token, so /alignment/tree always returned 401 (reproduced against the production bundle). Unwrap semantics preserved: the shared response interceptor returns response.data, so call sites that used res.data were adjusted accordingly. Verified: scan-frontend-tokenless RAW-TOKENLESS=0; vite build ok; headless A/B (new dist vs production bundle, 8 affected pages, real login) -> identical rendered rows and identical pre-existing error profile, /alignment 401->200. Push not executed: main is ahead 4 with other tickets' gated commits (see cma-main-ahead3-push-gate-notice-20260915).
管理会计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%