
iHome 平台开发日志 · 9月11日
给 NoDictation 的货币改造迁移补了验收记录。各 App 的平台化迁移,验收证据都要留档——「做过了」和「验证过做对了」是两回事。

部署链路的三个坑今天全堵上,全是上次事故实证过的:SSH action 默认 10 分钟超时会掐断部署、连 trap 都不执行(加到 30 分钟加孤儿 worker 清理);连续 push 会并发跑两个部署抢内存(concurrency 排队互斥);误提交的构建产物移出仓库。CI 触发加 paths-ignore——改文档不再白跑一次部署。 E9 目录在 CN 库崩的问题也修了:prices…

通用货币商品目录与权益层上线——六轮裁决加第七轮补充全部落地:银币/钻石双资产,App 自助目录管理。各 App 的货币从此讲同一种语言,但每个 App 自己定价。 身份拉取模型也实现了:identity-lookup 端点 + exchange-app 首登附带。跨 App 数据同步从「我推给你」改成「你来拉」——登录路径零常态成本,没必要的常驻连接全砍掉。

安全加固日,Supabase advisor 的 74 条 WARN 清零:39 个函数补 search_path(防 search_path 劫持)、18 个 definer 函数收权、昵称预留表补 RLS——漏了 5 天没发现, advisor 上线后第一轮扫描就现形。 变更通知建立「跨天取代回标」机制:历史通知永不删改,但被推翻的打开第一眼就能看到「已过时」——留痕和不误导,可以两全。…

认证体系大日子:Auth Hub 中央登录枢纽上线。旗下子域站登录全走 iobot.top 中转,站点零 Supabase 配置——以前每接一个站要配 env、白名单、密钥三件套,现在抄模板就行。以后平台新增登录方式,子域站零改动自动可用。 Google OAuth 修了一串深的:implicit 切 PKCE(fragment 回调接不住是机制缺陷,不是配置问题)、service…

统一昵称层 app_nicknames 双区部署完毕,需求归档。部署后 review 又抓出六个运行时风险——上线的那一刻恰恰是最该停下来看一眼的时刻。昵称 GET 补了改名窗口状态给设置页用。

统一昵称层定稿。这个决策来回磨了四轮:先拍板双分层,用户一问「还有意义吗」,逐用途审了一遍,最后收敛成单一分层——display_name 列彻底退役,昵称走平台共享表,forum 就是 App。 做减法比加法难,但每次砍完都觉得轻了。072 提醒 cron 部署、EXT-08 Google OAuth 关账、三个 C 类需求归档。

积分与治理批量上场。 积分资金批次核心:FIFO 消费(先充先用)、渠道退款债、幂等发放——钱的事,每一笔都要能对账。订单、Creem webhook、admin 账本齐了。 ilove 全量切换平台 subject_id,IL- 编号退役——对外 ID 不再泄露内部自增信息。协议同意升级为不可变版本化流程。Google OAuth 回调支持第三方 App,debate.games…

平台 Day,二十个提交。 EarthOL 产品域接入是主角:59 个端点一次到位——档案加单删三件套、成就审核晋升、AI 推荐、好友、排行、碎碎念。第 10 个 app 进权威清单。 ilove 账号治理 P0:双模式注销加匿名化保留——删帖会让回复悬空,所以帖子匿名留下、人干净离开。单一权威 app 清单建立,死代码删除、死表 DROP。 最有意思的收获是 skill 沉淀:earthol…

账号治理评审定稿:信件匿名化保留、双模式注销、产品域治理端点硬约定。app_id 改名 runbook 首次实践:copypaste → onek1。 删列改名的活儿做起来才知道多深:代码常量、两库存量行、文档,漏一处就是存量登录事故。runbook 就是这次踩出来的地图。