PackSmith
image-studio 的
pack分支衍生项目。2026-05-09 业务下线:从 MVP Deployer 删除(DELETE /api/deploy/packsmith?removeFiles=true),PM2 进程 + Caddy 路由 +/opt/mvp-apps/packsmith/一并清。pack.mvp.restry.cn已不可达。本页保留作为踩坑历史档案。
历史阶段:登录走 wx-gateway(注册名 pack),部署在 pack.mvp.restry.cn。
关键教训:先看图比,再选库
首页 04-27 一开始照搬 Pinterest 思路用 masonic 瀑布流库,连踩两套 SSR 坑:
ResizeObserver在 Node 未定义 →dynamic(..., {ssr:false})标准修- filter 重置
data=undefined时 WeakMap 崩 → 加keyprop 强制重建
修完才反应过来:PackSmith 商品图全是 1:1 正方形,根本没有不等比,瀑布流毫无价值。直接换 CSS Grid,前面所有 hack 全删。
教训冻结在 skill react-masonry-pinterest § 9:图比 1:1 用 CSS Grid,不要硬上瀑布流。
反代 redirect 同坑
服务端拼绝对 URL 用 req.url → 反代后取到内部 host → 308 重定向到 localhost:3xxx。修法同 packhorizon:publicBase(req) helper 读 x-forwarded-host/-proto。沉淀 skill nextjs-reverse-proxy-redirect-leak。
微信内 vs PC 扫码 openid 双路径整理(04-27)
最初 PackSmith 自己的 WECHAT_APPID(DB settings 那套)跑微信内 OAuth、PC 扫码走 wx-gateway 共享的「造悟者」wx225bf76b06064faa,结果两套 openid 互不认识:同一用户两条路注册产生两个账号。
方案敲定:选方案 1 —— 删 path A,全走「造悟者」扫码,微信内也展示二维码(牺牲微信内”无感”换统一身份)。落地 commit 257920b,12 文件 -491/+35。配套:
- wx-gateway 的
/wx/oauth/callback已在调cgi-bin/user/info拿 nickname/avatar 入库WxLoginToken /wx/poll已把 nickname/avatar 当 extras 拼进 redirect URL —— 但 PackSmith 的finalize没消费,于是用户名空白- 修法:finalize 多读 nickname/avatar 写入 user,配合 wx-gateway 04-27 的
snsapi_userinfo一键登录
踩坑:schema 加 WxFinalizeLog 表后没跑 migration,prod 报 relation "public.WxFinalizeLog" does not exist。临时用 deployer /api/exec 跑 prisma db push 兜底建表 —— 之后还是要补正式 migration。另一个 Failed to find Server Action "0000..." 是客户端缓存老 JS,刷新即消失,非真错。
部署 / 视觉 fix(04-27)
- zip 打包必须排除
.env*—— 否则覆盖服务器.env;用 deployer/api/exec抓服务器 .env 全量回灌manifest.env兜底 - 视觉 6 项整改 commit 落地:删
<span>PACKSMITH AI</span>水印;拆登录/注册按钮;Hero 两栏lg:grid-cols-[minmax(0,1fr)_minmax(360px,440px)]+ next/image;三 FeatureCard 统一白底;加搜索框(searchQuerystate,title/brandName/industry 包含匹配) - masonic → CSS Grid 改造效果:首屏从 ~3.4MB 降到 ~500KB
架构总结
用户扫码 →「造悟者」OAuth → /api/wx/finalize → User + Session + WechatAccount → /generate 提任务 → 进程内 Worker(max_global=8 / per_user=3)调 Azure gpt-image-2 → Generation + GeneratedImage + SSE → /me 充值/邀请/checkin → CreditLedger 记账 → /mgmt-7bx3k 后台。
相关
- image-studio —
pack分支源 - wx-gateway — 登录(APPS_JSON
pack条目) - packhorizon — 同期姊妹项目
- deployer — 部署