diff --git a/ATTRIBUTIONS.md b/ATTRIBUTIONS.md index 9f593fc..543c606 100644 --- a/ATTRIBUTIONS.md +++ b/ATTRIBUTIONS.md @@ -32,7 +32,7 @@ This register distinguishes repository-owned material from third-party sources. | Noto Sans IPA PDF fallback subset | `book-assets/fonts/NotoSans-LifeLevelUp-IPA.ttf` | [Google Fonts / Noto Sans](https://github.com/google/fonts/tree/main/ofl/notosans) | OFL-licensed fallback subset containing the IPA characters absent from Noto Serif SC; license text retained as `book-assets/fonts/OFL-NotoSans.txt` | 2026-09-02 | | Author project screenshots and visit photos | `docs/projects.md`, `docs/en/projects.md` | Author-provided media | Used for disclosure and personal record; not evidence of third-party endorsement | 2026-08-16 | | WeChat profile and practice articles | `docs/projects.md`, `docs/threads/part-3/2-ai-development-and-resource-layer.md` and English counterparts | [TokenMany](https://mp.weixin.qq.com/s?src=11×tamp=1787503349&ver=6922&signature=hsfWcee*q*Okq4gsJ5TpMaWV4vZTwLean6SKtOxCC-EyAf9jWD6l1LQYDny29FqXVImHZFNFDPt*EVH*hVMN2pa91kZtuYfzI81wtV7yahnqVBsKS*c7Ls1uf9QqiEIF&new=1), [Wanli Center](https://mp.weixin.qq.com/s?src=11×tamp=1787503349&ver=6922&signature=k7g1j*QF9lLWMGUlkAu65EFOmvokb8FoM51LNr4hgn4Q4Cc7q3t3O8Mkac7YnWTJbIVdvX-PXYdZXVHEohJieTOPR*Q2-TVAHuIg2ljgp2BMn8m7STrvovnpW01j817Y&new=1) | Paraphrased with source and limitation; narrative material only, no capability, customer, or revenue claim inferred | 2026-08-24 | -| Latest personal updates | `docs/assets/latest/` and both home pages | Author-provided media | Used with the author's permission for the stated personal updates; EXIF metadata removed before publication | 2026-08-20 | +| Latest personal updates, including the fourth wedding photo | `docs/assets/latest/` and both home pages | Author-provided media | Used with the author's permission for the stated personal updates; publication permission for the fourth wedding photo confirmed; EXIF metadata removed before publication | 2026-10-30 | | Douyin public account QR code | `docs/assets/creator-douyin.jpg` and both home pages | Author-provided media | Published with the author's permission as a public account-following entry point; EXIF, IPTC, and XMP metadata removed before publication | 2026-10-09 | | Workflow and agent architecture distinction | Bilingual `threads/practice/ai-workflows.md` | [Anthropic, Building effective agents](https://www.anthropic.com/engineering/building-effective-agents) | Brief architectural paraphrase only; the page's tooling-change note is acknowledged; original practice examples, no article or artwork redistributed | 2026-09-20 | | Agent building blocks and model-routing baseline | Bilingual `threads/practice/ai-workflows.md` | [OpenAI, A practical guide to building agents](https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf) | Model/tool/instruction, guardrail, baseline-evaluation, and cost/latency ideas paraphrased from the official guide; no product-performance claim or source text bundled | 2026-09-20 | diff --git a/README.md b/README.md index b3691d6..caf504f 100644 --- a/README.md +++ b/README.md @@ -198,8 +198,8 @@ AI 可以降低探索、学习和创造的门槛,却不能替你建立信誉
-
+
diff --git a/docs/README.md b/docs/README.md
index de6460a..98d6b2a 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -204,8 +204,8 @@ AI 可以降低探索、学习和创造的门槛,却不能替你建立信誉
-
+
diff --git a/docs/assets/latest/fourth-marriage.webp b/docs/assets/latest/fourth-marriage.webp
new file mode 100644
index 0000000..232b73e
Binary files /dev/null and b/docs/assets/latest/fourth-marriage.webp differ
diff --git a/docs/assets/latest/single-again.webp b/docs/assets/latest/single-again.webp
deleted file mode 100644
index 51d4d75..0000000
Binary files a/docs/assets/latest/single-again.webp and /dev/null differ
diff --git a/docs/en/README.md b/docs/en/README.md
index 5800264..9dff00b 100644
--- a/docs/en/README.md
+++ b/docs/en/README.md
@@ -192,8 +192,8 @@ A method reveals its strength only after it enters a life. Relationships end and
-
+
diff --git a/tests/site.spec.mjs b/tests/site.spec.mjs
index e747e3b..f5b1a74 100644
--- a/tests/site.spec.mjs
+++ b/tests/site.spec.mjs
@@ -1351,10 +1351,13 @@ test("language navigation and representative image work", async ({ page }) => {
test("home page shows the latest updates", async ({ page }) => {
await page.goto("./");
await expect(page.getByRole("heading", { level: 2, name: "现实仍在继续" })).toBeVisible();
- const partnerPhoto = page.getByRole("img", { name: "韩先凯与伴侣的合影" });
+ const partnerPhoto = page.getByRole("img", { name: "韩先凯与伴侣在第四次婚礼上的合影" });
const readersPhoto = page.getByRole("img", { name: "韩先凯在阿里巴巴参观千问大模型展示" });
await expect(partnerPhoto).toBeVisible();
await expect(readersPhoto).toBeVisible();
+ await expect(page.locator(".latest-update").first()).toContainText(
+ "爱情与婚姻的感悟:爱不只是一时的心动,也是在日常里持续选择、尊重、承担与共同成长。",
+ );
for (const [image, extension] of [
[partnerPhoto, /\.webp$/],
[readersPhoto, /\.jpe?g$/],
@@ -1441,7 +1444,7 @@ test("latest home photos stay within the deferred media budget", async ({ page,
await page.goto("./");
const images = [
{
- image: page.getByRole("img", { name: "韩先凯与伴侣的合影" }),
+ image: page.getByRole("img", { name: "韩先凯与伴侣在第四次婚礼上的合影" }),
extension: /\.webp$/,
contentType: "image/webp",
maxBytes: 220_000,