Skip to content

perf(buddy): 启动时跳过稳定历史事件的恢复重建 - #240

Merged
shanyuhai123 merged 2 commits into
useLexora:masterfrom
QAyong:codex/perf-startup-event-recovery
Oct 8, 2026
Merged

shanyuhai123 merged 2 commits into
useLexora:masterfrom
QAyong:codex/perf-startup-event-recovery

Conversation

@QAyong

@QAyong QAyong commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

背景与关联 / Context and related issue

  • 问题或目标 / Problem or goal: 应用启动时加载动画持续十余秒。原因是每次启动都把过去所有运行事件重新枚举、读取、投影一遍,历史越长启动越慢。
  • 关联 Issue / Related issue: N/A

主要改动 / Changes

  • 变更 / Change:
    • 新增事件检查点表(迁移 v23 v23RunEventCheckpoints)与恢复流程 RunEventRecovery:稳定且上次已可靠投影过的历史直接跳过;变化或不可信的运行记录仍按原方式完整重建。
    • 新增 LEXORA_BUDDY_EVENT_RECOVERY=full,可强制回到全量重放,便于排查与回滚。
    • 新增恢复阶段日志:枚举 / 检查 / 读取 / 投影 / 跳过 / 结束。
    • 首期只解决"不重复干旧活":不改事件日志与投影结果格式,不引入后台搬迁或事件尾部增量读取。

验证 / Verification

  • 自动检查 / Automated checks: pnpm --filter @uselexora/lexora-buddy test:runtime 相关 4 个 spec 通过(RunEventRecovery、RunEventLog、storage/schema、buddyServiceEnvironment);type-check 通过;改动文件 eslint 通过。
  • 手动验证 / Manual verification: 反复启动服务,观察恢复阶段日志与启动耗时变化。
  • 未执行 / Not run: 未执行完整仓库 pnpm lint;安装包真实启动性能未验收。

兼容与风险 / Compatibility and risks

涉及数据库迁移(新增检查点表,不改既有表结构)与启动恢复路径改写。回滚方式:设置 LEXORA_BUDDY_EVENT_RECOVERY=full 即恢复与改动前一致的全量重放;事件日志与数据库整理结果的语义不变。

界面变更 / UI changes

N/A(仅启动耗时变化)。

@QAyong
QAyong force-pushed the codex/perf-startup-event-recovery branch from d9fda23 to cf32b76 Compare October 8, 2026 04:50
@shanyuhai123
shanyuhai123 merged commit 1f30294 into useLexora:master Oct 8, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants