2026-05-20
2026-05-20 daniel 工作日志
Section titled “2026-05-20 daniel 工作日志”FEAT-003 AC15 链上 swap 链路收尾(6 天 0 事件 → 端到端打通)
Section titled “FEAT-003 AC15 链上 swap 链路收尾(6 天 0 事件 → 端到端打通)”- 根因定位:NovaMMRouter 报错 selector
0x5380c59d,4byte / openchain 查得ZeroSlippage(),合约层if (minAmountOut == 0) revert ZeroSlippage()守卫。7bd36da 起 simulate 阶段刻意传0n绕 slippage gate 拿真实 amountOut 的策略恰好被这条守卫拒掉,导致 simulate 必 revert、broadcast 永不发出 - 修复:
emitChainSwapsimulate 阶段minAmountOut: 0n → 1n,满足ZeroSlippage(>0)又远低于真实 amountOut(不会触发 InsufficientOutputAmount);broadcast 阶段仍用 slippage-derived minOut(不变)。注释更新到第四轮重写历史。commitea2d493 - build:
bc05428重建产物(main bundlemain.ab75ec36.js → main.a7d2f543.js) - 端到端验证:浏览器复跑 → testnet tx
0x3e94a0e0…f100b5(Status: Success,From0x5FC8…53D0,To NovaMMRouter0x7a3a0a…fda5fd),event log 17 由 NovaMMRouter 发出,topic00xe1ab90d2…b36a经 viem 本地 keccak 验证 =Swapped(bytes32,address,address,address,address,uint256,uint256,uint256,address),3 indexed topic 对应 taskId / router / user — 6 天来第一笔真实 Swapped 事件落链 - 副推论:simulate 报错本身证明 ①-⑤ 全通(BE tokens/wallets/tasks 注册 + scheduler 在推 task.tick + FE engine 接到 tick),zz 那 3 个 BE 表数据点不再阻塞,AC15 memory 闭环已删
story-status 推送
Section titled “story-status 推送”chore(status): frontend mark FEAT-003 US-01 → 已完成:FEAT-003 前端列联调中 → 已完成,frontmatterlast_updated 2026-05-19 → 2026-05-20,状态 emoji 🟡(仍进行中,QA / PM 未推)。GitLab Files API PUT 200,约 30s 后 team-docs.pages.dev 部署可见
Memory 维护
Section titled “Memory 维护”-
删除
feat-003-ac15-chain-swap-pipeline-2026-05-19闭环 memory + 同步索引 -
11:18 · 接口对接 · [iro-bsc] · V3 联调发现 detail/list 字段需要后端补齐(pool_address / redeem_mode / fixed_release_rate),已发 TG 通知 zz
-
11:36 · 前端已部署 · [iro-bsc] · 测试服部署 V3 合约接入完整链路(发币模态框 LP 赎回税三选一、详情页 + 赎回弹窗 redeemMode 三态、i18n 模板补齐、ONEDAY 对齐 4h、V3 IROOwner 路由独立、经纪商池子地址兜底)
-
11:45 · 前端已部署 · [iro-bsc] · fomoadmin 测试服 V3 合约适配上线(reward-flow 退出税率 redeemMode 三模式 + admin 多页 V3 兼容 + 97 链 V3 地址)
QA preflight 审查 —— 9 个 FEAT 全量扫一遍
Section titled “QA preflight 审查 —— 9 个 FEAT 全量扫一遍”把 story-status 上 QA「测试中 / 未开始」+ 后台前端已完成的 9 个 FEAT(001/003/004/007/008/009/010/011/012)全部跑了一次「spec vs impl」对照审查 —— QA 介入前主动找潜在的需求遗漏 / 实现偏离。8 个 FEAT 用 Explore subagent 并行跑(4+4 两批),每个 agent 输出 ✅/⚠️/❌ 三栏清单。FEAT-011 FE=— 跳过。
按修复优先级三档分类后批量推进。
🔴 必须修批次
Section titled “🔴 必须修批次”- FEAT-009 守住价格容忍度 + 最低钱包数(commit
413ec09):bandPct 三档0.03/0.05/0.08 → 0.08/0.12/0.20贴 spec L240;SubmitBarminWallets={1} → 2(spec 明确「守住价格 / 做活跃度至少 2 个钱包」,1 钱包能过校验但引擎跑不起来) - FEAT-010 pause/resume/cancel 错误 toast(commit
8e5f865):之前void services.strategy.xxx(id)把 promise 错误吞掉,QA 看不出接口失败。改 async + try/catch + toast 红字 - FEAT-001 侧栏最近活动数据源 + 双 5s poll(commit
0ac1296):Sidebar 用txStore(单代币 recent-trades 切片)跟 spec BE-007/home/recent-activity(跨代币最近 5 条)不一致;首页活跃任务用 WS-driven 本地taskStore,homeStore 已拉但渲染层从未消费。改为homeStore.recentActivity+homeStore.activeTasks,各加独立 5s setInterval;TaskRow 改吃TaskCardData通用形
🟡 续修批次
Section titled “🟡 续修批次”- Sidebar 假按钮(commit
54c7ed5):「显示更多」div 顶 cursor-pointer + ChevronRight 但无 onClick,需求里也没要求该交互 - FEAT-007 BT-010 5 次错误 + 30s 冷却(commit
2706839):VerifyPasswordPrompt 之前无失败计数 / 冷却,模块级consecutiveFailures+cooldownUntil,第 5 次错触发冷却(counter 归零,下个序列从冷却后重新累计),冷却态 input + 提交按钮 disabled + tooltip / 倒计时 - FEAT-009 三策略 intro 文案 + 单笔区间 + pump 笔数估算(commit
8014661):intro 改回 spec 原文「价格跌破自动接,涨过自动卖,维持区间」「同组钱包左手倒右手刷成交量」「短时间内拉 / 砸到指定价」;PRICE_SUPPORT 单笔区间贴 spec story-01 L241-242gentle 50/250、standard 150/650、aggressive 600/1800;VOLUME_WASH gentle 单笔200/600 → 100/400贴 spec L251-252;三策略 SummaryCard 全部贴 spec FE-005 模板(守住价格补「锚价随行情滚动 / 柔性拉回 / 允许偶尔小幅破边」核心机制描述、做活跃度去冗余间隔、推到目标价补「预计约 M 笔交易」用durationMin × 60 ÷ intensity_interval公式估算) - FEAT-003 E8 周期切换超时(commit
6272ec9):之前 NovaSwap WSS history 不响应时 chart 卡新周期 fallback 视图。加 4s 超时:切周期后novaswap.ready没在 4s 内变 true → URL 回滚原周期 + toast「网络错误,请重试」。mock 模式跳过保护 - FEAT-010 AC13 StrategyRow 1Hz tick(commit
216ff04):之前依赖 Zustand subscription 重渲,但 task 对象内部 timestamp 字段正常 running 中不变 → elapsed 字符串卡住。running 期间起 1HzforceTick,paused/pending 不起 timer 省资源 - FEAT-010 BT-014 Toast 队列(commit
a0222cd):之前setItems用slice(-MAX_STACK)直接丢最旧,多策略并发完成时最早完成的看不到。改成超 stack 入queueRef,每条 dismiss 自动从队列头取下一条替补,scheduleDismiss递归到队列空
🔵 已知限制(不修,留底)
Section titled “🔵 已知限制(不修,留底)”- FEAT-003 K 线初始加载条数 spec 档位(1m=300、其他=200):NovaSwap WSS 协议
{type:'req', msg: \${subType}_${coinId}`}没有limit` 字段,FE 控制不了 BE 推几根。spec 当时是基于路线 A(NovaMM 后端代理)的预期,路线 B 直连 NovaSwap 后失效。留待 NovaSwap 协议升级或 PM 接受现状
❌ 不动(v2+ scope,user 已确认)
Section titled “❌ 不动(v2+ scope,user 已确认)”- FEAT-003 周期 4h/1d/1w + MA(7)/EMA(12)/BOLL(20,2) 三指标(spec overview L51/L72 明确 v2+)
全天 commit 累计
Section titled “全天 commit 累计”today 累计 19 个 commit(10 src + 9 build),FEAT-003/007/009/010/012 五个 FEAT 都有 spec 合规 fix 落地。FEAT-001 数据源问题修完后 sidebar/home 切到 homeStore + 5s poll,跟 spec BE-006/BE-007 终于真正对齐。
- 16:00 · 前端已部署 · [iro-bsc] · V3 主网合约接入正式服(v3IroFactory=0xC3400C4d… / v3Owner=0x69876820…),TG 通知 zz 补主网监听 factory
- 16:10 · 前端已部署 · [iro-bsc] · fomoadmin 正式服 V3 BSC 主网配置就位(56.js v3IroFactory / v3Owner 回填 + V2 同步 2026-05-18 批次 + master-v2 buildspec 还原 prod)
- 17:33 · 前端 Bug 已修复 · [nova-market] · BUG-054/055: 首页 TokenCard 价格刷新归零 / 策略暂停态首页显示「运行中」(race 修:runTokens apply 前兜底 await reconcileTokens + tokenService 加 inFlight 守卫;TokenCard 拆 running/paused selector)
- FEAT-003 后续:观察 QA Ada 复跑 ABCD 脚本 + 看板成交 counter / recent-trades 列表是否真正反映链上 Swap 事件(依赖 BE listener 写 swap_events 表 → recent-trades 接口透传)。如果 listener 仍未写库,要找 zz 拍 listener
- 清理另两条已实际闭环的 FEAT-003 memory(
feat-003-kline-pipeline路线 B 已合,feat-003-recent-trades-schema路线 A 已合) - 若有新 P0/P1 FE bug 直接接
- 无(FE 侧 chain swap 链路已端到端验证通,等 QA 复测 + BE listener 写库行为观察)