 wait4xandGLM-5.3
|
c4bdf46614
|
fix(ops): .mjs MIME 修复脚本——pdf.js worker 线上加载失败根因
线上 /_astro/pdf.worker.min.*.mjs 被 nginx 以 application/octet-stream
返回(mime.types 无 mjs 映射),浏览器拒绝以 module worker 加载 →
/papers/ 页 pdf.js 静默回落兜底卡;本地 python 测试床能猜对 MIME 故未
暴露。脚本幂等追加 mjs 到既有 javascript 映射行,-t 门禁+回滚+线上终验。
验证: bash -n 过;线上 worker 头实测 application/octet-stream(病根实证)
Spec: none (运维修复脚本)
Co-authored-by: GLM-5.3
|
2026-11-02 16:03:30 +08:00 |
|
 wait4xandGLM-5.3
|
280654f9e3
|
feat(reader): PDF 改 pdf.js 渲染+斜体 bug 根治+评论假挂载修复+排版类
【T1 PDF 内置阅读重做】iframe 对 arXiv PDF 实测 ERR_ABORTED(浏览器 PDF
插件策略差异)→ pdfjs-dist 6.4.299 客户端 canvas 渲染:只在 /papers/
动态 import(worker ?url 打包,不进全站 bundle);文档一次取回 + IO
懒渲染(rootMargin 400px)+ 页占位 aspect-ratio 防跳动 + 12s 首屏兜底 +
微信 UA 直接兜底;工具条页码/缩放/翻页/下载/arXiv/授权声明保留。红线:
PDF 由访客浏览器直取 arXiv(CORS * 实测),仓内零副本。真页实测:
13 页 canvas 全绘制、首屏墨迹像素非空、零 console 错误。
【T2 斜体排版 bug 真凶】global.css 的 `.prose-* p > em:only-child
{ display:block; text-align:center }` 图注样式按"斜体独占段"自动命中,
把所有正文独占段斜体变成块级居中。改:图注用显式 .fig-cap 驱动 + 补
em/i { display:inline; font-style:italic } 基线;media-sample 迁移新写法,
指南注明旧写法失效原因。实测独占段与行内斜体均 display:inline/italic。
【T3 评论"假挂载"真 bug】原 initArtalk 一进来就置 mounted=true——脚本
404/被拦截时把空容器误标已挂载,5s 兜底被绕过,正是"评论区一直空着"的
来源之一。改为库就绪才算成功;另加三触发路径(IO 主 + 锚点点击 + 滚到
页底 2s 兜底)、5s 失败提示+重试钮、软导航重挂、成功打
data-artalk-mounted=1 供 E2E。
【T4 文章排版类 + 安全白名单】11 个受限类(ink-1/2/3/muted/accent、
font-serif/kai/sans/mono、drop-cap、quote-line、fig-cap)全走 tokens 禁
任意 hex;新增 rehype-class-whitelist.ts:className 白名单 + 剥离 style
与 on*;实测注入用例只剩 class="ink-2",style/onclick 全无。新坑入档:
markdown raw HTML 在 hast 是 type:'raw' 节点、白名单插件看不见 span,必须
先 rehype-raw 再过滤 → 插件链 [rehypeRaw, rehypeClassWhitelist,
rehypeLinkCards]。新依赖:pdfjs-dist、rehype-raw。
车道:op-artalk(T1 6/6、T2 2/2、T3 3/3、T4 6/6);收编复验:build 46 页、
E2E 37/37、四专项 playwright 实测(PDF 13 canvas/斜体 inline/白名单净化/
评论 mounted 标记)
验证: node v26.13.0 + astro 7.4.4 构建 46 页 exit 0;E2E 37/37 PASS
Spec: none (阅读体验四件,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-02 15:59:28 +08:00 |
|
 wait4xandGLM-5.3
|
328ab68f18
|
feat(cms): 后台扩展五件——关于页 markdown 化/社交/头像/favicon/分轨首页
- T1 关于页=markdown 文档:about.yaml intro 扩为多段 markdown(zh/en),
AboutPage 用 @astrojs/markdown-remark 的 createMarkdownProcessor(进程
内单例复用)+ set:html 渲染,正文 p/ul/strong/a 对齐站点排版;名片与
技能卡结构不动
- T2 社交链接单一数据源:home.yaml socials[](label/url/icon)+
SocialLinks.astro(图标注册表白名单:github/rss/email/bilibili/x,
未登记 icon 回退纯文字),首页 zh/en 内联硬编码社交块删除
- T3 头像与 favicon 可上传:schema avatar: image()(Astro Image 出 60px
WebP,未设回退渐变 SVG);home.yaml favicon → BaseLayout link[rel=icon]
按扩展名给 type,留空回退 /favicon.svg
- T4 首页分轨:PostList perTrack → 阅读轨/技术轨两段各限 6,各自出口
(阅读→/books/ 技术→/archives/,en 同构);E2E 断言改为两段各≤6+各自
出口+阅读在前
- T5 后台列表日期:posts summary「{{pubDate}} · {{title}}」、moments
「{{fields.pubDate}} · {{fields.text}}」+sortable;photos 无 frontmatter
日期(JSON sidecar)保持分组 · 标题并在文档写明原因
- 顺手修 content-lint 漏报:中文文件名在 HTML 里为 %XX 编码,脚本直接
拼盘上路径导致 6 条"缺图"误报 → 加 decodeURI
- 清理:删除书封误传遗留的双重嵌套目录文件
车道:op-gitea(5/5,build+E2E 37/37+lint 47 页 0/0/0);收编复验:
build 46 页 + E2E 37/37 连跑(首跑两红为车道并发构建擦 dist 的瞬时态,
复跑绿)
验证: node v26.13.0 + astro 7.4.4 全量构建 46 页 exit 0;E2E 37/37;
content-lint 0/0/0;books details/命令面板 playwright 实测
Spec: none (后台能力扩展,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-02 15:46:41 +08:00 |
|
 wait4xandGLM-5.3
|
227bc24797
|
build(deps): Node 26.13.0 + Astro 7.4.4 升级(含 exif loader 句柄修复)
- 宿主 Node 22.22.3 → 用户级安装 26.13.0(~/.local/node),systemd
unit PATH 前置,CI 构建链同步吃到新版本
- Astro 7.3.8 → 7.4.4(7.4 要求 Node ≥22.23.4,此前升级因 Node 版本
不足被 CI 拒绝;本次先升 Node 再升框架)
- exif loader 修复:Node 22.23+/26 把"GC 时仍打开的 FileHandle"从警告
升级为错误,exifr 接收文件路径时自开 fd 不显式关闭 → 全线 content/
photos/*.jpg 触发构建失败。改为一律 readFile 成 Buffer 再喂 exifr
(无 fd 参与)
验证: 全量构建 44 页 exit 0(node v26.13.0 + astro 7.4.4);E2E 37/37;
content-lint 0/0/0;后处理链(字体子集/首页内联)复跑通过;
unit PATH 实测已前置 node26
Spec: none (运行时与框架升级,全链验收)
Co-authored-by: GLM-5.3
|
2026-11-02 15:27:28 +08:00 |
|
 wait4xandGLM-5.3
|
7c1462bde0
|
fix(admin): 书封上传路径修复——media_folder 相对解析 + Astro 暂留 7.3.8
- Sveltia 对 folder 集合的 media_folder 按"相对集合目录"解析:写成
content/posts/assets 会二次嵌套成 content/posts/content/posts/assets
(用户在后台首次上传书封即踩,文件落错位置 + cover 引用缺失 →
构建 ImageNotFound,发布链中断)。修为 assets,并把已落错位置的
书封文件移到 content/posts/assets/
- Astro 7.4.4 需要 Node >= 22.23.4,宿主为 22.22.3:升级将锁死 CI
构建(实测 CI 报 not supported)。本笔回落到 7.3.8 恢复发布链;
Node 升级后另行升级 Astro(含全链验收)
验证: pnpm astro build 44 页 exit 0;书封图片入 content/posts/assets/
与文章 cover 路径一致
Spec: none (后台路径修复 + 依赖回滚)
Co-authored-by: GLM-5.3
|
2026-11-02 15:09:03 +08:00 |
|
wait4x
|
5c814f0866
|
Update 页面文案 “opensource”
|
2026-11-02 06:59:40 +00:00 |
|
 wait4xandGLM-5.3
|
8f01d825b7
|
build(deps): Astro 7.3.8 → 7.4.4(同 major 小版本升级)
- 项目 Phase 1 曾故意锁 7.3.8(Astro 7 换 Rust 版 Sätteri Markdown
处理器,自定义插件压在 legacy unified 路径上)——现 D 车道已装
@astrojs/markdown-remark 兜住该路径,升级窗口成熟
- 7.4.x 对本站有实际收益的三项修复:①<Image>/<Picture> 重复 srcset
候选(图库/书封/OG 卡缩略图大量使用)②ClientRouter 返回导航不再播放
smooth 滚动动画(本站开 View Transitions)③未使用组件 scoped 样式
泄漏(与 CSS 体积优化相关)
- 升级后清 node_modules/.astro(渲染缓存)全量重建
验证: 全量构建 45 页 exit 0;E2E 37/37 PASS;content-lint 0/0/0;
后处理链复跑(字体子集 8.0→3.2MB 60% 裁减、首页 CSS 内联、
SW 预缓存 19 路由);回归抽查(图库 srcset 零重复候选=7.4 修复
实证、灯箱开合、g s 弦、链接卡片渲染)全过
Spec: none (依赖小版本升级,全链验收)
Co-authored-by: GLM-5.3
|
2026-11-02 14:58:35 +08:00 |
|
wait4x
|
f8562510e6
|
Update 文章 “hai-feng-zhong-shi-luo-de-xie-se-kui-zeng” +1
|
2026-11-02 06:55:03 +00:00 |
|
wait4x
|
952e68e6ea
|
Delete 瞬间 “2026-04-29-2” +1
|
2026-11-02 06:51:59 +00:00 |
|
 wait4xandGLM-5.3
|
46d248877f
|
fix(opensource): zh 开源页补 pinned 参数接线(收编遗漏)
内容管理车道改了 zh/en 双页,收编时只圈了 en 版,zh 版靠默认
PINNED_DEFAULT 兜底(行为等价但接线不一致)。补收编。
验证: pnpm astro build 45 页;E2E 37/37;content-lint 0/0/0
Spec: none (收编遗漏补齐)
Co-authored-by: GLM-5.3
|
2026-11-02 12:50:32 +08:00 |
|
 wait4xandGLM-5.3
|
f5232b7c03
|
feat(content): 链接卡片模式——独立成段裸链接转 OG 预览卡
- rehype-link-cards.ts 构建期插件:段落仅含一个链接才转卡(内联链接
保持普通样式);fetch OG/twitter 元信息(UA 伪装、4s 超时、只读前
200KB)+ favicon 兜底;任何失败回落普通链接,构建绝不因外部站点挂
- content/.link-cache.json 入仓缓存(30 天刷新,构建确定性与零重复
请求);单篇上限 10 卡、并发 4,超出回落
- LinkCardStyles.astro 灰阶卡片样式:hairline+圆角、favicon 16px、
标题一行/描述两行截断、域名 mono、OG 图右侧 88px(无图不占位)、
hover 1px 微浮(reduced-motion 豁免)、纯 CSS 零 JS
- 安全:抓取内容全 escaping、图片地址仅 http(s)
- @astrojs/markdown-remark 依赖(Astro 7 换默认 markdown 处理器后
自定义插件必须经此包生效)
- 样张 content/posts/link-cards-test.md(tags 含 hidden,活样例不列出)
修复说明:264148f 提交时误带入 archives 页面对 LinkCardStyles 的
import(两车道共改同一文件),本笔补全组件与插件,恢复构建仓可用。
教训:跨车道共改文件,staged 前必须看 diff 归属。
车道:op-artalk;收编复验:本地构建 45 页 + 卡片渲染(后续专项复验)
验证: pnpm astro build 45 页 exit 0;link-cards 样张页渲染正常
Spec: none (链接卡片,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-02 12:46:26 +08:00 |
|
 wait4xandGLM-5.3
|
264148f0a6
|
feat(cms): 内容管理闭环——站点单例三件套+文章视频字段
- A 站点文案单例:content/site/{home,about,opensource}.yaml +
src/lib/site-content.ts 访问层(字段级回落默认,默认值=原文案逐字
一致,零回归);接线主页 tagline(en 首页新增该块)、关于页 intro、
开源页叙述三段 + PINNED 参数化(projects.ts: loadProjects(pinned)
/orderPinned,PINNED_DEFAULT 仅缺省兜底)
- loader 语义修正(返工如实入档):Astro 7 的 file() 把 YAML 顶层对象
按 Object.entries 拆成多条目(id=key、data=value),单例字段必炸
schema;改 glob 精确到单文件 = 真单例语义,data 即文件根对象,
Sveltia 可编辑根字段零嵌套(比包 main: 层的方案后台体验更好)
- B 文章媒体:posts +video/+poster;Sveltia file 字段
(media_folder=public/media、public_folder=/media、hint ≤50MB);
正文后渲染 video controls preload=metadata playsinline,无则不渲染;
图片链路核对本已一致(./assets 走 Astro 管线);链接 markdown 原生
- docs/写作指南.md 补「后台上传」节(三类媒体 + 三单例操作 + 体积纪律)
Sveltia 集合:posts / moments / photos / site_pages(三单例)
车道:op-gitea(实测 tagline 改 yaml 产物联动、置空回落默认、pinned
改名排序变、视频临时件渲染全对、构建绿 + lint 45 页 0/0/0);收编
复验:构建 44 页 + E2E 37/37 + 三 yaml 扁平键就位
验证: pnpm astro build 44 页 exit 0;E2E 37/37 PASS;content-lint
0/0/0;播放器/单例/置顶 playwright 实测全过
Spec: none (内容管理闭环,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-02 12:42:10 +08:00 |
|
 wait4xandGLM-5.3
|
5be09b6f32
|
fix(admin): 后台后端改博客域同源反代——绕开 git 域 522
git.wait4x.online 公网 522(源站侧待查)卡死 Sveltia 登录。
config.yml backend 改 base_url=https://wait4x.online/gitea +
api_root=.../api/v1;新增运维脚本给博客 vhost 加 /gitea/ 反代
→127.0.0.1:13020(Host 伪 git 域、no-store、noindex;幂等+-t 门
禁+回滚+双口径终验)。同源后 CORS 问题一并消失。
验证: yaml 解析过;pnpm astro build;bash -n 过
Spec: none (后台可用性修复)
Co-authored-by: GLM-5.3
|
2026-11-02 11:18:35 +08:00 |
|
 wait4xandGLM-5.3
|
de42fed52e
|
fix(ops): /admin/ 404 修复脚本——location 块补 root
病根:博客 vhost 的 root 写在 location / 内(launch.sh 静态切换设
计),nginx 的 location 不向上继承 root,故后来加的 location
/admin/ 块落到默认根目录 → 404(用户打不开后台的直接原因)。
脚本幂等重写 admin 块(root+index+noindex 局部),-t 门禁+回滚+
双口径终验。
验证: bash -n 语法过;本地 dist/admin 三件齐全(config/index/js)
Spec: none (运维修复脚本)
Co-authored-by: GLM-5.3
|
2026-11-02 11:13:09 +08:00 |
|
 wait4xandGLM-5.3
|
845c45aa11
|
feat(admin): Sveltia 加 posts 集合——文章与书封纳入后台管理
内容管理闭环补齐:文章(三轨,书=reading 轨同集合)可在后台新建
/编辑/上传书封;media 指 content/posts/assets(public ./assets,书封
上传即自动写路径);含标题/日期/分轨/标签/情绪色/原书作者/策展
描述/书封/隐藏/草稿/正文全字段。英文仍走 TMT 预翻译入仓,不进
后台防误改译文。
验证: yaml 解析三集合 posts/moments/photos;pnpm astro build 通过
(admin 静态产物含新 config)
Spec: none (后台集合扩展)
Co-authored-by: GLM-5.3
|
2026-11-02 11:10:00 +08:00 |
|
 wait4xandGLM-5.3
|
0e06c25f67
|
feat(gallery): 灯箱 v2.2 定版——一律侧栏 200px+长文策略+六条 polish
布局统一(视觉轨像素实测裁定 A 改窄变体:侧栏方案让照片比底
栏方案大 39%/22%):≥820 全比例右侧栏 200px(舞台恰 1080×720
零信箱)、竖横顶部统一 26px;<820 底部抽屉。EXIF 两行折行+分段
span(字段级 nowrap+::before 绑后段符号——一刀治悬空/断点丢符/
间距不对称三症状);caption clamp 4 行+展开(桌面 60dvh/移动
40dvh 内滚,锁 --fig-h 保证展开前后图区几何不变);移动底条
flex 复活+箭头同排+EXIF 两行;提示胶囊移动挂顶+触屏文案;820
计数间隙 14px;全量左对齐(孤字居中终止)。
车道:op-artalk(专项 8/8×3 轮+E2E 37/37);视觉轨道三轮裁定
(需修→复检→定版),EXIF 间距自验 5.2px 对称、换行对 1(镜头
名独占行,非缺陷)
验证: E2E 37/37;EXIF 三段宽 measured(5.2px 对称/符号 ::before
/无悬空);移动 flex+提示顶挂实测;五档几何(1280 横竖/820/768/390)
Spec: none (灯箱 v2.2 定版,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-02 10:30:35 +08:00 |
|
 wait4xandGLM-5.3
|
3b951d3de6
|
feat(archive): 文章折叠——首页 6 篇+归档年月折叠+书架年折叠
①首页 PostList limit=6 + 「全部文章 →」双轨入口(用户拍板 6 篇)
②/archives 年 <details>(最新年 open,summary「2026 · N 篇」+▸ 自绘
箭头)+ 年内按月分组小标题;零 JS 依赖、内容全在 DOM(SEO
无损)③/books 年折叠(色脊/书封渲染零改动)④E2E +3 断言
(首页≤6+入口/归档 open 唯一+月分组/书架年组不变量)
E2E 弦键竞态根治:折叠批的多次导航扰动 g-chords 时序——洁净起
点(先回稳定页)再测弦,测试意图不依赖前序状态,37/37 连跑稳定
车道:op-gitea(lint 43 页 0/0/0);收编复验首页 6 行+入口/归档
1 年开 12 月组/书架年折叠/en 轨全过
验证: E2E 37/37 连跑两次;content-lint 0/0/0;首页/归档/书架/
en 四页 playwright 实测
Spec: none (折叠批,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-02 10:00:45 +08:00 |
|
 wait4xandGLM-5.3
|
9702c9faf4
|
feat(books): 书封接口——schema cover 字段+书架卡封面渲染
posts schema 加 cover?: image(image() 走 Astro 优化管线,仅阅读
轨消费);BooksPage 有封面渲染 96/192 两档 Image、无封面优雅回
退现有色脊卡设计(零破坏);目录 content/posts/assets/books/ 就位;
docs/写作指南.md 补用法节(路径/frontmatter 示例/尺寸建议)。
验证: pnpm astro build;E2E 34/34;现 5 本书全部回退色脊卡渲染
(封面貌 0,待用户加图)
Spec: none (书封接口预留,用户自行加图)
Co-authored-by: GLM-5.3
|
2026-11-02 09:12:34 +08:00 |
|
 wait4xandGLM-5.3
|
2e33a7cd2e
|
fix(pwa): SW 缓存版本 v2→v3——冲刷主题修复前的旧页缓存
用户报首页刷新偶现浅色、内页深色。本地/生产双端复测均正确
(首帧即 dark),最可能是 SW 缓存里残留 data-astro-rerun 修复前的
旧首页(无主题脚本)。版本号 bump 强制 activate 清旧缓存。
验证: pnpm astro build;本地四页帧序列实测全 dark
Spec: none (缓存冲刷,环境性症状防御)
Co-authored-by: GLM-5.3
|
2026-11-02 09:06:42 +08:00 |
|
 wait4xandGLM-5.3
|
3050b0b959
|
feat(article): 正文图片可放大——PhotoZoom 极简 viewer 双轨挂载
正文 .prose-reading/.prose-tech 图片单击唤起全屏 dialog:fit-
contain+滚轮光标锚点缩放 1-5x+拖拽(钳制数学与图库 v2 逐行同
源)+双击 1x↔2.5x+Esc/关闭/背景点击关(contain 内容盒几何判
定);无 EXIF/caption/FLIP(纯图极简,按契约);document
委托点击软导航后仍生效。
车道:op-artalk(专项 9/9:SVG 架构图唤起/矢量 2.46x 不栅格化/
拖拽钳制/双击回正/Esc/jpg/背景关/软导航);收编验收四断言+E2E
34/34 全过
验证: 文章 SVG 点击唤起+滚轮放大(naturalWidth 960 矢量源)+Esc
关闭实测;E2E 34/34
Spec: none (文章图放大,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-02 08:47:24 +08:00 |
|
 wait4xandGLM-5.3
|
a761cf8129
|
feat(papers): 论文内置阅读——arXiv iframe 零再分发合规方案
Agensh(arXiv 2609.26781)在线研读页:/papers/agensh/ 双轨薄壳
_PaperView 共享视图+六词条;信息条含标题/作者/abs 链接/授权声明
(arXiv nonexclusive-distrib 1.0,非本站托管)/下载钮。
合规红线:许可证禁第三方再分发→仓内零 PDF 副本,iframe 直嵌
arxiv(实测无 X-Frame-Options);微信 webview 前置 UA 检测加
is-wechat 类、iframe 不挂 src 零无用请求、兜底卡指引右上角浏览
器打开;非微信 data-src 懒挂载+9s 弱兜底+noscript 兜底。正文
入口卡双轨已渲染。
车道:op-gitea(专项四断言+E2E 34/34);收编复验六断言全过
(iframe/授权/微信降级/en/入口卡/零 PDF)
验证: E2E 34/34;微信 UA 模拟 is-wechat=true src 空 提示在;
git status 零 .pdf
Spec: none (论文阅读页,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-02 08:41:39 +08:00 |
|
 wait4xandGLM-5.3
|
bbb52b9e24
|
docs(post): 删除《单人博客的多智能体工程》(用户拍板)
与三篇工具详解定位重叠,用户选择保留详解三部曲。删除为单点
操作:无 en 版、无 translation-state 条目、无他文内链引用;构
建 42 页、lint 43 页 0 违例复验通过。
验证: pnpm astro build 42 页;content-lint 0 断链 0 缺图 0 配对
警告;dist 无残留页
Spec: none (内容删除,用户决策)
Co-authored-by: GLM-5.3
|
2026-11-02 08:39:02 +08:00 |
|
 wait4xandGLM-5.3
|
8571acdc8b
|
feat(post): 工具三部曲——spec-harness/pi-mesh 全家桶/Agensh 论文笔记
用户直派车道交付:①Spec Harness 详解(任务包解剖+流水线图,
boundary/verify 实例+12 命令+门禁)②pi-mesh 四件套(stack 图+
合奏循环图+上手安装)③Agensh 论文笔记(三支柱/协作环/规模收
益图,DeLM 血统+issue#13→pi-board 诞生线)。七张自绘 SVG、双
语(en 手写直译 locked:true,禁 TMT 覆盖)。与既有 spec-
workflow-and-mesh(实战复盘向)互补并存。
车道:worker-one(build/lint/外链 curl/视觉两轮 7/7 全绿);收
编复验 E2E 34/34+lint 43 页 0/0/0
验证: pnpm astro build 39 文;E2E 34/34;content-lint 0/0/0
Spec: none (内容三篇,直派车道收编)
Co-authored-by: GLM-5.3
|
2026-11-01 13:35:27 +08:00 |
|
 wait4xandGLM-5.3
|
127f349fb2
|
feat(gallery): 灯箱 v2.1 十项全量——起飞开合/隐层/侧置 meta/HD
①FLIP 原位起飞/回落(克隆双态矩形插值,关闭回落取缩略图实时
矩形)②背景点击关(containRect 几何判定——img 盒铺满 figure 的
元素链判定失效坑)③chrome 双层淡入+i 键/zoom 自动隐(换片重置)
④相邻预载 ⑤双指缩放 ⑥换片侧向过渡 ⑦缩放指示+首开提示 ⑧竖
图侧置 meta ⑨>1.5x HD 原图交换+404 兜底 ⑩竖拖关闭。reduced-
motion 全豁免;钳制数学保留。
验收三连修:chrome-in 动画 both 填充锁死 opacity(animation:none
掐填充——动画填充压制普通声明的级联陷阱);× 钮独立于双层
chrome 补隐(全隐口径=只剩图,Esc/i 逃逸);视觉终审四问修复
后全过(起飞连贯/侧置成立/隐层纯净/亮暗同判)。
车道:op-artalk(专项逐项+E2E 34/34);收编验收+视觉终审双绿
验证: E2E 34/34;三态隐层 computed 实测(i 隐/复原/zoom 隐全
过);全隐残留零(×/caption/箭头);Esc 逃逸 ✓
Spec: none (灯箱 v2.1 定版,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-01 13:21:15 +08:00 |
|
 wait4xandGLM-5.3
|
d8997c3c72
|
feat(gallery): 灯箱 v2 收编——caption 字段全链+21 条视觉轨拟稿
schema caption?:string(人为描述,注释区别 alt 无障碍语义)+
Sveltia textarea 字段+21 条 json 全量上稿(视觉轨看图代拟策展
语气,用户可后台逐条改);GalleryPage 灯箱重构与缩放交互已随
44626f8/54769bc 入库,本笔补数据面。
车道:op-artalk(专项 8/8+E2E 34/34);视觉复核三问 PASS
(舞台纯净/meta 分层/caption 策展语气),唯一需修点=放大态
caption 遮挡→v2.1 ③ zoom 自动隐层已立项在治
验证: E2E 34/34;caption 渲染实测「落日把海与城一齐烫成金
箔…」;content-lint 0/0/0;schema 过构建
Spec: none (灯箱 v2 数据面收编,交互面已在库)
Co-authored-by: GLM-5.3
|
2026-11-01 12:51:20 +08:00 |
|
 wait4xandGLM-5.3
|
44626f8edc
|
fix(lightbox): 回 1x 自动归中+平移四向钳制(用户实测 bug)
用户实测:缩放回 100% 图片不回中显示不全;另放大态可拖飞出舞台。
三修:zoomAt next<=1 归零 translate;applyZoom 平移钳制 |t|≤尺
寸差/2(放大态不变量=图盒覆盖舞台而非缩在视口内);滚轮下限
0.5x→1x(fit 即最小,0.5x 制造偏移态)。mockup 同步三修。
验证: 回 1x transform=none 实测;四角极限拖拽覆盖舞台不变量
全过;E2E 34/34
Spec: none (用户实测 bug 热修,线上 v2+mockup 双修)
Co-authored-by: GLM-5.3
|
2026-11-01 12:34:11 +08:00 |
|
 wait4xandGLM-5.3
|
54769bcfdf
|
docs(research): 灯箱深度美化探索+可交互 mockup(v2.1 提案)
五站研究(PhotoSwipe 源码级核对/medium-zoom/Unsplash◐/图虫◐/Flickr)
→ 六维差距 → v2.1 增强提案十项(P0=原位起飞开合+背景点击关;P1=
chrome 双层淡入/相邻预载/双指缩放;P2=换片过渡/缩放指示/长图侧置
meta/HD 交换/竖拖关闭)+ 明确不做清单八条 + 可交互单文件 mockup
(仓内实拍 5 张、13 项交互可点)。
验证: mockup 引用路径 ../content/photos/ 相对仓根可开;文档引文对
PhotoSwipe defaultOptions 源码核对注记
Spec: none (研究文档+设计预览稿,v2.1 立项待用户拍板)
Co-authored-by: GLM-5.3
|
2026-11-01 12:09:51 +08:00 |
|
 wait4xandGLM-5.3
|
541710b50a
|
feat(post): 单人博客的多智能体工程——spec 与 mesh 实战复盘
四节+结语:19 连发压力日引入 / spec 任务包(blog-5f 实引 verify
原文与已证伪路径)/ mesh 交通规则(契约式下达-预约拦刀实录-守卫
铁律)/ 纪律从事故长出来(验收先探实值-口径错配-五段式运维-视觉
双轨-解封后 SEO 100)。全部数字与命令对档核验。
车道:worker-one(1906 字/schema 过/lint 0 违例);收编补引文精度
(T1 verify 对齐原文四条件)
验证: pnpm astro build 36 页;E2E 34/34;content-lint 0/0/0
Spec: none (内容文章,车道级交付)
Co-authored-by: GLM-5.3
|
2026-11-01 11:58:42 +08:00 |
|
 wait4xandGLM-5.3
|
2b8353837a
|
feat(ops): SEO 解封收尾脚本——default 混合文件逐块精确锚定
default 内四 server 块共存(三面板+博客),文件级 v3 脚本无法区
分;本脚本按各自 server_name 锚定:面板块补 noindex、博客块加
/admin/ 局部;幂等可重跑、备份出加载路径、nginx -t 失败回滚、
nginx -T 配置级终验(不受边缘缓存干扰)。
验证: bash -n 语法过;锚定正则对 default 实文件 server_name 四行
干跑(面板命中/博客精确/互不误中)
Spec: none (用户操作单自动化收尾件)
Co-authored-by: GLM-5.3
|
2026-11-01 11:17:45 +08:00 |
|
 wait4xandGLM-5.3
|
3b65cc47ec
|
fix(ops): seo-unblock v3 补——博客主站判定字符类修正
v2 残留:([[:space:]];|$) 被解析为空格+分号序列而非字符类,-x 兜底
吃行首缩进——admin location 两轮未落。统一 (^|[[:space:];]) 词边界
并显式排除 git 子域。
验证: bash -n 过;判定正则对 /etc/nginx/sites-enabled/default 实文件
干跑(博客行命中/git 行排除双验)
Spec: none (脚本热修 v3 补)
Co-authored-by: GLM-5.3
|
2026-11-01 11:16:21 +08:00 |
|
 wait4xandGLM-5.3
|
ca7d71325c
|
fix(ops): seo-unblock v3——补回判定反转名单制为 include 圈
v2 名单制漏 dpanel/ms365/ddns(同 default 文件 include snippet,剥
离后集体失守 noindex,实弹发现);v3 改凡 include esa-origin-ssl
且非博客主站一律补回,博客判定同步修正字符类。
验证: bash -n 语法过;判定正则对 default 实文件 server_name 复核
Spec: none (脚本热修 v3)
Co-authored-by: GLM-5.3
|
2026-11-01 11:16:03 +08:00 |
|
 wait4xandGLM-5.3
|
d41fcc058c
|
fix(ops): seo-unblock v2——备份出加载路径+主机判定精确 token
v1 实弹暴露两缺陷:①.bak-seo 备份留在 sites-enabled/ 内被 nginx
glob 加载→duplicate default server 全链崩;②grep -w 词边界点号
之误,git.wait4x.online 也被当博客主站注入 admin location。
v2:备份入 /tmp 专属目录+回滚后清理(含 v1 遗留)+server_name
精确 token 判定。
验证: bash -n 语法过;dry-run 计划段与判定正则复核
Spec: none (脚本热修:v1 事故根因双修)
Co-authored-by: GLM-5.3
|
2026-11-01 11:11:27 +08:00 |
|
 wait4xandGLM-5.3
|
50c7595838
|
feat(ops): SEO 解封一键脚本——预览确认执行自检回滚五段式
nginx 侧全自动(snippet 剥离/内部 vhost 补回/admin 局部/失败回
滚/源站终验),ESA 三动作打印手动步骤;dry-run 先行+确认门。
验证: bash -n 语法过;dry-run 输出与 Phase 5f T1 操作单变更计划一致
Spec: none (用户操作单自动化,Phase 5f T1 收尾件)
Co-authored-by: GLM-5.3
|
2026-11-01 11:06:58 +08:00 |
|
 wait4xandGLM-5.3
|
bb29c8abaf
|
fix(deploy): 构建抓取通道可配+构建日志落盘——ESA 522 事故双根治
- build.sh:BLOG_GIT_URL 环境变量(默认公网,同机构建可指内网
http://127.0.0.1:13020);每次构建 remote set-url 后 fetch——
2026-10-26 事故:ESA 边缘对 git.wait4x.online 522 时公网 fetch
set -e 静默死,staging 冻结 150s+ 无痕
- webhook_receiver.py:构建输出落盘 ~/docker_apps/blog/build.log
(capture_output 丢弃=黑洞,本次事故"构建为何没跑"零证据);
与运行副本双同步纪律维持
- 宿主 unit 补 BLOG_GIT_URL 内网通道(配置在 unit 不在仓——主机
特定值不污染仓库默认)
验证: 手动构建实测 stamp=19b2390+robots.txt 352B 上线;18743 测试
床恢复 200;smoke 对 staging 软门容忍符合 T1 转硬门前设计
Spec: none (发布链通道与可观测性修复,事故驱动)
Co-authored-by: GLM-5.3
|
2026-11-01 09:58:47 +08:00 |
|
wait4x
|
19b2390cbf
|
Merge branch 'spec/2026-10-26_blog-5f'
Phase 5f 交付:SEO 解封仓库侧(robots+操作单)+ localePath 三处一刀治与 canonical 全量 + 构建期内容 lint/生产冒烟 + reader 纯文本模式 + 版式基底(流距 token/灰阶降档/字重/focus ring)+ 首屏 tagline + 图库暗衬底 + 代码块窗条 + 书评纸卡(视觉双轨复核 PASS)。
Spec: 2026-10-26_blog-5f
|
2026-11-01 09:51:27 +08:00 |
|
 wait4xandGLM-5.3
|
983527a79d
|
chore(spec): 归档 blog-5f——八任务收敛
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:51:26 +08:00 |
|
 wait4xandGLM-5.3
|
23ea8e5a55
|
chore(spec): 5.1 归位——全项目检查含升级条件+升级触发双字段
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:49:52 +08:00 |
|
 wait4xandGLM-5.3
|
57f19d855b
|
chore(spec): 5.1 升级条件措辞对齐门禁
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:42:01 +08:00 |
|
 wait4xandGLM-5.3
|
a2395be379
|
chore(spec): T6 verify 管道笔误修正(-q 无输出喂 grep -v 恒退 1)
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:40:04 +08:00 |
|
 wait4xandGLM-5.3
|
90b8d0fbc0
|
test(e2e): ? 帮助浮层断言加固——焦点残留竞态三连治
面板测试后焦点可能残留输入域致 ? 键被吞(今日第三次偶发):
Esc 收场+activeElement blur+重试三连,3/3 稳定复现。
验证: E2E_BASE=dist 口连跑三轮 34/34 全绿
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:34:47 +08:00 |
|
 wait4xandGLM-5.3
|
4e24fe510f
|
chore(spec): verify 命令统一 E2E_BASE 本地 dist 口
staging=origin/main 纪律下 spec 分支在途代码的 E2E 只能打本地
dist——T2 canonical 断言对 staging 必挂属预期非缺陷。
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:31:48 +08:00 |
|
 wait4xandGLM-5.3
|
2bfe2ef3db
|
feat(5f): 代码块窗条+书评纸卡(T5/T6 车道收编,视觉复核 PASS)
- T5:≥4 行块挂 .code-win 窗条(JS 数行标类+伪元素渲染:语言
标签取 shiki pre[data-language]+灰阶三点 #30363d 投影法一点化
三点,弃红黄绿;条 #161b22 恒深区亮暗同判);单行/2行裸块;
csge 文 4/18 判定边界实测准确;scoped 够不着 Content 内 pre
坑用 :global 解
- T6:书评正文圆角纸卡(亮 #f4f4f2/暗 #201d18 暖棕夜灯,零新
变量吃 T7 已入 tokens;1px hairline 四边抑制长文竖线感;标题
区外置结构未动)
- 视觉复核(glm-5.3-flash:max 像素级):T5 四项全 PASS(三点实
采样无红黄绿、条/点/体 github-dark 同族灰、与块顶圆角对齐);
T6 双态 PASS;暗态窗条未入截图框为残留观察项(恒定 CSS 推定
成立,判词 /tmp/beauty-impl/verdict.md)
- tasks.md T5 verify 落点修正(src/pages/archives,车道如实报
告);E2E ? 浮层偶发竞态 2/2 复跑绿
车道:op-artalk(自验 5/5+2/2);收编验收:窗条 4/18+data-lang+
纸卡双态 computed+视觉双卡 PASS
验证: E2E 34/34 PASS(E2E_BASE=dist 口);窗条/纸卡 computed 与
像素采样全对
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:31:22 +08:00 |
|
 wait4xandGLM-5.3
|
814b138f89
|
test(e2e): E2E_BASE 环境变量覆写——本地 dist 口验未推代码
staging=origin/main 纪律下,spec 分支在途代码的 E2E 只能打本地
dist;此前 BASE 硬编码迫使车道手工绕(T2 收编验收实锤)。
验证: E2E_BASE=http://127.0.0.1:18924 node tests/e2e.mjs 34/34
PASS(含新 canonical 断言)
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:13:44 +08:00 |
|
 wait4xandGLM-5.3
|
c307285a25
|
fix(i18n): localePath 三处双 en 一刀治+canonical 全量(blog-5f T2/T3 车道收编)
- T2:localePath 先归一 zh 再拼前缀(Header/CommandPalette/
BaseLayout 三处 /en/en/ 同源病根一刀),返回值统一尾斜杠;
BaseLayout 自指 canonical 全量 35 页;E2E 新增 en canonical
自指断言(33→34)
- T3:content-lint.mjs 零依赖三检(断链 FAIL/缺图 FAIL/zh-en
配对 WARN;CONTENT_LINT 逃生门;photos-originals 叠加层与
/admin 单语两误报已修);prod-smoke.sh 三断言(robots 未落明
确 FAIL 不静默);build.sh 守卫行挂载(smoke 对 staging 首版
容忍,T1 robots 上线后转硬门,触发条件注释在案)
- tasks.md verify 字面量 33→34 联动同步(6 处)
车道:op-gitea(verify 六条实录);收编验收:E2E 34/34+产物零
/en/en/+lint 0/0/0 实跑复现
验证: node tests/e2e.mjs 34/34 PASS;! grep -r /en/en/ dist/;
content-lint 三检 0 违例;bash -n+test -x 过
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:12:01 +08:00 |
|
 wait4xandGLM-5.3
|
8ec1712135
|
feat(5f): reader 模式+版式基底+首屏 tagline+图库质感(T4/T7/T8)
- T4 reader:html.reader 单 class(去装饰非去内容:隐辉光/图标
钮/pv 行,ICP 合规底线永留;正文字号+1px 行宽 56ch;入场动效
关);命令面板 reader 命令+r 键+localStorage;ThemeScript 预绘
防闪
- T7 基底:--flow-* 五流距变量双轨应用;暗色 hairline 降档;
页面标题 700→600(裁定 #6 减字重不减号);focus-visible ring
统一;列表行距 +2px;--paper/--radius-img/--ease-out 入库
- T8:首页 IdCard slot 落 tagline「写作者 · 读者 · 快门按压者,
拥抱开源。」;图库暗色 4% 轻衬底+圆角统一(裁定 #4 双模式分判)
验证: E2E 33/33;reader r 键触发+辉光 none+刷新保持实测;流距
computed 0.6em 实算;tagline 渲染实测
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:09:27 +08:00 |
|
 wait4xandGLM-5.3
|
22930cfffd
|
feat(seo): robots.txt 与 SEO 解封操作单(blog-5f T1)
robots 404 补齐(Allow 全站/Disallow admin+draft/Sitemap 行);
操作单三步走:nginx snippet 剥 noindex+内部 vhost 补回+admin 局部
保留、ESA purge+TTL+绕缓存、curl 三验证——用户侧执行入口。
验证: T1 verify 命令全过(robots 三断言+操作单节存在)
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:06:54 +08:00 |
|
 wait4xandGLM-5.3
|
5d18591967
|
chore(spec): blog-5f 任务清单格式修正
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:06:02 +08:00 |
|
 wait4xandGLM-5.3
|
c1e3d30954
|
chore(spec): 立项 blog-5f——SEO 解封+功能优化批+美化首批
Spec: 2026-10-26_blog-5f
Co-authored-by: GLM-5.3
|
2026-11-01 09:05:26 +08:00 |
|
 wait4xandGLM-5.3
|
975cf5e58b
|
docs(research): 美化方案并入视觉裁定(§6 七问定案)
两案之争全部落定:首屏=融合(加 tagline 不 banner 化);纸面板=
选圆角纸卡(书评轨);代码块=多行窗条+灰阶三点;图库=亮直贴/
暗轻衬底;热力图=亮灰维持暗色补救(绿系亮色不换);标题 27px
维持(要轻减字重不减号);灰阶 5 档够用(hairline 更淡+行距微
增)。视觉轨 glm-5.3-flash:max,25 张证据图亮暗双态逐问裁定。
验证: 裁定含信心等级+落地注意+双模式分判;与 §5 问题清单一一
对应
Spec: none (方案定案文档,待用户审批实施)
Co-authored-by: GLM-5.3
|
2026-10-26 23:07:56 +08:00 |
|
 wait4xandGLM-5.3
|
7c5455278b
|
docs(research): 美化专项方案(文本轨,K-S 卡片,视觉待验标注)
现状审计 16 项(间距阶/灰阶档/圆角混用/流距/focus ring/代码块/
纸面板/热力图灰绿之争)× 5 站补充探索(rauno 12 级灰+paco alpha
阶梯+mattdesl 等宽层级+tw93 手写体温+antfu blur-up)× 卡片 K-S
(token 值级改法+computed-style 断言)× 截图问题清单 7 问(交
glm-5.3-flash:max 视觉轨复核中,verdict 合并后定案)。
验证: 截图床 /tmp/beauty-shots 25 张就位;文档 149 行入仓
Spec: none (方案文档文本轨,视觉裁定合并后呈审)
Co-authored-by: GLM-5.3
|
2026-10-26 22:55:05 +08:00 |
|