[Regression] post-attach.update-sentinel ~9s Sync Block Per model_call in v2026.5.7
The update-sentinel check now executes on every post-attach phase instead of only at startup, causing ~9 second event loop blocks in regions with poor npm/GitHub connectivity.
🔍 Symptoms
Primary Manifestations
The regression introduces synchronous blocking during the post-attach lifecycle phase, which was previously instantaneous:
[diagnostic] liveness warning: reasons=event_loop_delay,event_loop_utilization,cpu
interval=30s
eventLoopDelayP99Ms=15854.5
eventLoopDelayMaxMs=15854.5
eventLoopUtilization=0.997
cpuCoreRatio=1.004
active=0
waiting=0
queued=1
phase=channels.feishu.start-account
recentPhases=sidecars.model-prewarm:13047ms,post-attach.update-sentinel:9336ms
work=[queued=agent:main:main(idle/model_call,q=1,age=0s last=model_call:started)]Before vs After Comparison
| Phase | Before (v2026.5.6) | After (v2026.5.7) |
|---|---|---|
post-attach.update-sentinel | 0ms | 9336ms |
sidecars.model-prewarm | 10212ms | 13047ms |
| Total blocking before AI call | ~10s | ~22s |
eventLoopUtilization | Normal | 0.997 (saturated) |
Observable Symptoms
- Repeated liveness warnings every 30 seconds containing
event_loop_delayandevent_loop_utilizationreasons - CPU saturation at 100% (
cpuCoreRatio=1.004) despite idle async work - Phase jamming:
channels.feishu.start-accountphase blocks indefinitely - Feishu websocket healthy:
bot open_idresolves correctly, but sentinel check blocks alongside it - Model responses delayed by 20+ seconds per invocation
Reproduction Trigger
Every model_call now triggers the post-attach.update-sentinel phase. The blocking duration scales with network latency to npm registry or GitHub endpoints.
🧠 Root Cause
Architectural Shift in v2026.5.7
The regression stems from a lifecycle placement change for the update sentinel check: