refactor(daemon): split kernel.ts into focused modules #89

Merged
xiaomo merged 1 commits from refactor/split-kernel into main 2026-04-24 11:41:44 +00:00
Owner

What

拆分 kernel.ts God Object 为多个职责清晰的模块。

Why

kernel.ts 617 LOC 同时负责 worker 进程管理、配置热重载、signal 路由、IPC 启停、文件监听,职责过重。详见 #82。

Changes

文件 LOC 说明
worker-pool.ts 211 新建。sense worker 的 fork/shutdown/restart/崩溃重拉/全量关闭
kernel-file-watch.ts 92 新建。sense/workflow/nerve.yaml 文件变更处理(热重载)
kernel-sense-groups.ts 29 新建。group 查找工具函数
kernel.ts 380 从 617 → 380 LOC,只保留编排逻辑:组装模块、消息路由、scheduler、IPC
worker-pool.test.ts - 新建。8 个测试用例全部通过

Ref

Closes #86 | Parent: #82

## What 拆分 kernel.ts God Object 为多个职责清晰的模块。 ## Why kernel.ts 617 LOC 同时负责 worker 进程管理、配置热重载、signal 路由、IPC 启停、文件监听,职责过重。详见 #82。 ## Changes | 文件 | LOC | 说明 | |------|-----|------| | `worker-pool.ts` | 211 | **新建**。sense worker 的 fork/shutdown/restart/崩溃重拉/全量关闭 | | `kernel-file-watch.ts` | 92 | **新建**。sense/workflow/nerve.yaml 文件变更处理(热重载) | | `kernel-sense-groups.ts` | 29 | **新建**。group 查找工具函数 | | `kernel.ts` | 380 | 从 617 → 380 LOC,只保留编排逻辑:组装模块、消息路由、scheduler、IPC | | `worker-pool.test.ts` | - | **新建**。8 个测试用例全部通过 | ## Ref Closes #86 | Parent: #82
xingyue added 1 commit 2026-04-24 11:39:29 +00:00
- Extract worker-pool.ts (211 LOC): sense worker fork/shutdown/restart/crash recovery
- Extract kernel-file-watch.ts (92 LOC): file change handlers for hot reload
- Extract kernel-sense-groups.ts (29 LOC): group lookup utilities
- kernel.ts reduced from 617 → 380 LOC (thin orchestrator)
- Add worker-pool.test.ts with 8 test cases
- No behavior changes, all existing tests unchanged
xiaomo approved these changes 2026-04-24 11:41:42 +00:00
xiaomo left a comment
Owner

LGTM 👍 kernel 瘦身做得漂亮。

拆分质量:

  • (211 LOC) — 进程生命周期完整封装:fork/shutdown/restart/crash-respawn/evict,接口清晰
  • (92 LOC) — 热重载逻辑独立,依赖通过 deps 注入,可测试
  • (29 LOC) — 纯函数工具集,零副作用
  • 617→380 LOC,只剩编排逻辑

测试: worker-pool 8 个用例覆盖了核心路径:fork/message routing/crash respawn/shutdown/isStopped guard

接口设计亮点: worker pool 通过 options 回调(onWorkerCrashed, onBeforeGroupRestart, isStopped)与 kernel 解耦,不反向依赖 kernel 类型。

LGTM 👍 kernel 瘦身做得漂亮。 **拆分质量:** - (211 LOC) — 进程生命周期完整封装:fork/shutdown/restart/crash-respawn/evict,接口清晰 - (92 LOC) — 热重载逻辑独立,依赖通过 deps 注入,可测试 - (29 LOC) — 纯函数工具集,零副作用 - 617→380 LOC,只剩编排逻辑 **测试:** worker-pool 8 个用例覆盖了核心路径:fork/message routing/crash respawn/shutdown/isStopped guard **接口设计亮点:** worker pool 通过 options 回调(onWorkerCrashed, onBeforeGroupRestart, isStopped)与 kernel 解耦,不反向依赖 kernel 类型。
xiaomo merged commit e433e7c2a9 into main 2026-04-24 11:41:44 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No Label
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/nerve#89