Commit da1a8bc
fix: gateway silently stuck on built-in defaults with zero API keys
A gateway auto-started by `ccmr claude` before any config existed fell back
to DEFAULT_CONFIG with no keys, and stayed that way permanently: the v1.8.0
watcher only observed files that existed at startup, so a models.yaml/.env
created minutes later was never picked up. Because the process is detached,
it survived the terminal and kept answering /health with 200 while every
request 401'd inside Claude Code, with nothing pointing at the real cause.
Four changes, each closing one link in that chain:
- ConfigWatcher polls candidate config/env paths whether or not they exist,
so files created after startup trigger a reload (replaces watchConfigFiles)
- startup warns loudly when no config file was found or when 0/N models have
an API key, instead of printing nothing
- `ccmr claude` verifies the reachable gateway can actually serve the launch
model before handing off, and reports that gateway's config source
- /health exposes config_file and ccmr_home, so "which config is this
gateway using" is one curl instead of inspecting the process's open files
`ccmr start` is unchanged; auto-start still only fires when the port is free.1 parent 626c980 commit da1a8bc
22 files changed
Lines changed: 737 additions & 49 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
233 | 233 | | |
234 | 234 | | |
235 | 235 | | |
236 | | - | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
237 | 243 | | |
238 | 244 | | |
239 | 245 | | |
| |||
376 | 382 | | |
377 | 383 | | |
378 | 384 | | |
379 | | - | |
| 385 | + | |
380 | 386 | | |
381 | 387 | | |
382 | 388 | | |
| |||
433 | 439 | | |
434 | 440 | | |
435 | 441 | | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
436 | 453 | | |
437 | 454 | | |
438 | 455 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
9 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
10 | 27 | | |
11 | 28 | | |
12 | 29 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments