Compare commits

...
Author SHA1 Message Date
l0ng-ai fa12000bcf build: use thin LTO for release builds
Fat LTO's whole-program link outgrew the 16 GB release runners: from
v0.1.39 on, the Linux arm64 build was killed mid-link and had to be rebuilt
with thin LTO by hand. Thin LTO keeps most of the optimisation at a fraction
of the link memory and time.
2026-11-09 22:04:40 +08:00
LU XIANGRUIandLU XIANGRUI 4c6ebc865e test(markdown): 为 Mermaid 流程图与时序图控制块纯黑补回归测试 (#2363)
- 用 issue 中的流程图原样渲染,断言节点和 subgraph 不是纯黑
- 补时序图 loop 控制块(.labelBox)的断言,#2288 的用例只覆盖了 cluster

Co-authored-by: LU XIANGRUI <[email protected]>
2026-11-09 21:54:41 +08:00
2 changed files with 30 additions and 1 deletions

No files matched your search

+3 -1
View File
@@ -132,7 +132,9 @@ debug = false
[profile.release]
codegen-units = 1
lto = true
# Thin LTO: fat LTO's whole-program link outgrew the 16 GB release runners
# (Linux arm64 was killed mid-link from v0.1.39 on).
lto = "thin"
opt-level = 3
# Unwind, so a panic fails one task or command instead of quitting the IDE.
panic = "unwind"
+27
View File
@@ -360,3 +360,30 @@ test("keeps mermaid `<style>` rules scoped to the rendered svg after id rewritin
expect(await css(reply, ".cluster rect", "fill")).not.toBe("rgb(0, 0, 0)");
expect(await css(reply, ".flowchart-link", "fill")).toBe("none");
});
test("keeps mermaid flowchart nodes and sequence control blocks off solid black", async ({ page }) => {
const flow = [
"```mermaid",
"flowchart LR",
' subgraph Client["Client"]',
' A["Local agent"]',
' B["Voice input"]',
" end",
' subgraph Cloud["Cloud"]',
' C["Cloud agent"]',
' D["Memory service"]',
" end",
" B --> A",
" A --> C",
" C --> D",
"```",
].join("\n");
const sequence = ["```mermaid", "sequenceDiagram", " loop every minute", " A->>B: ping", " end", "```"].join(
"\n",
);
const reply = await openReply(page, `Flow:\n\n${flow}\n\nSequence:\n\n${sequence}`);
await expect(reply.locator("[data-mermaid-state='ok'] .mermaid-output svg")).toHaveCount(2);
expect(await css(reply, ".node rect", "fill")).not.toBe("rgb(0, 0, 0)");
expect(await css(reply, ".cluster rect", "fill")).not.toBe("rgb(0, 0, 0)");
expect(await css(reply, ".labelBox", "fill")).not.toBe("rgb(0, 0, 0)");
});