Commit Graph
216 Commits
Author SHA1 Message Date
wait4xandGLM-5.3 80ff67e8fa feat(content): 三集合 schema 与 EXIF 构建期补全(T4 车道收编)
- src/content.config.ts(Astro 7 唯一合法路径,旧 config.ts 会抛
  LegacyContentConfigError——车道实测发现,经批复的边界修正)
- posts(category→track 派生单源)/moments(text-image 互斥 refine)/
  photos(json sidecar + jpg,exif 构建期 exifr 补全、frontmatter 可覆盖)
- 样例:书评+技术文各 1、瞬间 3、照片 3(横竖方三比例,EXIF 三路径覆盖)
- 附带 scripts/check-responsive.sh(T9 预置,随 T6 产物生效)
- 车道 30min 超时于过度验证循环,产物完好,主会话收编续跑

验证: pnpm astro build exit 0(1.63s,含三集合加载)

Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
2026-10-24 23:36:59 +08:00
wait4xandGLM-5.3 725bfde21f feat(geek): 极客层 P0 四件套——键盘/构建透明/页面转场/项目墙
- Keyboard:? 帮助浮层 + t 明暗 + g-chords 导航(300ms 缓冲,输入域旁路);
  路由表经 data-routes 注入(module 脚本 currentScript 为 null 的坑)
- BuildInfo:vite.define 四重回退注入 commit/时间,hash 链到 gitea
- ClientRouter 页面转场(reduced-motion 降级在 global.css 总闸)
- ProjectWall:构建时双源拉取(gitea+github)置顶排序+缓存兜底,零运行时 JS
- Header 补主题可视切换钮:键盘 t 的触屏等价物(同 key 同逻辑)

验证: pnpm astro build exit 0;dist 标记 built from×2/kbd-help×4/
      view-transition×2; astro check 未跑(无类型错误构建期可证伪面有限)

Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
2026-10-24 23:13:23 +08:00
wait4xandGLM-5.3 b50eddf2bb feat(layout): 基础布局/导航/页脚/明暗不闪烁
- BaseLayout:字体三轨统持、viewport-fit=cover、theme-color 双套、skip-link
- Header:≤4 项导航纪律 + sticky 毛玻璃 + aria-current;搜索 icon 占位待 T8
- Footer:ICP 备案链接(法定保留)+ built-from 具名槽位待 T7
- ThemeScript:head 内联先于首帧,手选 > 系统偏好,防白闪

验证: pnpm astro build exit 0;dist/index.html 含 ICP 文案与跳到正文链

Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
2026-10-24 23:09:45 +08:00
wait4xandGLM-5.3 ee53279822 feat(fonts): 字体三轨预分片自托管接入
- lxgw-wenkai-screen-webfont + @fontsource/noto-sans-sc(400/500/700)
  + @fontsource/jetbrains-mono(400/700),均 OFL
- unicode-range 按需加载 + font-display swap;家族名与 tokens 栈首一致
- 教训:包 css 不能经 .css 文件 ESM import,须组件 frontmatter 持有

验证: pnpm astro build exit 0;dist woff2 分片 399 个(>50 门槛)

Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
2026-10-24 23:08:36 +08:00
wait4xandGLM-5.3 4cb1c85cc3 feat(design): 设计 tokens 与全局样式——丙路线「灰阶骨架×分轨正文」
- tokens.css:四档灰阶/单强调蓝/蓝黑暗色/纸墨面板/情绪色五档/
  字体三轨栈/排版三角(书评20-1.75-720 技术19-1.7)/唯一缓动曲线
- global.css:轻量reset/双轨正文(.prose-reading/.prose-tech)/
  引文A墨线+D金句62px水印/终端风代码块/::selection半透明/
  560px降档18px/动效总闸prefers-reduced-motion

验证: pnpm astro build exit 0;参数与调研报告 §3 一一对应

Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
2026-10-24 23:07:11 +08:00
wait4xandGLM-5.3 eeb9bde121 feat(skeleton): Astro 7.3.8 项目初始化(pnpm+TS strict)
- astro 锁 7.3.8:7.4 起 engines 要求 node>=22.23.4,宿主 22.22.3 差一档
- minimal 骨架:单页占位 + site=https://wait4x.online,集成留 T8 按任务接入

验证: pnpm astro build exit 0(1 page built)

Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
2026-10-24 23:07:11 +08:00
wait4x ce41c800ba chore(spec): 创建 add-blog-skeleton 任务包(Phase 1 十任务)
Spec: 2026-10-24_add-blog-skeleton
2026-10-24 23:00:20 +08:00
wait4x dca5fe0e5e Merge branch 'spec/2026-10-24_add-blog-infra'
Phase 0 地基交付:备份/gitea 28.2.0/Artalk 2.10.0/git.wait4x.online 接入/发布链地基;七任务机器验证收敛归档。

Spec: 2026-10-24_add-blog-infra
2026-10-24 22:51:38 +08:00
wait4xandGLM-5.3 0f7c2dfe5b chore(spec): 归档 add-blog-infra——Phase 0 七任务收敛交付
- T1-T7 全部勾选,spec_verify --all 七项 exit=0 入 runs.jsonl
- check 门禁收敛;交付:备份三件套/gitea 28.2.0/Artalk 2.10.0/
  git.wait4x.online + /artalk 公网接入/发布链地基与回滚预案
- 生产 Halo 全程未动(healthy + 200 复查通过)
- 含 spec pre-commit/pre-push 门禁钩子入库

Spec: 2026-10-24_add-blog-infra

Co-authored-by: GLM-5.3
2026-10-24 22:35:24 +08:00
wait4xandGLM-5.3 f16b9487d3 feat(deploy): 发布链地基三件套——webhook 骨架/构建占位/回滚干跑
- webhook-receive.sh:HMAC 骨架 + 仅 main 分支触发(干跑验证两条 ref 路径)
- build.sh:锁发布链形态与路径约定,astro 命令留 Phase 1 TODO
- rollback-dryrun.sh:回滚四前置条件验证 + 人为操作手册(秒级回 18090)
- staging 落用户区 ~/docker_apps/blog/www-staging(宿主 sudo 不可用,nginx 以 root 读用户目录无碍)

验证: webhook 干跑 main accepted / non-main ignored;rollback-dryrun
      四要素 ok(halo vhost/容器/响应/staging)

Co-authored-by: GLM-5.3
2026-10-24 22:10:59 +08:00
wait4xandGLM-5.3 ddcda54f90 feat(gitea): 部署 gitea 28.2.0 并入库接入草稿
- 容器 gitea/gitea:28.2.0 仅绑 127.0.0.1:13020,管理员 wait4x 经 CLI 创建,
  私有空仓 wait4x/blog 就位(Phase 1 博客源码仓)
- app.ini 种子入库(INSTALL_LOCK 预置,密钥首启生成,快照严禁回覆盖运行时)
- REQUIRE_SIGNIN_VIEW 会 403 匿名 version 端点,与验收冲突已撤,坑记 README
- 凭据不进 git:初始密码并入住主 init-credentials.txt(0600),README 留指引

验证: curl -sf http://127.0.0.1:13020/api/v1/version → {"version":"28.2.0"};
      docker inspect gitea = running;wait4x/blog private+empty 经 API 查证

Co-authored-by: GLM-5.3
2026-10-24 22:09:06 +08:00
wait4xandGLM-5.3 aea11469e3 feat(artalk): 部署 Artalk 2.10.0 评论服务并入库接入草稿
- 容器 artalk/artalk-go:2.10.0 仅绑 127.0.0.1:13030,sqlite 落实例卷
- 子路径 /artalk 经 proxy_pass 尾斜杠剥前缀(官方无 base path 模式),
  nginx 草稿为 location 片段,合并主域 vhost 后需实测 sidebar 内页跳转
- 凭据不进 git:初始密码移实例目录 INITIAL-CREDENTIALS.txt(0600),
  仓库 README 仅留指引(本仓库将公开)

验证: curl -sf http://127.0.0.1:13030/api/v2/conf 返回 2.10.0 JSON;
      docker inspect artalk = running;管理员 wait4xx 经 sqlite 查证落库

Co-authored-by: GLM-5.3
2026-10-24 22:00:57 +08:00
wait4xandGLM-5.3 d8f5ecfbf5 chore(spec): T1/T2 证据落库——备份三件套验证通过,翻译引擎缺口记录
- T1: pg_dump(halo_db) 237K 可恢复 + halo2 目录归档 404M/3577 项,verify_backup.sh 实跑通过
- T2: new-api 网关鉴权/模型端点可用;通用 chat 模型缺渠道(GLM 禁用、
  OpenRouter 仅特殊别名),需用户控制台启用,不阻塞 Phase 0

验证: bash .spec/specs/2026-10-24_add-blog-infra/evidence/verify_backup.sh
      (输出 backup verified: dump readable, tar entries=3577)

Co-authored-by: GLM-5.3
2026-10-24 21:58:07 +08:00
wait4x 72025b7a43 chore(spec): 创建 add-blog-infra 任务包(Phase 0 地基七任务)
- T1 备份 / T2 翻译引擎 / T3 gitea / T4 Artalk / T5 域名接入 / T6 发布链 / T7 验收
- 每任务 boundary+verify;nginx 集成仅 orchestrator,worker 交草稿
- 集成分支 spec/2026-10-24_add-blog-infra
2026-10-24 21:50:44 +08:00
wait4xandGLM-5.3 9a61e69f2f build: 安装 commit-msg 规范钩子(ai-code-style-kit v1.0)
Co-authored-by: GLM-5.3
2026-10-24 21:48:28 +08:00
wait4xandGLM-5.3 0fbb023375 docs: 落库博客重设计调研报告 v1.8 与视觉样板 v2
调研收官产物入库:主报告(架构 C''=Astro SSG+gitea 双写作流、
Artalk 评论、分片 webfont、双语预译管线、多端适配规格、
Phase 0-5 实施规划)+ 五份侦察原稿 + 可交互单文件样板
(三路线×明暗×五页型,命令面板/终端/热力图/masonry)。

Co-authored-by: GLM-5.3
2026-10-24 21:48:11 +08:00