跳转到内容

2026-05-22

FEAT-009 启动策略弹窗 — token 库存软警示 + 一键分发增量

Section titled “FEAT-009 启动策略弹窗 — token 库存软警示 + 一键分发增量”
  • 问题背景:engine/tick.ts 三类策略的 sell 腿都会消耗钱包的标的代币(守住价格突破阻力位卖 / 做活跃度 buy-sell 严格交替 / 推到目标价 dump 每 tick 卖)。钱包零持仓时引擎 simulate revert → silent skip,用户看到 0 成交容易当 BUG 上报,实际是上游 distribute 没做。FEAT-009 story-01.md 只有 AC14 BNB 不足软警示,token 库存维度无 AC
  • FE 实现(commit b67ed04):
    • NoTokenInventoryHint 三策略 tab 差异化文案 amber 警示条;推到目标价 dump 分支额外接 AMM delta 算缺口(合计 X / 需 N / 缺 Y),pump 显式不渲染
    • 警示条内嵌「立即从金库分发 →」按钮,跳 /transfer?target=<未持仓 ids>&asset=<symbol>;扩展 transferPrefill?asset= 字段,Transfer wizard 挂载时自动勾上该资产(兼顾 allAssetsList 异步到位)
    • 全员持仓但合计仍不够时按钮 disabled + title 引导手动追加
    • 单测 +4 case (encode / parse / empty / round-trip),11/11 pass
  • docs 缺口:完整 spec 增补建议(AC14b/c + QA-016b-e + frontend.md 三 tab 表)已落 .docs-cache/feat-009-token-inventory-ac-proposal.md,待 PM 评审后并入 docs-site content/nova-market/requirements/FEAT-009-strategy-launch/
  • 通知:TG 已发(msg 2533,IRO小组),@ PM (eason/tony) + QA (ada) + 后端 (zz) + 合约 (bob)

FEAT-009 / FE-008 strategy spec 合规打磨

Section titled “FEAT-009 / FE-008 strategy spec 合规打磨”
  • 14:10 commit 58a0088:单笔估算 < $1 不再静默跳过 —— 双层提示(启动弹窗 amber 警示 + engine 限频 warn log),杜绝”按钮可点但 tick 全 skip”的体感 bug
  • 15:10 commit d01730b:单笔下限改 gas-economics 动态门槛 —— clamp(gas × 8, $1, $20),告别硬编码 $1
  • 18:26 commit 50026aa:钱包徽章按状态拆分 —— 区分「运行中」/「暂停待启动」,对齐 BE-006 口径
  • 19:07 commit d9e6d7f:回退超规范的 paused/pending 计数 —— 严格按 FE-008 / AC23 / QA-044 spec 走(之前过度包含 paused,与 spec “只统计 running” 不一致)
  • 17:39 commit fc433ca + 17:46 58f339b:BE 上线 kpi.changed WS 事件,FE 接桥接 → 状态变更即时刷首页 KPI;同步把 ws.md 升到 v1.3,注释 payload=null + 推送时机
  • 18:15 commit 475ba7d:删 engine 4 处 pushTick 调用 —— 24h 聚合 / candles 全部归 BE 权威(之前 FE 本地累加跟 BE 聚合有 drift)
  • 18:15 commit 2dd7fc1:home recentTasks fallback 改 null-only —— 空数组也信 BE(之前空数组触发本地 fallback,导致首页空态短暂闪烁本地缓存)

退出 / 重登 / 硬刷新 reconcile race 系列(10 个 commit)

Section titled “退出 / 重登 / 硬刷新 reconcile race 系列(10 个 commit)”

跨 session 状态恢复一类 race,今天集中清了一轮:

  • 11:09 commit 8e219ec:vault 硬刷新后初始 refresh 读错库致 PasswordModal 误显「设置」
  • 11:13 commit 3d3d677:strategy FEAT-010 AC29 hydrate 补拉终态 task —— 已停止策略区跨会话不为空
  • 11:39 commit 5f2905e:sidebar reconcile 后再 refresh 一次 —— 修硬刷新后 group chip 计数停在 0
  • 11:41 commit 4fbd51b:token-detail 24h 高/低进详情页后不自更新 —— 加 5s reconcileTokens 轮询
  • 12:02 commit 90a6a60:BUG-014 wallets group + 已归档 组合筛选不再返 0 —— 排除条件加 status 保护
  • 13:39 commit d014898:BUG-074 wallets rename 回写 vault + 导入路径兜底 reconcileWallets —— 改名在 Excel 恢复后”失效”
  • 15:24 commit bf35285:BUG-075 BE active 状态透传 + sidebar cold-load 守卫 —— 重登后 chip 0 + 卡片全空闲
  • 16:12 commit f7d9d06:钱包池 30s 周期 reconcile —— 同步 BE 派生 active/idle
  • 16:59 commit 0f9d12c:sidebar chip “退出+重登” 路径再次卡 0 —— await + void 二次刷绕过 inFlight 合并(BUG-075 follow-on)
  • 18:25 commit 610dfc3:wallet mergeBackendWallets 入口 normalize groupId —— 退出重登侧栏分组数量归 0 的最后一片

主线:reconcile 调用的”序”与”幂等性”,多个 component 同时拉 BE 时 inFlight 合并会让后到的 caller 拿到上一次的(可能空)结果。修法主要是 cold-load 守卫 + 关键路径 await 二次刷 + groupId/状态字段写入前 normalize。

  • 12:53 commit cb6fe91:BUG-056 首页代币卡片 24h 量解析 —— BE 切 swap_events 聚合后 1e28 量级裸 parseFloat 显成「$168.8 亿 B」,FE 改走 wei 解析
  • 16:23 commit aa5c042:transfer 钱包选择器自动剪掉 orphan selection —— 「已选 N」与可见 checkbox 对齐
  • 17:12 commit b36112a:BUG-076 RecentTxs 高亮独立 timer + 跳过 seed —— 成交表黄底卡死
  • 15:37 commit 0b1fbac:删除代币确认弹窗去掉「清除 swap / K 线 / 成交记录」一条(数据归 BE 后该条无实际效果)

today 累计 23 个源码 commit(外加 14 个 build chore 重建产物未计入)。FEAT-009 体验补强 1 个 feat + 多个 fix 集中在 strategy / wallets / sidebar / kpi 四块,与 BE 这边 swap_events 聚合切换 + kpi.changed 事件上线的节奏配合。

  • 等 PM (eason / tony) 接收 FEAT-009 token-inventory AC 补丁,QA (ada) 同步加 QA-016b/c/d/e 用例后回归
  • 观察 reconcile race 系列上线后 sidebar chip / 钱包池 active 状态在生产环境的稳定性,若仍有 follow-on 当天加修
  • 接 BE 这边后续 swap_events 聚合 / kpi.changed 推送可能带来的 FE 字段口径调整