startCommand overrides Dockerfile CMD causing build failure. Removed
restartPolicyMaxRetries=-1 which is not a valid Railway value.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sync system was timing out because discovery endpoints (keyword, changes)
also ran schema extraction (~10-15s per tool). Now discovery is fast
(npm metadata + DB writes only) and a new /api/sync/enrich endpoint
handles schema extraction in time-budgeted chunks.
Railway executor was crashing without restarting due to unhandled promise
rejections, no restart policy, and no health checks. Added crash
protection, graceful shutdown, cache size limits, railway.toml with
ALWAYS restart policy, and upgraded Deno from 1.39 to 2.1.9.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Set DENO_DIR=/app/.deno_cache to persist module cache
- Pre-cache common dependencies (zod-to-json-schema, ai, zod) during build
- Add Railway volume configuration for /app/.deno_cache
- Improve logging to show cache hits vs network downloads
- Add --allow-read and --allow-write permissions for cache access
This dramatically reduces tool loading time after the first import.
Dependencies are downloaded once and reused across all subsequent requests.
Example: ctx-zip with 200+ dependencies will only download once instead
of on every chat request.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>