<feed xmlns='http://www.w3.org/2005/Atom'>
<title>strategy-lab.git/server/src, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://git.somhairle.bid/strategy-lab.git/atom?h=main</id>
<link rel='self' href='http://git.somhairle.bid/strategy-lab.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/strategy-lab.git/'/>
<updated>2026-09-18T00:26:18+00:00</updated>
<entry>
<title>fix(data): ETF 身份契约与挂载权限修复（159399 QA 回归）</title>
<updated>2026-09-18T00:26:18+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-18T00:26:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/strategy-lab.git/commit/?id=95215e84e045602db2370586f6089a7f9f91b33b'/>
<id>urn:sha1:95215e84e045602db2370586f6089a7f9f91b33b</id>
<content type='text'>
[问题原因]
前端手动录入表单保存的 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 数据模块全绿。
</content>
</entry>
<entry>
<title>chore: establish Strategy Lab source baseline (development, not release)</title>
<updated>2026-09-17T06:32:37+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-17T06:32:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/strategy-lab.git/commit/?id=5c0ba37eda80d39e6ceca59bb1d5f4942f858995'/>
<id>urn:sha1:5c0ba37eda80d39e6ceca59bb1d5f4942f858995</id>
<content type='text'>
</content>
</entry>
</feed>
