summaryrefslogtreecommitdiffhomepage
path: root/packages/core
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-29 23:14:55 +0900
committerAdam Malczewski <[email protected]>2026-05-29 23:14:55 +0900
commit497b397e873f96d6fde3d8a44b3318e1ee1cbef4 (patch)
tree3ae632fbe445f881e49fbfd6f490394fc8ed7e9e /packages/core
parentc8e76ef506da32884ccf9ea2ac83a4d344c62943 (diff)
downloaddispatch-497b397e873f96d6fde3d8a44b3318e1ee1cbef4.tar.gz
dispatch-497b397e873f96d6fde3d8a44b3318e1ee1cbef4.zip
fix(claude): eliminate /home mount race that blanks Claude credentials at boot
On hosts where /home is a separate filesystem, the dispatch-api service could start before /home was mounted. The API's first DB access then failed (EACCES: mkdir '/home/tradam'), Claude account discovery silently caught the error and left claudeAccounts empty, and -- because discovery only ran in the constructor -- it stayed empty for the whole process lifetime. Every Claude message then fell back to the deepseek-v4-flash / empty-key defaults, producing a 401 'Missing API key' from OpenCode Zen. Fixes: - s6 run script waits (capped ~30s) for /home/tradam before exec'ing bun; passes instantly where /home is on the root filesystem. - systemd unit gains RequiresMountsFor=/home and After=...home.mount. - agent-manager re-runs _refreshClaudeAccounts() on config hot-reload and lazily on an empty cache in the Anthropic path, so a process that lost the boot race self-heals on the next request instead of staying broken.
Diffstat (limited to 'packages/core')
0 files changed, 0 insertions, 0 deletions