跳转到内容

2026-06-08

承接 v2.3 收尾 + 响应 QA/BE 复测反馈日。上午把守价/做量节奏收敛到指数(Poisson)采样原语、确认推价走固定基准 ±10%(不走泊松);中午推进推价 v2.3 计划笔数=plannedTicks / 单笔下限绑 pushBase,并大幅增强导出预估(建议预算两阶段拆分、size_max 绑净预算解耦、新增逐笔预估 sheet 回应 bob「导出每一笔」需求、停止原因消费 BE reason_label_zh 中文化);下午核心是修 QA Ada 抓出的启动抖动破两阶段不变式 bug(target/push/maintain 各独立抖 → 126/74/41,74+41≠126)改单抖 target 派生(→84/42),并做配置页/弹窗/导出三处展示口径审计(弹窗加名义值 vs 接口抖后值总注);傍晚修首页最近活动轮询冻死(httpJson 加超时 + 错误不再静默,Ada 报);晚间到深夜完成**守价方向改双边做市(对齐 PRD/docx 附录 A.2)**整套 + 做量时段权重披露 + PM「做市测试0605」推价两个执行层 bug(per-EOA nonce + 0xe450d38c 余额 revert 解码)。当日多次重建 bsc 测试产物并 push。

FEAT-009 节奏分布收敛 —— 守价/做量指数采样原语(上午)

Section titled “FEAT-009 节奏分布收敛 —— 守价/做量指数采样原语(上午)”
  • f3dc8f2:守价节奏由均匀 jitter 改指数分布(Poisson),预估报告间隔字段按策略对齐(推价均匀 ±10% / 守价·做量指数 P10~P90)。
  • 96075de:守价/做量节奏采样收敛到单一 sampleExponentialInterval 原语(refactor,与 BE / AC2 KS≤0.10 同口径)。
  • e969860:补推价 pickIntervalMs 固定基准 ×±10% 验收(推价不走泊松、固定节奏 jitter)。

详见 [[feat-009-pacing-distribution-canonical]]。

FEAT-009 推价 —— v2.3 计划笔数 / 单笔下限(中午)

Section titled “FEAT-009 推价 —— v2.3 计划笔数 / 单笔下限(中午)”
  • 2be3cf9:计划笔数 用时×4plannedTicks、单笔下限 → pushBase(docx v2.3);并加预估校验行 + 逐笔预估 sheet(见下)。
  • 949062b:导出明细页推价 baseSize/planTradeCount 公式文案对齐 v2.3。

详见 [[feat-009-pump-count-and-sizemin-v2.3]]。

FEAT-009 导出预估增强(建议预算拆分 / size_max 绑净预算 / 逐笔 sheet)

Section titled “FEAT-009 导出预估增强(建议预算拆分 / size_max 绑净预算 / 逐笔 sheet)”
  • f4b59d6:导出预估补建议预算两阶段拆分 + sizeMin/Max 标注 §2 权威。
  • eca6a23size_max 绑净预算解耦 + 导出建议预算拆分 wiring($16360→$4909)。详见 [[feat-009-pump-budget105-grossnet-and-reason-zh]]。
  • 逐笔预估 sheet(2be3cf9,回应 bob「导出每一笔数据」需求):导出预估新增第三 sheet「逐笔预估」(序号/预计时间/阶段/方向/单笔 USDT/代币数量≈),复刻引擎逐笔采样(对数正态金额 + 伯努利方向 + 指数/±10% 间隔)。顶部硬写免责声明——是「可能样本/示意」非执行剧本,引擎运行时逐笔随机采样 + 反馈环临场纠偏、实跑必偏离;验证「按策略走」要比分布不比行。详见 [[feat-009-export-trade-schedule-sheet]]。

FEAT-009 任务停止原因中文化(中午)

Section titled “FEAT-009 任务停止原因中文化(中午)”
  • 96d8e68:任务停止原因消费 BE reason_label_zh + budget_exceeded_105pct 中文兜底。详见 [[feat-009-pump-budget105-grossnet-and-reason-zh]]。

FEAT-009 推价 —— 启动抖动破两阶段不变式 bug(下午,QA Ada 抓出 · 核心)

Section titled “FEAT-009 推价 —— 启动抖动破两阶段不变式 bug(下午,QA Ada 抓出 · 核心)”

起因:QA Ada(task c0dd1132)发现接口 target_trade_count=126push_ticks=74 + maintain_ticks=41 = 115 ≠ 126,且 push/maintain 偏小(期望 84/42)。根因(FE)applyLaunchJitter 对 target/push/maintain 各乘独立 ±10% 因子 → 名义 120/80/40 抖成 126/74/41。126 是 FE 下发的、BE 原样透传(非「公式没乘 2/3」——80 本就是 120×2/3,74 是又被独立抖了 ×0.925)。

  • 6e52292:笔数只抖一次(抖 target),push=round(target×2/3)maintain=target−push 从抖后值派生 → 恒 push+maintain=target、push≈2/3(126→84/42 = QA 期望);补不变式回归测试。
  • 4947d56:启动弹窗推价笔数/阶段拆分改显示 ±10% 区间(108132 / 7288 / 36~44),对齐下发值口径(zz 提:弹窗名义 120 vs 接口 126 对不上)。

详见 [[feat-009-launch-jitter-invariant-and-display]]。

FEAT-009 三处展示口径审计(配置页 / 弹窗 / 导出)

Section titled “FEAT-009 三处展示口径审计(配置页 / 弹窗 / 导出)”

结论:守价/做量 applyLaunchJitter* 内部自洽,无 pump 那种下发值算错 bug;但存在系统性模式——弹窗/配置=名义 flat、导出=区间/分布、接口=抖后值。真风险=单笔金额上下限(三策略全中,接口 size_min/max 是 ±10% 抖后值、与弹窗名义差 ~9%,QA 易再开同类单)。

  • 324e117(方案 A):弹窗加一行总注统一解释(笔数/单笔上下限名义值、启动 ±10% 一次性抽样、接口为抖后值),不逐字段塞 band;做量买卖比例「含轻微抖动」→精确「每笔 ±X%」(取 derived.biasJitter)。
  • 边界判断:responseDelaySec(越界拉回响应延迟)只在导出有 ◇ v2.3规范 角标——引擎未消费、bob 2026-06-02 已 defer 下期,确认不补进「将执行」弹窗(否则虚报未生效功能)。

详见 [[feat-009-launch-jitter-invariant-and-display]]。

首页最近活动健壮性(傍晚,Ada 报)

Section titled “首页最近活动健壮性(傍晚,Ada 报)”

起因:Ada 报侧栏「最近活动」(BE-007 /home/recent-activity 5s 轮询) 不更新。根因:裸 fetch 无超时 → BE 吊死时请求永不 settle → in-flight 去重守卫被永久占住 → 轮询永久冻结(即使 BE 恢复也不再发新请求)。

  • 5386101httpJsonAbortController + 默认 20s 超时(超时 → BackendUnavailableError.finally 清守卫 → 下轮重试,全 REST 调用受益);homeService.runActivity catch 静默改 console.warn(保留上轮数据、可诊断)。补超时 + 自愈测试。

FEAT-009 三策略预估↔引擎对齐 + gas 单价精度对账(傍晚)

Section titled “FEAT-009 三策略预估↔引擎对齐 + gas 单价精度对账(傍晚)”
  • feff28b:页面/导出预估与引擎对齐(三策略) + gas 单价精度对账;a9ddbbd:交接 doc 订正推价节奏最终态 + 守价/做量口径。

FEAT-009 守价方向 —— 改「双边做市」(对齐 PRD/docx 附录 A.2)(晚间 · 核心)

Section titled “FEAT-009 守价方向 —— 改「双边做市」(对齐 PRD/docx 附录 A.2)(晚间 · 核心)”

起因:LD/Ada 反馈守价不应只在越界时单向护盘——docx「双向均有交易」+ PRD §5 Step3 + AC3 要求带内也双边做市。我此前两次误判为「事件驱动、全卖正常、非 bug」——判断错误,根源是没拿到精确 spec 就下结论(§174 误读)。

  • 3b0f8a6:守价方向先改带内伯努利 50/50 + 越界护盘(对齐 PRD/docx);并加连续 skip 真暂停(swapSkipBreaker,连续 5 次任意 skip → 真 paused,防 gas 烧干后静默空转、空报「完成」) + 完成文案区分达标/未达标。
  • f661d8a:进一步对齐附录 A.2 偏置调整——价近上界 ×0.95 → buy_bias−0.20=0.30、近下界 ×1.05 → +0.20=0.70、带内 0.50,伯努利 buy_bias_adj反向单恒 ≥30%、永不 100% 单向(我第一版还用 100% 强制越界、0 反向,被 LD 的附录 A.2 纠正为 ±0.20 偏移)。
  • 3cb6c42:单笔金额显「实际可见区间」(卖腿入账下沿 ×0.9×(1−slip)×(1−lpFee))+ 守价方向文案纠正(QA Ada)。
  • 7a772fb:守价预估三处(页面预估/导出/弹窗)去「事件驱动/仅越界」误导文案,统一为「双边做市:带内~50/50、接近边界偏护盘 ±20%(约30/70)、反向≥30%」。

详见 [[feat-009-price-support-bilateral-not-breach-only]]。教训:方向类 spec 不拿精确条款不动手——§174 误读直接造成了原「仅越界单向」偏差。

FEAT-009 做量 —— 时段权重披露(晚间)

Section titled “FEAT-009 做量 —— 时段权重披露(晚间)”
  • 4e7d2c6:做量启动弹窗「平均交易间隔」补「时段权重归 BE」披露(灰字),与导出一致——曼谷 UTC+7 时段权重(0.3×~2.0×) 在 BE 施加,实际波动比此区间更大

PM「做市测试0605」推价 —— 两个执行层 bug(深夜 · 核心)

Section titled “PM「做市测试0605」推价 —— 两个执行层 bug(深夜 · 核心)”

PM 推价测试文档暴露两个链上执行层 bug(非预估错误——金额类预估高度准确,目标价/单笔/阶段拆分/用时全对,笔数偏差是执行失败的下游):

  • nonce 冲突(LPTAXB nonce-conflict ×7 → 47 笔被跳、193 vs 240):swap 广播原不接 nonce、viem 每笔现读 → 多节点 RPC 的 pending nonce 现读滞后 → 同钱包前笔未确认(慢/超时)时下笔抢同一 stale nonce。转账路径早有 per-EOA「读一次+本地递增+显式下发」,swap 没用上。

  • 0xe450d38c 误显乱码(TTA 60 vs 108~132):0xe450d38c = ERC20InsufficientBalance(OZ ERC20 自定义错误 = 钱包余额不足),但 simulate 用的 Router ABI 不含该错误定义 → viem 解不出名字、只返裸 selector → 余额识别 miss → 误落「Unable to decode … not found on ABI」兜底文案。

  • 59bd76d:swap 加 per-EOA nonce 序列eoaNonceState + withEoaNonceLock 同 EOA 串行化 + 纯函数 pickSwapNonce(chainPending,cached)=maxsendRouterSwapnonce? 参数,leader 切换/停清缓存)+ isInsufficientBalanceRevert 加裸 selector 0xe450d38c 匹配 → 显「钱包 X 余额不足以承担本笔 swap」。详见 [[swap-nonce-per-eoa-and-balance-revert-decode]]。

  • 当日随每次源码改动重建 bsc 测试产物并 push:d8b156b / ac1fc38 / 97954a1 / e7980b5 / c9f40c0 / 68ff78c / 348b695(单笔可见区间+守价文案)/ e99c864(双边50/50+连续skip暂停)/ 40a2311(守价附录A.2整套+去误导文案)/ b0f01f5(做量时段权重披露)/ a2fb224(swap nonce + 余额 revert 解码)。改源码必须重建 + git add -f build/ + push(普通 add 漏新 hash bundle)。详见 [[grep-built-bundle-unicode-escaped]]。
  • 节奏分布 canonical:守价/做量 = 指数(Poisson)、归 BE 产;推价 = 固定基准 ×±10% 均匀抖动(不走泊松)。[[feat-009-pacing-distribution-canonical]]
  • 推价计划笔数 = plannedTicks用时×4 废)、单笔下限绑 pushBase(非预算/plannedTicks)。[[feat-009-pump-count-and-sizemin-v2.3]]
  • 启动抖动不变式:只抖 target、push/maintain 派生 → push+maintain=target、push≈2/3。126 是 FE 给 BE 的、BE 透传。[[feat-009-launch-jitter-invariant-and-display]]
  • 守价方向 = 附录 A.2 双边做市:带内伯努利 50/50、近界偏护盘 ±0.20(约30/70)、反向≥30%、永不 100% 单向;BE 0 改动。我此前「仅越界单向/事件驱动」是误判。[[feat-009-price-support-bilateral-not-breach-only]]
  • PM 0605 推价:金额预估准、笔数偏差是执行层(nonce 冲突 + 余额 revert 误显),已修;真·余额不足是运营层钱包加资金。[[swap-nonce-per-eoa-and-balance-revert-decode]]
  • size_max 绑净预算解耦 + 任务停止原因消费 BE reason_label_zh。[[feat-009-pump-budget105-grossnet-and-reason-zh]]
  • 待 QA/zz 复测(须硬刷新拿新 bundle + 重起新任务,老任务 c0dd1132 落库坏值不自愈):① 推价启动抖动 push+maintain=target、push≈2/3(126→84/42);② 弹窗笔数/阶段拆分显区间 + 单笔名义值总注;③ 逐笔预估 sheet;④ 守价双边做市(附录 A.2 偏置 + 三处去误导文案);⑤ swap per-EOA nonce + 0xe450d38c 余额 revert 解码(PM 0605)。
  • 待 BE/PM:确认 BE 原样透传 derived(不重算);三处展示口径审计结论同步;守价方向 BE 0 改动确认。