|
18 | 18 | - From `ai/coding/window-warmer`: `uv run python window_warmer.py --config window-warmer.toml` |
19 | 19 | - From `ai/coding/window-warmer`: `uv run python window_warmer.py --config window-warmer.toml --print-next` |
20 | 20 | - From `ai/coding/window-warmer`: `uv run python window_warmer.py --config window-warmer.toml --once --dry-run` |
| 21 | + - From `ai/coding/window-warmer`: `uv run python window_warmer.py --config window-warmer.toml --debug-request --plan glm-coding-plan` |
21 | 22 | - PM2: |
22 | 23 | - `pm2 start ai/coding/window-warmer/window-warmer.pm2.config.cjs` |
23 | 24 | - PM2 app name: `coding-window-warmer` |
24 | 25 | - Python script: |
25 | 26 | - Entry file: `ai/coding/window-warmer/window_warmer.py` |
26 | 27 | - Dependency declaration: `ai/coding/window-warmer/pyproject.toml` |
27 | 28 | - Locked dependencies: `ai/coding/window-warmer/uv.lock` |
| 29 | + - SOCKS proxy support: `httpx[socks]` must remain in project dependencies because LiteLLM/OpenAI may route through host proxy environment variables. |
28 | 30 | - Helper package: `ai/coding/window-warmer/window_warmer_lib/` |
29 | 31 |
|
30 | 32 | ### 3. Contracts |
|
65 | 67 | | `api_key_env` configured but missing from env and `env_file` | Warmup is skipped with missing key diagnostic | |
66 | 68 | | `health_path` configured but direct target health check fails | Warmup is skipped before completion request | |
67 | 69 | | `--dry-run` or `scheduler.dry_run=true` | Docker/API readiness checks and completion request are skipped | |
| 70 | +| `--debug-request --plan <name>` | Sends one real completion request for the named enabled plan and exits | |
68 | 71 | | LiteLLM SDK completion fails | Failure is logged without prompt/key/body; retry up to `retry_count` | |
69 | 72 | | Multiple plans share the same base time | Each plan remains in the event queue and is executed independently | |
70 | 73 |
|
|
87 | 90 | - Unit tests for multiple plans with simultaneous base time remaining independently executable. |
88 | 91 | - Config parse tests for multiple `[[plans]]`. |
89 | 92 | - Logging regression test asserting real warmups log lifecycle checkpoints without exposing prompt text or API key values. |
| 93 | +- Debug request test asserting `--debug-request` can target one enabled plan without running all plans. |
90 | 94 | - SDK call test mocking the local wrapper around `litellm.completion`, asserting: |
91 | 95 | - `model` keeps the configured provider-prefixed model. |
92 | 96 | - `api_base` is the direct target URL. |
|
0 commit comments