# 2026-06-30 app-memo 替换 ## 用户目标 用户确认使用 `/Users/ar/Downloads/2.2.jpeg` 压缩后替换官网线上图片: `https://shanghai3168.github.io/taglauncher/assets/app-memo.png` 文件名保持 `app-memo.png`,不替换 `hero-visual.jpg`。 ## 已完成事项 - 确认 GitHub Pages 发布源为 `main:/docs`。 - 确认线上目标文件对应仓库路径为 `docs/assets/app-memo.png`。 - 清理上一轮遗留的临时 worktree `/private/tmp/taglauncher-pages-hero-0-main`。 - 基于 `origin/main` 创建临时 worktree `/tmp/taglauncher-pages-app-memo-main`,避免混入主工作区已有未提交改动。 - 将用户提供的 JPEG 转为 PNG,文件名保持 `app-memo.png`。 - 生成压缩候选并比较: - 256 色 PNG:约 `219K`,但有明显色带和失真,未采用。 - 真彩 PNG:约 `622K`,画质正常,采用。 - 提交并推送到 `origin/main`。 - 验证 GitHub raw 文件哈希一致。 - GitHub Pages 首轮轮询显示 `built`,线上 `app-memo.png` 哈希匹配新文件。 - 清理临时 worktree。 ## 关键决策 - 用户原指令中曾出现“目标 URL 为 app-memo.png、文件名改成 hero-visual.jpg”的矛盾;用户确认选择“替换线上 assets/app-memo.png,文件名保持 app-memo.png”后执行。 - 保持 `.png` 格式,不把 JPEG 内容伪装成 `.png` 扩展名。 - 不强行放大到旧图 `1600x1040`;新图自然尺寸为 `1281x832`,与页面声明 `1600x1040` 比例一致,避免无意义放大导致体积增加。 - 不修改 HTML、CSS、App 源码或其它图片。 ## 文件变更 - `docs/assets/app-memo.png` - 旧大小:987456 bytes,约 `964K`。 - 新大小:636471 bytes,约 `622K`。 - 旧尺寸:`1600x1040`。 - 新尺寸:`1281x832`。 - 新 SHA-256:`ef3565d76de55e1084d9ddfd511ec57a00b67edc7fd35d75ccd53706c192a8df`。 ## 核心事实 / 变更快照 - 变更对象:GitHub Pages `app-memo.png` 展示图。 - 事实来源: - Pages 配置:`source.branch=main`,`source.path=/docs`。 - 提交:`3a4820943ff216a088a3d95f46b935ea5f6f9857`。 - 仓库路径:`docs/assets/app-memo.png`。 - 变更前:线上 `app-memo.png` SHA-256 为 `326d618ccfa9bd30f86c981fbe58c64bf0368f592e64343faa86fc63f9681591`。 - 变更后:线上 `app-memo.png` SHA-256 为 `ef3565d76de55e1084d9ddfd511ec57a00b67edc7fd35d75ccd53706c192a8df`。 - 范围边界:只影响公开网站 `app-memo.png`;不影响 hero 图片、tags 图片、其它网站资源、App 源码或 App Store 发布资料。 - 验证证据: - GitHub raw `main/docs/assets/app-memo.png` 与本地提交文件 SHA-256 一致。 - Pages API 首轮轮询状态为 `built`。 - `https://shanghai3168.github.io/taglauncher/assets/app-memo.png?v=3a48209-1` 首轮拉取到的 SHA-256 为 `ef3565d76de55e1084d9ddfd511ec57a00b67edc7fd35d75ccd53706c192a8df`。 - 后续轮询出现 DNS/TLS 抖动,但第一轮 `built` + 哈希匹配已证明上线成功。 ## 未决问题 - 主工作区 `/Users/ar/Projects/Taglauncher` 仍有本轮之前已存在的发布资料改动和未跟踪 release 目录;本轮未处理这些内容。 - 本地 `main` 分支可能落后于 `origin/main`;后续如在本地 main 工作,应先同步。 ## 后续建议 - 如果浏览器显示旧图,强制刷新或使用缓存参数,例如 `?v=3a48209`。 - 官网单图替换继续使用临时 worktree 对 `main:/docs` 做单文件提交。 ## 可复用命令 / Runbook 用途:在主工作区很脏时,安全替换 GitHub Pages `/docs/assets/app-memo.png` 并直接上线。 前置条件:仓库远端为 `https://github.com/shanghai3168/taglauncher.git`;GitHub Pages 发布源为 `main:/docs`;本地已通过 `gh auth status` 登录。 ```bash cd /Users/ar/Projects/Taglauncher git fetch origin main git worktree add --detach /tmp/taglauncher-pages-app-memo-main origin/main python3 - <<'PY' from pathlib import Path from PIL import Image, ImageOps src = Path('/Users/ar/Downloads/2.2.jpeg') out = Path('/tmp/taglauncher-pages-app-memo-main/docs/assets/app-memo.png') img = ImageOps.exif_transpose(Image.open(src)).convert('RGBA') img.save(out, optimize=True, compress_level=9) PY cd /tmp/taglauncher-pages-app-memo-main git add docs/assets/app-memo.png git commit -m "Update website app memo visual" git push origin HEAD:main cd /Users/ar/Projects/Taglauncher git fetch origin main git worktree remove /tmp/taglauncher-pages-app-memo-main git worktree prune ``` 验证步骤: ```bash curl -L --fail --silent --show-error --output /tmp/taglauncher-pages-app-memo.png \ 'https://shanghai3168.github.io/taglauncher/assets/app-memo.png?v=3a48209-1' file /tmp/taglauncher-pages-app-memo.png sips -g pixelWidth -g pixelHeight /tmp/taglauncher-pages-app-memo.png shasum -a 256 /tmp/taglauncher-pages-app-memo.png ``` 清理 / 恢复: ```bash cd /Users/ar/Projects/Taglauncher git worktree list --porcelain git worktree remove /tmp/taglauncher-pages-app-memo-main git worktree prune ``` 搜索关键词:`app-memo.png`、`GitHub Pages`、`main:/docs`、`2.2.jpeg`、`3a48209`。