You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Track and deliver bounded resource usage for the production qwen serve multi-workspace daemon.
The daemon currently limits registered workspaces and per-workspace sessions, but count-only limits do not bound bytes held by request bodies, WebSocket assembly, outbound delivery, replay buffers, session restore, background work, child-process output, or generation-scoped caches.
Phase 2 may add explicitly enabled aggregate RSS/cgroup admission and enforcement.
Phase 3 may add opt-in idle session or runtime reclamation.
Phase 1 acceptance criteria:
Every production qwen serve root and managed restore path has an explicit resource owner, admission point, and release point.
Daemon-owned variable buffers, queues, caches, readers, and buffered child-process output have both count and byte limits.
Dynamic workspace removal and failed initialization release generation-scoped resources without allowing late asynchronous work to recreate them.
Oversized work fails with stable REST and ACP errors while the daemon remains responsive and other workspace generations remain isolated.
Memory observation reports process-tree and cgroup signals without triggering GC, LRU, session close, channel reclamation, or process termination.
Shutdown drains or aborts writers before terminating root-owned process groups and reports an unclean non-zero exit when resources cannot be verified as released.
Explicit non-goals for Phase 1 are workspace/session capacity LRU, active-session eviction, RSS-triggered destructive remediation, and a generic exactly-once operation receipt service.
Why is this needed?
A maximum workspace or session count is not a memory-safety boundary. One abnormal transcript, slow client, oversized response, unbounded child-process output, or repeated workspace register/remove churn can still exhaust the daemon and affect unrelated workspaces. Phase 1 establishes deterministic admission and failure semantics before any destructive pressure policy is considered.
Delivery tracker: #8091. Phase 1 is not complete. #8091 is the authoritative workstream checklist; this section is a concise snapshot as of 2026-08-19.
feat(serve): measure ACP child peak old-generation heap #9380 — measures lifetime whole-old-generation committed and post-major-GC live-set peaks inside each daemon ACP child, together with peak total heap, major-GC count/pause time, and unclassified-space reporting. It remains observation-only and does not change child spawn arguments or admission.
fix(serve): Bound ACP HTTP pre-attach buffers by bytes #9007 — bounds ACP HTTP pre-attach operations by count and retained bytes, owns accounting through delivery settlement, and rolls back provisional session ownership when delivery fails.
What would you like to be added?
Track and deliver bounded resource usage for the production
qwen servemulti-workspace daemon.The daemon currently limits registered workspaces and per-workspace sessions, but count-only limits do not bound bytes held by request bodies, WebSocket assembly, outbound delivery, replay buffers, session restore, background work, child-process output, or generation-scoped caches.
The work is split into three phases:
Phase 1 acceptance criteria:
qwen serveroot and managed restore path has an explicit resource owner, admission point, and release point.Explicit non-goals for Phase 1 are workspace/session capacity LRU, active-session eviction, RSS-triggered destructive remediation, and a generic exactly-once operation receipt service.
Why is this needed?
A maximum workspace or session count is not a memory-safety boundary. One abnormal transcript, slow client, oversized response, unbounded child-process output, or repeated workspace register/remove churn can still exhaust the daemon and affect unrelated workspaces. Phase 1 establishes deterministic admission and failure semantics before any destructive pressure policy is considered.
Additional context
Status
Delivery tracker: #8091. Phase 1 is not complete. #8091 is the authoritative workstream checklist; this section is a concise snapshot as of 2026-08-19.
Landed
enforced: false.off | observe; no child heap argument or admission policy is applied.In flight
Remaining Phase 1 work
Phase 2 aggregate RSS/cgroup enforcement and Phase 3 opt-in idle session/runtime reclamation remain future optional work and have not started.