summaryrefslogtreecommitdiff
path: root/frontend/src/lib/projectsPageLoad.test.ts
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-18 08:26:18 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-18 08:26:18 +0800
commit95215e84e045602db2370586f6089a7f9f91b33b (patch)
tree5119907dea5918d6eb26520e6dceed63b8030ad6 /frontend/src/lib/projectsPageLoad.test.ts
parent5c0ba37eda80d39e6ceca59bb1d5f4942f858995 (diff)
downloadstrategy-lab-95215e84e045602db2370586f6089a7f9f91b33b.tar.gz
fix(data): ETF 身份契约与挂载权限修复(159399 QA 回归)
[问题原因] 前端手动录入表单保存的 market 字段是 SH/SZ/BJ 原文,但 worker 的 split_identity 只接受 market:"cn" 并按代码前缀推交易所,导致 market:"SZ" 的 159399 在发起任何网络请求前就报 unsupported_market。 同时 server 为非 root 容器(uid 65534)准备挂载时,完整文件挂载从不 被 chmod,且所有 chmod 失败都被静默吞掉,worker 容器读数据集可能 Permission denied 且不易定位。 [问题根因] 身份契约在 server 持久化层与 worker 适配层不一致;挂载权限处理是 best-effort 静默吞错,缺少最小作用域约束。 [修复方案] worker/data.py: market 原样映射 IDENTITY_EXCHANGES(SH/SZ/BJ), "cn" 保持代码前缀推断(SH=3/6/9 开头,否则 SZ),未知市场仍显式拒绝 绝不猜测;sina 数据源的警告文案改为只陈述可证实事实(无日期参数、 不除权、成交量单位为股且不换算),删除与其它 provider 的 100x 换算 断言。server/src/worker.rs: prepare_mounts 严格化——独立文件挂载仅在 "只读 + /data/ 前缀"范围内 chmod 0644,拒绝符号链接,目录挂载保持 0755/0777,所有 chmod 失败作为错误返回而非吞掉。tests/worker/ test_data.py 新增身份契约用例:SZ/SH 原文、cn 推断不变、SZ 直达 sina provider 的端到端 fetch。 [影响范围] worker 数据获取链路与 server 任务编排;server/target/release 二进制 已含本改动(2026-09-17 构建);pytest 数据模块全绿。
Diffstat (limited to 'frontend/src/lib/projectsPageLoad.test.ts')
0 files changed, 0 insertions, 0 deletions