vLLM runs with --max-num-seqs=4. Warmup requests (max_tokens=1) from poimen-memory must not starve real agent inference slots.
--max-num-seqs=4
max_tokens=1
Add in-memory bounded queue + per-backend semaphore for continuous batching support. Deprioritise warmup requests with artificial delay.
X-Poimen-Warmup: true
/v1/chat/completions
WARMUP_DELAY_MS
X-Priority: low
VLLM_MAX_QUEUE_DEPTH
VLLM_MAX_NUM_SEQS
warmup_requests_delayed_total
/metrics
internal/proxy/scheduler.go
internal/proxy/proxy.go
internal/observability/metrics.go
internal/observability/prometheus.go
internal/server/router.go
cmd/gateway/main.go
RUN_ID: riotpiao-poimen/homelab-frontend#44-45-46-2026-09-27T09:35Z PR: #47 (merged) Diff: 16 files +1603 / -168
riotpiao-poimen/homelab-frontend#44-45-46-2026-09-27T09:35Z
go build ./... && go vet ./... && go test -race ./... → all pass, 0 races
go build ./... && go vet ./... && go test -race ./...
0🔴 3🟡 2🔵 — queue-full logged + counted, auth-bypass warned, all 3 CAG counters at /metrics
CRAP: ServeHTTP 9.0 ✅ authenticateV1 8.5 ✅ — all 7 ACs covered by tests
No dependencies set.
The note is not visible to the blocked user.
Context
vLLM runs with
--max-num-seqs=4. Warmup requests (max_tokens=1) from poimen-memory must not starve real agent inference slots.Requirement
Add in-memory bounded queue + per-backend semaphore for continuous batching support. Deprioritise warmup requests with artificial delay.
Acceptance Criteria
X-Poimen-Warmup: trueon/v1/chat/completions→ 500ms delay (configurable viaWARMUP_DELAY_MS) before forwardingX-Priority: lowaddedVLLM_MAX_QUEUE_DEPTHslots (default 20),VLLM_MAX_NUM_SEQSconcurrent slots (default 4)warmup_requests_delayed_totalcounter exported at/metricsFiles
internal/proxy/scheduler.go(new)internal/proxy/proxy.gointernal/observability/metrics.gointernal/observability/prometheus.gointernal/server/router.gocmd/gateway/main.goHarness review — merged
RUN_ID:
riotpiao-poimen/homelab-frontend#44-45-46-2026-09-27T09:35ZPR: #47 (merged) Diff: 16 files +1603 / -168
Coders
Verification
go build ./... && go vet ./... && go test -race ./...→ all pass, 0 racesreviewer-sre — SIGN-OFF
0🔴 3🟡 2🔵 — queue-full logged + counted, auth-bypass warned, all 3 CAG counters at /metrics
reviewer-quality — SIGN-OFF
CRAP: ServeHTTP 9.0 ✅ authenticateV1 8.5 ✅ — all 7 ACs covered by tests
Verdict: Merged ✅