Skip to content

V12:事件摘要与详情分层,延迟加载单事件数据 - #19

Merged
CochraneK merged 17 commits into
mainfrom
feat/v12-event-layers
Sep 14, 2026
Merged

CochraneK merged 17 commits into
mainfrom
feat/v12-event-layers

Conversation

@CochraneK

@CochraneK CochraneK commented Sep 14, 2026 •

Copy link
Copy Markdown
Owner

目标

V11 已把年谱与 timeline 的物理交付解耦;V12 继续处理事件域。原始完整 events 约 394 KiB,事件索引、时间轴、帝王、人物/地点详情和郑和航线此前都可能因为“将来可能点事件”提前拉取整块 events。

V12 只优化在线物理交付与加载门控,不改最终 DATA、不改 generate_report、不改 standalone。

实现

  • 新增 src/split_event_asset_v12.py:把完整 events 无损变换为轻量 data-events.js 摘要核心 + 8 个确定性 data-event-detail-* 详情 shard;
  • 摘要保留事件索引/搜索所需的 id、类型、名称、年份、类别、地点、参与者与 sourceCount;完整来源、年份核验元数据等进入详情 shard;
  • 按稳定 event id 做 DJB2-xor 路由,拆分前后逐值重建验证,支持幂等 --check;
  • loader 新增事件 shard 路由与详情补丁应用;
  • timeline / dynasty 首次只加载 time,不再预取 events;
  • 人物详情不再预取 events;郑和航线切换也不再预取 events;
  • 单条事件真正打开时,才加载 events core + 目标详情 shard + 地点摘要 + 洞察;
  • 事件索引兼容轻量摘要,以 sourceCount 展示来源章数;
  • 新增 V12 专项预算、可逆性单测、README V12 同步层与 SW v21;
  • Chrome 在线回归覆盖事件索引、事件 deep link、时间轴、帝王、人物详情、郑和航线等路径;
  • CI / refresh 已接入 sync_event_cards_v12.py、V11 → V12 两层后处理和对应门禁。

CI #80 实测

  • 单元测试:98 / 98;
  • 最终模型审计:ERROR 0 / WARNING 1(仅既有 2 件未知年份事件);
  • standalone:5.30 MiB;原 14 个 Chrome 场景 14 / 14;
  • V3 产品体验 Chrome:3 / 3;
  • V12 在线分层 Chrome:15 / 15。

V12 事件资源

  • data-events.js 摘要核心:221.9 KiB / 1106 events;
  • 8 个事件详情 shards:总计 208.8 KiB;
  • 最大详情 shard:event-detail-05 26.9 KiB;
  • first-load shell:264.3 KiB;boot:44.5 KiB。

V12 真实入口传输(零缓存)

  • 事件索引:221.9 KiB;
  • 时间轴 / 帝王:394.4 KiB(只取 time,不预取 events);
  • 人物详情:708.3 KiB(不预取 events);
  • 地点详情:785.8 KiB;
  • 单事件详情:756.2 KiB(events core + 仅目标 event shard + locations + insight);
  • 郑和航线:352.7 KiB(locations + voyages,不预取 events);
  • 年谱继续保持 441.3 KiB(characters + lifespans)。

相比 V11 / V10 的入口收益

  • 事件索引约 394 KiB → 221.9 KiB,减少约 43.7%;
  • 时间轴 / 帝王 788.7 KiB → 394.4 KiB,约减半;
  • 郑和航线由旧组合约 574.6 KiB → 352.7 KiB,减少约 38.6%;
  • 单事件详情只增加一个约 27 KiB 的详情 shard,不再要求全部完整事件常驻。

风险控制

  • standalone / 最终 DATA 结构保持完整;
  • 事件物理拆分可逐值重建原始 events,且后处理幂等;
  • V11 时间门禁已改为只约束其稳定不变量,避免后续版本被历史实现细节锁死;
  • sync_event_cards_v12.py 已纳入 CI 与 refresh,保证事件列表的 sourceCount 兼容逻辑会真正进入生产 app.js;
  • Chrome 明确证明:事件索引只取 event core;事件 deep link 只取 event-detail-05 一个详情 shard;timeline / dynasty / person / voyage 均不偷取 events。

CI #80 全绿后可 squash merge;合并后继续核对 refresh 生成提交、正式 event shards、main CI 与 Pages。

@CochraneK
CochraneK merged commit 87aea55 into main Sep 14, 2026
1 check passed
@CochraneK
CochraneK deleted the feat/v12-event-layers branch September 14, 2026 03:59
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.

1 participant