2026-06-02
2026-06-02 daniel 工作日志
Section titled “2026-06-02 daniel 工作日志”上午记录,下午继续补充。
今日完成(上午)
Section titled “今日完成(上午)”FEAT-009 做市引擎 v2.1 —— PRD 对账 / 反馈环修复 / 与 BE(zz) 接口收敛
Section titled “FEAT-009 做市引擎 v2.1 —— PRD 对账 / 反馈环修复 / 与 BE(zz) 接口收敛”主线节奏:上午先做 PRD v2.1 In Scope 与「派生公式+推价节奏」交接文档逐项对账 → 整理「需补给 BE 接口字段清单」并落地 bob 三项”本期不做”决策 + 清理 MEV 残留 → 深挖反馈环(PATCH /derived 兜底修复 + 失败错误码日志,TDD)→ 与 zz 收敛三个接口问题(PATCH/derived、native-price、stat_updated)并确认”是文档没更新非 FE 落后” → 重建 bsc 测试产物推送 test。
📋 PRD v2.1 In Scope × 交接文档逐项对账(本地 docs/nova-market/,待 docs-push):
- 13 项 In Scope 分三类:完全对齐 5(三策略参数模型 + 金额/间隔/方向采样 + 派生载荷)/ 部分 3(反馈环·滑点失败熔断·成本估算)/ 射程外 5(AMM 估算块 UI·滚动锚价·方向校验·代币税探测·滑点容忍重构)
- 筛出真依赖 BE 的项,新建
backend/需补给BE的接口字段清单(PRD未交接项).md(每项给 接口/方向/FE 消费点/BE 须返字段/缺口) - 澄清易误判点:滚动锚价用每 tick 观测 spot 价均值近似 K 线、已闭环且 AC13 测过,非卡 BE kline 模块;AMM 块走链上 preflight 直读池子储备,纯 FE 可算
🗂️ 落地 bob 2026-06-02 口头拍板「三项本期不做」(更新 3 份对账/交接 doc + 清理):
- ① 代币税「探测失败禁启动」废规(承接白名单恒 0%)② 守价硬熔断(净损 30%/笔数 1.5×/量 105%)+ 响应延迟(30/15/5s)下期、标 deprecated、QA 跳过、FE 留半成品 ③ MEV 确认退场
- 清掉
FEAT-009-v2-fe-breakdown.md残留的 live MEV endpoint(mev-loss-rate等)+ 池子滑点 endpoint,加时效横幅指向权威对账文档
🛠️ 反馈环输出兜底修复(commit 4a7e124,TDD):
- 原实现 PATCH /derived 失败即
return,连本地updateDerived都跳过 → FE 引擎自身节拍也不减速(AC14 bug:QA 2026-06-02 实测「减速写不回」) - 改「先本地应用 → 再 best-effort PATCH → 失败仅 warn 不回滚」,瞬时失败不丢调参、下个 tick 自然重试;+2 单测,引擎 229 测试全过
🔎 PATCH /derived 失败错误码日志(commit a20edaa,TDD):
- 原 catch 吞错误、QA 报不出响应码(zz:「代码看不出 bug,给我响应码」)→ 新增
describePatchError把BackendError(业务码)/401/后端不可达压成一行写进 task 日志,下次复测直接给 zz 响应码定位(对应他怀疑的 4 个原因);+1 单测
🤝 与 zz 收敛三个接口问题 + 确认文档新鲜度:
- 查 docs 仓库提交记录:06-02 前 0 提交,FE 本地
.docs/已是最新 → 是 zz 改了代码没推文档,非 FE 落后 - zz 回复 + 推
ws.md:- PATCH /derived:代码核查
task.go:663-730OK,要实测响应码定位(FE 已加日志,待 QA 复测) - native-price:端点在,但 Moralis 账户欠费 → 56/97 都 500,FE
$500fallback 兜着,待运营付费 / Binance fallback(zz 规划未实施) - stat_updated 真 bug:BE listener 从来没 publish(文档写了没实现,zz grep 全仓 Go 无调用),已修
ef5bf84+ 推 ws.md;FE handler 早按契约建好且已测、无需改(已同步本地 ws.md 验证wsService拆 payload / 字段 / wei 单位全对)
- PATCH /derived:代码核查
🧱 重建 bsc 测试产物 + 推送远端(commit f92a2b0):
build:bsc:test重建build/产物;修了build/被.gitignore忽略导致新 hashmain.js漏加的坑(git add -f全量、git 识别为 rename、index.html/asset-manifest 与文件一致);git push origin test
关键决策记录
Section titled “关键决策记录”task.stat_updated从未被 BE 推送(zz 2026-06-02 挖出确认):文档(对接指南§6/task.tick§72/概览§238)写了 listener 没实现 → FE 此前拿 BE 绝对值实为 HTTP poll 兜底驱动、非 WS;zzef5bf84已修真推 + ws.md 同步。- 反馈环进度比输入读
runtime_stats(GET,已 BE 权威),不是stat_updated混合值 —— 订正先前误判;generatedVolume/spentBudget混合值影响的是完成判定,与反馈环调参输入无关。 - 6.3 完成判定混合值不能 naive 去本地累加:本地累加的
spentBudget承重于每笔预算限额(tick.ts:953 remaining = maxBudget − spentBudget),去掉会超花预算 → 正解是拆字段(FE-intent vs BE-absolute 分存),列为 tech-debt 待方案(stat_updated 上线后更值得做)。 - native-price 当前不可用但有兜底:BE 端点在、Moralis 欠费 56/97 都 500,FE
$500fallback 保证 gas 估算照常;待运营付费或 Binance 公开 API fallback。
上午 commit(test 分支已推远端 f92a2b0)
Section titled “上午 commit(test 分支已推远端 f92a2b0)”4a7e124fix(feedback): PATCH /derived 失败时本地仍写回反馈环调整 (AC14)a20edaafix(feedback): PATCH /derived 失败日志记真实错误码 (定位 AC14)f92a2b0chore(build): 重建 bsc 测试构建产物 (build:bsc:test)
今日完成(下午)
Section titled “今日完成(下午)”FEAT-009 反馈环三策略全激活 + progress_stuck 卡死防护(与 BE zz 三方案合力)
Section titled “FEAT-009 反馈环三策略全激活 + progress_stuck 卡死防护(与 BE zz 三方案合力)”主线节奏:下午先逐条修 QA 2026-06-02 反馈环 bug(只触发 1 次 / 误减速 13.81 / 卡片不可见)→ 三策略反馈环全部激活(做活跃度改按量、推价接入 pumpProgressRatio、守价 D3 价偏累计器经 bob 拍板上线)→ 补 PRD §9 防雪崩硬约束(±20% 累计封顶 + lambda 补夹)→ 与 BE 合力收敛 progress_stuck(派单卡死)三套方案(A 上报 swap-attempt + safeguard 兜底 / B failed 终态 / C 滑点真暂停)→ 终态自愈 + 取消 reason 字典对齐 v2.3 → AC14 日志补齐 → 重建产物推 test。
🔁 反馈环三策略全激活 + QA bug 修复:
- bug5 反馈环整轮只触发 1 次(
c155c67):原只有 10min 定时,小目标量(DDD1 100 笔本应每 ~16 笔触发)整轮才触发 1 次 → 补「按累计成交笔数」触发,txCount越过step=max(1,round(目标÷6))即再跑,与 10min 取较短;触发后重置基线防边界连发。 - 做活跃度进度比 13.81 误减速(
0755c52):QA 报跑 4h17m 实际量 $302/预期 $1785≈0.17 本应加速却显示「13.81 减速」。根因:统一按笔数算actual ÷ (lambda×elapsed),而 lambda 被反馈反复改写又回分母 → compounding 雪崩(减速→分母变小→比值变大→更减速)。改为 实际成交量 ÷ (目标量 × min(1,已用时/24h)),分母固定不随调参漂移,与 QA/PRD 完成口径一致。 - ±20% 累计封顶 + lambda 补夹防雪崩(
f55f314):补齐 PRD §9 硬约束。clampBaseSize基线从「每轮被改写的当前值」改为启动基线(不再越缩越小);新增clampLambda夹在 [0.8×, 1.2×启动](旧实现 lambda 完全没夹会无界复利);首 tick 懒加载捕获launchBaseline。 - 推价接入 pumpProgressRatio(
f6d74ba):推价偏置那条原先休眠(引擎从不喂推进比)。Task 新增startPrice(首 tick 捕获),computePumpProgress = (现价−起价)/(目标价−起价)÷(已用时/用时)→ 落后 <0.9 即偏置 +0.05(dump −0.05),封顶 0.85/封底 0.15;缺起价优雅退化只调 size/λ。 - 守价 D3 价偏累计器接入,激活反馈环(
e4226ff,bob 拍板):PRD §9 守价只给指标没给阈值,FE D3 临时值此前因引擎未喂priceOutOfBandRatio而 no-op。bob 2026-06-02 拍板「30%/10% 按推荐来,看效果」 → 新建priceBandTracker.ts(时间加权带外时长占比,独立成模块避开 tick↔feedback 循环依赖),tickPriceSupport每 tick 记观测 → D3 生效(>30% ×1.15 拉回 / <10% 不调)。 - 可见性两修:on-pace 容忍带(0.8~1.2)原本完全静默致 QA 误判「没触发」→ 每次触发记一条 info「反馈环检查:进度比 X.XX 在容忍带,本轮不调整」(
3662602);运行中卡片唯一 log surfaceRecentWarnBanner只渲 warn、反馈环日志全是 info → 新增FeedbackStatusLine展示最近一条「反馈环」日志(三策略通用),BE 缺actual_trade_count时也记 info 点根因(34ba6a0)。
🚧 progress_stuck 派单卡死防护(FE×BE 三方案合力,覆盖三处诊断真空):
- 方案 A —— FE 上报派单失败/跳过(
1664c97,配 BE3cbcb17):新增reportSwapAttempt → POST /tasks/:id/swap-attempt {outcome,reason}(fire-and-forget),emitSignedSwap两个非成功出口上报(gas 预检不过=skipped+balance / 广播失败=failed+SkipReason 映射)。BE 据此精准判定「30min 0 成交 AND 有失败上报 → 暂停」,守价带内空闲(0 上报)不误伤。 - 方案 A 兜底 —— safeguard.progress_stuck(
e309328,配 BEbebcaf6):BE「running 且距 last_swap > 30min → PauseBySystem」覆盖派单全 skip(不触发 5 连败熔断)/ 减速到不可见慢速 / 余额耗尽漏判。FE 加PAUSED_REASONSlabel(提示查余额/流动性/滑点)+ safeguard handler toast。 - 方案 B —— task.failed 终态接回(
5932b7c,配 BE46d31f4PM 拍板):24h 内 2 次 progress_stuck → 升级failed。重新接回task.failed订阅(早先 BE 用 cancelled 表达失败时删过)+FAILED_REASONS字典 +store.fail;UI 侧(红「失败」Pill / 不显恢复按钮 / dropLocallyTerminal 自愈)已现成无需改。 - QA 回归补项(
d56b0a8):QA doc §7 补 progress_stuck 自动暂停 + 反馈环 ±20% 防雪崩回归项。
⚡ 熔断 / 终态一致性:
- 滑点连续失败熔断改真暂停不自恢复(
360d45c,C 方案 FE/BE 拍板):原实现 5 连败设 60s 内部冷却、status 留 running 自恢复 → BE paused / FE running 状态分歧(BE 2026-06 反馈)。改 = 真本地 pause 不自恢复(与越界、spec §11#6 一致),移除整套 60s 冷却自恢复机制,需用户排查后手动 /resume。 - 首页最近活跃任务终态自愈(
e9021bd,QA #3):/home/active-tasks不返 status、FE 硬当 running,预算耗尽/归档取消 FE 不推 BE → 完成任务持续显示运行中(推价完成 5min 仍 running)。新增纯函数dropLocallyTerminal按 backendTaskId 剔除本地已知终态项(只剔终态、保留在跑计数防 txCount 跳变)。 - 取消 reason 字典对齐 v2.3(
faf452e):CANCELLED_REASONS补wallet_changed/token_switched;resolveReason加 fallbackLabel,未注册 reason 兜底「已取消」不回显英文裸 key。
🧾 AC14 反馈环日志补齐(fddea90):每次触发日志补「调整前后参数值(单笔 $A→$B、速率 C→D/s、偏置 E→F,仅含实际变了的字段)」+「调整后 30min 进度比」(一次性回看 timer 到点回算并记日志),抽 buildFeedbackInput 供 tick 与回看共用。
🧱 重建 bsc 测试产物 + 推送远端(a59d3e1):build:bsc:test 重建并 git push origin test;本地引擎+ws+chain 全套测试全绿(feedback 28 / engine 261 / services-ws 83 / engine+chain 463 各节点均通过)。
关键决策记录(下午)
Section titled “关键决策记录(下午)”- 守价 D3 阈值由 bob 钦定 30%/10%(2026-06-02):「按推荐来,看效果」→ 守价反馈环正式从 no-op 转激活,标注「观察期」,待 QA 实跑确认拉回方向对。详见记忆 [[feat-009-feedback-loop-three-strategy-state]]。
- progress_stuck 三方案分工(FE×BE 合议):A=FE 上报 swap-attempt 让 BE 精准判定(避免误伤守价带内空闲)+ safeguard 30min 兜底;B=24h 2 次升级 failed 终态;C=滑点 5 连败改真暂停。三者合力消除「BE paused/FE running 状态分歧」与三处检测真空(全 skip / 不可见慢速 / 余额耗尽)。
- 反馈环进度比分母必须固定、不随调参漂移:做活跃度按量、各策略 baseSize/lambda 基线一律钉「启动基线」并 ±20% 封顶 —— 否则反馈量自身进入分母造成 compounding 雪崩(13.81 / lambda 1/87 同源)。
- info 级反馈环日志需独立 UI surface:卡片原只渲 warn,反馈环正常运行(info)彻底静默 → 必须有
FeedbackStatusLine才能让 QA 验证触发频率,否则「修好=看不见=被误报没触发」。
下午 commit(test 分支已推远端 a59d3e1)
Section titled “下午 commit(test 分支已推远端 a59d3e1)”e9021bdfix(home): 最近活跃任务本地终态交叉过滤自愈 (QA #3)c155c67fix(feedback): bug5 按成交笔数触发(目标÷6,取较短) + 守价去掉错误 universal 退化3662602feat(feedback): on-pace 也记一条「反馈环检查」info 日志 (bug5 可见性)360d45cfix(engine): 滑点连续失败熔断改真暂停不自恢复 (C 方案, FE/BE 2026-06)34ba6a0fix(feedback): 运行中卡片显示反馈环活动 + BE 缺笔数也记日志 (QA 2026-06-02)0755c52fix(feedback): 做活跃度进度比改按成交量算,修 13.81 误减速 (QA 2026-06-02)faf452efix(ws): 取消 reason 字典补 BE v2.3 新 key + 未注册兜底「已取消」fddea90feat(feedback): 补齐 AC14 反馈环日志(调整前后参数值 + 调整后30min进度比)f6d74bafeat(feedback): 推价接入 pumpProgressRatio,激活「未按预期推进→偏置±0.05」(PRD §9)e309328feat(ws): 接 BE progress_stuck 兜底 safeguard (bebcaf6)f55f314fix(feedback): ±20% 累计封顶钉死启动基线 + 给 lambda 补夹(防雪崩)d56b0a8docs(qa): 补 §7 progress_stuck 自动暂停 + 反馈环 ±20% 防雪崩回归项5932b7cfeat(ws): 接回 task.failed 终态 handler (BE 方案 B progress_stuck_repeated)1664c97feat(engine): FE 上报派单失败/跳过 → POST /tasks/:id/swap-attempt (progress_stuck 方案A)e4226fffeat(feedback): 守价 D3 价偏累计器接入,激活反馈环 (bob 2026-06-02 拍板 30%/10%)c6f14e9docs(feat-009): 守价 D3 激活 + PM 1-6 回执 + 自决项 AC 验收影响- (另含 5 个
chore(build)bsc 测试产物重建,最终态a59d3e1)
- 三策略反馈环实跑验收:QA 复测做活跃度(按量进度比 / 不再误减速)、推价(落后→偏置 +0.05)、守价 D3(带外 >30% 拉回)调参方向与日志,确认 ±20% 封顶 + lambda 夹住雪崩。
- progress_stuck 三方案端到端联调:待 BE
3cbcb17/bebcaf6/46d31f4部署测试服后,跑真实慢任务验证 A(swap-attempt 上报 + safeguard 暂停,守价不误伤)/ B(2 次升级 failed)/ C(滑点真暂停不自恢复)。 - PATCH /derived 响应码定位:QA 复测读 FE 新增错误码日志 → 转 zz 精确定位(测试服部署 / task 非 running / 401 / UUID)。
- 推
docs/nova-market/本地对账/交接文档到 docs-site;跟运营推进 native-price(Moralis 付费 / Binance fallback)。
PATCH /tasks/{id}/derived实测失败根因待定 —— 待 QA 复测读 FE 新增的错误码日志,转 zz 精确定位(测试服部署 / task 非 running / 401 / UUID)。GET /chain/native-price因 Moralis 账户欠费返 500,待运营付费;FE$500fallback 暂兜。progress_stuck三方案(A/B/C)依赖 BE3cbcb17/bebcaf6/46d31f4部署到测试服后才能端到端联调,FE 侧已全部接好待验证。- 守价 D3 30%/10% 为 bob「看效果」观察期取值,方向/幅度待 QA 实跑数据确认,可能再调。