<feed xmlns='http://www.w3.org/2005/Atom'>
<title>strategy-lab.git/frontend/src/lib/chartResize.test.ts, 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:47+00:00</updated>
<entry>
<title>feat(frontend): 图表层从 echarts 迁移 layerchart（新长格式 Chart API）</title>
<updated>2026-09-18T00:26:47+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-18T00:26:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/strategy-lab.git/commit/?id=33cac3eef7d9962d8803cd812553549d6f555516'/>
<id>urn:sha1:33cac3eef7d9962d8803cd812553549d6f555516</id>
<content type='text'>
[变更性质]
图表渲染引擎替换，渲染输出保持同等信息（曲线/图例/轴），删除
echarts 在后续页面迁移后正式退场。

[新增功能]
新 Chart.svelte 封装 layerchart LineChart，API 为长格式 data（
{i, date, ...columns}）+ series（key/label/value/color/dashed/area）。

[实现方案]
宽度语义与旧 echarts 包装一致：ResizeObserver 实测宿主宽度优先，
width prop 只是初始/测试尺寸，640 为无布局回退——SVG 永远跟随宿主，
绝不粘滞桌面宽度。runes 模式的关键坑：measured 必须 $state，否则 RO
回调触发的宽度更新不会重渲染（旧 echarts 版本为命令式 API 无此问题）。
chartResize.test.ts 以 layerchart 真渲染重写 4 个合同用例：jsdom 真实
SVG、width prop 跨视口变更、无重挂载的 in-place RO 收缩、零布局宿主
RO 回调不抛错。test-setup.ts 增加 window.matchMedia shim（layerchart
settings 上下文需要）并移除因此失效的 @ts-expect-error。

[影响范围]
回测结果/对比曲线等消费方在后续页面提交中切换到本 API；svelte-check
对 layerchart 复杂泛型以 as never 收口，0 error。
</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>
