Skip to content

Phase 98 — 统一应用运行时系统设计

版本: v5.0.0 创建日期: 2026-03-10 状态: ✅ 已实现


一、模块概述

Phase 98 构建统一应用运行时(Universal Runtime),提供跨平台插件管理、热更新、性能分析(Flame Graph)、CRDT状态同步、平台信息采集和健康检查能力,为上层应用和插件生态提供标准化的运行环境。

1.1 核心目标

  1. 插件管理: 统一的插件加载/卸载/版本管理,支持沙箱隔离运行
  2. 热更新: 运行时模块热替换,无需重启即可升级插件和核心模块
  3. 性能分析: 内置Flame Graph性能剖析器,定位CPU/内存瓶颈
  4. 状态同步: 基于CRDT的分布式状态同步,支持多设备/多实例一致性
  5. 平台信息: 标准化的平台能力探测(OS、硬件、运行时版本、可用资源)
  6. 健康检查: 运行时自检和指标采集,支持异常自愈

1.2 技术架构

┌──────────────────────────────────────────────────────┐
│               Universal Runtime v5.0                  │
│                                                       │
│  ┌─────────────────────┐  ┌────────────────────────┐ │
│  │  PluginManager       │  │  HotUpdateEngine       │ │
│  │  加载/卸载/沙箱隔离  │  │  模块热替换+版本回滚   │ │
│  │  依赖解析+生命周期   │  │  差量更新+完整性校验   │ │
│  └─────────────────────┘  └────────────────────────┘ │
│  ┌─────────────────────┐  ┌────────────────────────┐ │
│  │  FlameGraphProfiler  │  │  CRDTStateSync         │ │
│  │  CPU/内存采样        │  │  Yjs CRDT引擎          │ │
│  │  调用栈聚合+可视化   │  │  多设备状态合并        │ │
│  └─────────────────────┘  └────────────────────────┘ │
│  ┌─────────────────────┐  ┌────────────────────────┐ │
│  │  PlatformDetector    │  │  HealthChecker         │ │
│  │  OS/硬件/资源探测    │  │  自检+指标+自愈        │ │
│  └─────────────────────┘  └────────────────────────┘ │
│  ┌──────────────────────────────────────────────────┐│
│  │            RuntimeIPC (8 handlers)                ││
│  └──────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────┘

二、核心模块设计

2.1 UniversalRuntime (runtime/universal-runtime.js)

统一应用运行时核心模块,整合插件管理、热更新、性能分析和状态同步。

核心方法:

  • initialize(deps) — 初始化运行时,加载已注册插件,启动健康检查定时器
  • loadPlugin({ pluginId, version, config }) — 加载插件(依赖解析、沙箱创建、生命周期启动)
  • unloadPlugin(pluginId) — 安全卸载插件(保存状态、释放资源、清理沙箱)
  • hotUpdate({ moduleId, newVersion, patchData }) — 模块热替换(差量更新、完整性校验、回滚机制)
  • profile({ duration, sampleRate, includeMemory }) — 启动性能剖析(返回Flame Graph数据)
  • syncState({ targetDeviceId, stateKey }) — CRDT状态同步(Yjs文档合并)
  • getPlatformInfo() — 获取平台信息(OS、CPU、内存、GPU、Electron版本、Node版本)
  • configure(options) — 更新运行时配置(插件目录、沙箱策略、采样率等)
  • healthCheck() — 执行全面自检(内存、CPU、插件状态、连接状态)
  • getMetrics() — 获取运行时指标(uptime、插件数、内存使用、请求统计)
  • destroy() — 销毁运行时(卸载所有插件、停止定时器、释放资源)

常量:

  • PLUGIN_STATUS: LOADING, ACTIVE, SUSPENDED, ERROR, UNLOADED
  • UPDATE_TYPE: PATCH, MINOR, MAJOR, ROLLBACK
  • HEALTH_STATUS: HEALTHY, DEGRADED, CRITICAL

2.2 核心文件

文件路径说明
src/main/runtime/universal-runtime.js运行时核心模块
src/main/runtime/runtime-ipc.jsIPC Handler注册

三、IPC接口设计

RuntimeIPC (8 handlers)

通道说明
runtime:load-plugin加载插件(依赖解析+沙箱隔离)
runtime:hot-update模块热替换(差量更新+回滚)
runtime:profile启动性能剖析(Flame Graph)
runtime:sync-stateCRDT状态同步
runtime:get-platform-info获取平台信息
runtime:configure更新运行时配置
runtime:health-check执行运行时自检
runtime:get-metrics获取运行时指标

四、测试覆盖

测试文件测试数量状态
src/main/runtime/__tests__/universal-runtime.test.js22✅ 通过
合计22✅ 全部通过

测试要点

  • 插件加载/卸载生命周期完整性验证
  • 热更新差量应用和完整性校验
  • 热更新失败时的自动回滚机制
  • Flame Graph性能采样数据结构正确性
  • CRDT状态合并冲突解决(多设备并发写入)
  • 平台信息探测在不同OS上的兼容性
  • 健康检查异常阈值触发和自愈逻辑
  • 运行时指标累计统计准确性

五、前端集成

Pinia Store

  • universalRuntime.ts — 插件列表、运行时指标、平台信息、健康状态

Vue Pages

  • RuntimeDashboardPage.vue — 运行时仪表板/插件管理/Flame Graph可视化/状态同步

Routes

  • /runtime — 统一运行时管理

六、配置选项

javascript
universalRuntime: {
  enabled: true,
  pluginDir: 'plugins/',
  sandboxEnabled: true,
  hotUpdateEnabled: true,
  profileSampleRate: 1000,          // 采样率(Hz)
  crdtSyncIntervalMs: 5000,        // CRDT同步间隔(ms)
  healthCheckIntervalMs: 30000,    // 健康检查间隔(ms)
  maxPlugins: 100,                  // 最大插件数
  memoryLimitMb: 512,              // 插件内存限制(MB)
}

七、Context Engineering

  • step 5.1: setUniversalRuntime() — 注入统一运行时上下文(插件列表、平台能力、健康状态)

基于 MIT 许可发布