2026-06-08
2026-06-08 daniel 工作日志
Section titled “2026-06-08 daniel 工作日志”承接 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:计划笔数用时×4→ plannedTicks、单笔下限 → 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 权威。eca6a23:size_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:任务停止原因消费 BEreason_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=126 但 push_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 恢复也不再发新请求)。
5386101:httpJson加AbortController+ 默认 20s 超时(超时 →BackendUnavailableError→.finally清守卫 → 下轮重试,全 REST 调用受益);homeService.runActivitycatch 静默改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 的
pendingnonce 现读滞后 → 同钱包前笔未确认(慢/超时)时下笔抢同一 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)=max,sendRouterSwap加nonce?参数,leader 切换/停清缓存)+isInsufficientBalanceRevert加裸 selector0xe450d38c匹配 → 显「钱包 X 余额不足以承担本笔 swap」。详见 [[swap-nonce-per-eoa-and-balance-revert-decode]]。
构建 / 部署
Section titled “构建 / 部署”- 当日随每次源码改动重建 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]]。
关键决策记录
Section titled “关键决策记录”- 节奏分布 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 改动确认。