AltimateAI / AltimateAI/altimate-code
refactor: move the in-process arborist reify off the event loop (durable fix for the first-run freeze)
- Lingua principale
- TypeScript
- Stelle
- 811
- Fork
- 134
- Merge medio
- 3g 2h
- PR unite (30g)
- 50
Descrizione
Found during the v0.11.1 release review (CTO persona). Deferred because: the durable fix is an architectural change to how `Npm.Service.install` runs.
v0.11.1 (#1292) fixes the fresh-install freeze for the common case by only installing `@opencode-ai/plugin` into config dirs that can import it. But the underlying mechanism, an in-process `@npmcli/arborist` `reify()` on Bun's event loop inside the config layer (`packages/core/src/npm.ts`), is mitigated, not removed. A user whose config dir has a local `tool/` or `plugin/` source and no `node_modules` yet still hits the same class of multi-minute stall on first run, and the starved EffectFlock heartbeat / stolen `npm-install:` lock failure mode is still reachable.
**Suggested fix.** Run the reify in a worker thread or child process (or shell out to `bun install`), and keep `Config.waitForDependencies()` as the only synchronization point. The new `event_loop_stall` telemetry (#1294) and the `cold-start-regression` CI job give a way to verify the improvement.
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.