Files
echo-nexus/agent-ctx/10-a-full-stack-developer.md
T
Super_Z 191434e6ad v0.8.2: 工单大清理 - 编年史分页+限时挑战+星潮深化+云排行榜+手写叙事+socket多人星潮+UI打磨
工单 #8 编年史上限+分页:
- engine.ts: slice(-50)→slice(-200)
- ChronicleDialog.tsx: 加分页(每页10条)+上一页/下一页+页码显示

工单 #5 限时挑战 (subagent 10-a):
- beacon.ts: BeaconTimedChallenge + getTimedSlotKey(4h时段) + generateTimedChallenge
- BeaconPanel.tsx: amber主题限时区块 + 倒计时 + <30min紧急状态
- gameStore: trackBeacon 加 timedJustCompleted + claimTimedBeacon action

工单 #3 星潮类型深化 (subagent 10-a):
- starTide.ts: +3种星潮 surge(emerald)/eclipse(rose)/prism(fuchsia)
- TideModifiers: +targetLenBonus/bossWinRateBonus/autoDecodeIntervalMult
- decode.ts: generatePuzzle 加 targetLenBonus 参数
- achievements: ach_tides_all 阈值 6→9

工单 #4/P2 云排行榜 (subagent 10-b):
- mini-services/leaderboard-service/ (端口3030, Hono+bun, 内存1000条)
- API: GET/POST /api/leaderboard + /stats + CORS + 防刷
- beacon.ts: fetchCloudLeaderboard/submitCloudScore
- BeaconPanel: 本地Top20/全球Top100 双tab + YOU徽章高亮

工单 #9 手写叙事 (subagent 10-c):
- chronicle.ts: EPOCH_LORE 5纪元×3节点=15段手写叙事(80-150字/段)
- buildLore 优先手写节点, fallback 模板, 11个变量替换

P3 socket 多人星潮 (subagent 10-c):
- mini-services/star-tide-service/ (端口3031, socket.io)
- 每10-15min广播global-tide, 60s持续, 6种类型权重
- useGlobalTide hook + triggerGlobalTide action
- StarTideIndicator 加 🌐 全球星潮标记

P2 UI打磨:
- page.tsx: CrystalOrb 区加装饰全息环(3层旋转) + 四角标记 + 顶部状态条 + 底部铭文

QA: lint零错误 + dev HTTP200 + VLM 8/10 + 2个mini-service运行中(3030/3031)
2026-06-23 23:57:41 +00:00

5.6 KiB
Raw Blame History

Task ID: 10-a — 限时挑战 + 星潮类型深化

Agent: full-stack-developer Task: 工单 #5 限时挑战 + 工单 #3 星潮类型深化

Work Log

前置准备

  • 阅读 worklog.md 了解 v0.8.1 项目状态(10 大系统,四色全息 emerald/rose/amber/fuchsia
  • 精读 beacon.ts(873 行,日挑战+周挑战+信标链)、BeaconPanel.tsx753 行)、starTide.ts209 行,6 种星潮)、gameStore.ts trackBeacon~170 行)+ tickTide~440 行)
  • 确认现有 UI 均动态读取 TIDE_EVENTS[type],新增类型自动生效

工单 #5:限时挑战(Timed Challenge

beacon.ts 扩展873 → 1162 行,+289 行):

  • BeaconScoreEntry 新增 isTimed?: boolean 字段
  • BeaconTimedChallenge 接口:slotKey / type / difficulty(固定 routine) / goal / rewardInsight / rewardContact / seed / title / desc / expiresAt
  • BeaconTimedProgress 接口:slotKey / progress / startedAt / completedAt / claimed / durationSec
  • TIMED_SLOT_MS = 4hBEACON_TIMED_KEY = "echo-nexus-beacon-timed-v1"
  • getTimedSlotKey(now)UTC 0/4/8/12/16/20 点切分,格式 "timed_YYYY-MM-DD_HH"
  • timedSlotKeyToSeedFNV-1a 哈希
  • generateTimedChallenge(now):确定性生成,难度 routinegoal = 日基准 ×0.3-0.5,5 种类型各有公式
  • msUntilNextTimedSlot(now):距离下个 4 小时时段的毫秒数
  • loadTimedProgress / saveTimedProgress / addTimedProgress / claimTimedReward(推送排行榜,entry 加 isTimed: true

gameStore.ts 集成

  • import 扩展:generateTimedChallenge / loadTimedProgress / addTimedProgress / claimTimedReward + 类型
  • trackBeacon 返回值新增 timedJustCompleted:日/限时/周三类进度同时更新
  • 新增 claimTimedBeacon actionGameActions 接口同步)
  • 新增 timedJustCompleted 到 trackBeacon 返回类型

BeaconPanel.tsx UI753 → 944 行):

  • import 扩展:generateTimedChallenge / loadTimedProgress / getTimedSlotKey / msUntilNextTimedSlot / Hourglass 图标
  • 新增 timedChallenge/timedProgress/timedCountdown state
  • 每秒刷新 timedProgress + timedCountdown
  • 新增 handleClaimTimed 回调
  • 限时挑战区块(amber 主题,插入日挑战与周挑战之间):
    • Hourglass 图标 + "限时挑战 · TIMED" 标题 + slotKey + 倒计时
    • 难度/类型标签 + 标题 + 描述 + 进度条 + 奖励 + 领取按钮(emerald 主题)
    • 紧急状态:距时段结束 <30min 时切换 rose 脉冲动画 + "即将结束"徽章
    • 2 个新动画:timed-glowamber 呼吸)/ timed-urgentrose 急促脉冲)
  • 排行榜 entry 区分 TIMEDamber 徽章)/ WEEKfuchsia 徽章)
  • 空状态提示更新为"完成限时、每日或本周信标即可登榜"

工单 #3:星潮类型深化

starTide.ts 扩展209 → 289 行):

  • TideType 新增 3 种:surge / eclipse / prism
  • TideModifiers 新增 3 个可选字段:targetLenBonus / bossWinRateBonus / autoDecodeIntervalMult
  • TIDE_EVENTS 新增 3 种元信息(name/desc/color/glow/icon/negative):
    • surge(涌动星潮,emerald #34d399,⇈):产能 ×2.5 但解码目标 +2
    • eclipse(蚀相星潮,rose #fb7185,◐):BOSS 胜率 +20% 但产能 -30%
    • prism(棱镜星潮,fuchsia #e879f9,◬):洞见 ×2 + 自动解码周期 -30%
  • TIDE_WEIGHTS 新增 surge/eclipse/prism 各 12(总权重 136
  • getTideModifiers 新增 3 个 case + null 分支补全新字段
  • 注释更新:"6 种类型" → "9 种类型"

decode.ts 扩展

  • generatePuzzle 新增第 3 参数 targetLenBonus(默认 0
  • targetLen = cfg.targetLen + targetLenBonusstepLimitBase 同步增加
  • 路径构造法自动适配更长目标序列(300 次尝试 + 线性兜底)

gameStore.ts 集成3 处修饰器应用):

  • startDecodesurge 星潮时传入 tideMod.targetLenBonus → 谜题更长
  • autoDecodeTickprism 星潮时 interval *= tideMod.autoDecodeIntervalMult(×0.7
  • resolveCurrentNodeeclipse 星潮时 b = am.bossWinRateBonus + tideMod.bossWinRateBonus+20%

achievements.tsach_tides_all 阈值 6 → 9,描述"经历全部 9 种星潮事件"

page.tsxStatsPanel "星潮亲历" 显示 / 9

QA 验证

  1. lintbun run lint 零错误(exit 0
  2. dev 服务器HTTP 200,编译 < 30ms
  3. BeaconPanel VLM 评分
    • 首屏 8.5/10:限时挑战 TIMED 区块可见、四色一致、倒计时/进度/标题/奖励/按钮清晰
    • 最终截图 9/10:4 个挑战区块齐全、限时区块带倒计时、无蓝色
  4. 新星潮 VLM 评分localStorage 注入 + reload 触发):
    • surgeemerald 绿):8/10,横幅 + 全屏绿色微光
    • prismfuchsia 紫):7/10,横幅 + 全屏紫色微光
    • eclipserose 粉):8/10(单图),横幅 + 全屏粉色微光
  5. 不破坏现有功能:日挑战/周挑战/信标链/6 旧星潮全部保留,排行榜正常

Stage Summary

  • 工单 #5 限时挑战完成:beacon.ts +289 行 + gameStore claimTimedBeacon + BeaconPanel amber 区块
  • 工单 #3 星潮深化完成:starTide.ts +80 行(3 新类型)+ decode.ts targetLenBonus + gameStore 3 处修饰器
  • 确定性生成:限时挑战同时段同种子同结果(FNV-1a slotKey 哈希)
  • 严格四色规范:限时 amber、surge emerald、eclipse rose、prism fuchsia,零蓝色/靛色
  • 紧急状态设计:限时挑战 <30min 时 rose 脉冲 + "即将结束"徽章
  • lint 零错误 + dev HTTP 200 + VLM ≥7/10(信标 9/10、surge 8/10、prism 7/10、eclipse 8/10
  • 现有日/周/信标链/6 旧星潮全部保留,无回归