跳转到内容

Effect 架构约定

运行时大量逻辑用 Effect 描述,以便取消、依赖注入与按目录隔离。对外边界通过 makeRuntime 转成 Promise/回调;会话级并发由 Runner 单飞,避免两个外环写乱同一会话。

将服务 Layer 接到普通 TypeScript:runPromise / runFork / runSync。共享 memo 避免重复构建 Layer;可附带实例引用与遥测。出界处把 Effect 失败映射为调用方可处理的错误。

按项目 directory 缓存的作用域状态:多项目同进程不串台;销毁时跑 finalizer。两目录不应共享可变状态时,状态必须放进 InstanceState,而不是模块级全局变量。与实例边界一致。

stateDiagram-v2
[*] --> Idle
Idle --> Running: ensureRunning
Idle --> Shell: startShell
Running --> Idle: 完成/取消
Shell --> Idle: 完成/取消

同会话同时只跑一个主任务;忙时拒绝并发 prompt。取消以可识别的取消错误收尾。内核侧行为见实例边界与并发调度。


相关阅读: