Two changes:
1. Add `format: "json"` to Ollama API calls so the model enforces
JSON output mode, reducing malformed responses
2. Strengthen the routing prompt with explicit type constraints
("NEVER null or empty"), rules to copy manifest paths exactly,
and a concrete example response
This fixes the validation error: "repo_relative_path: Expected
string, received null" from qwen3.5:397b-cloud.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The allowedSenders had the Telnyx inbound number (+14157049277)
instead of the sender's phone number (+18322070387). This caused
all inbound SMS to be rejected since the sender wasn't in the allowlist.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Log the message text for regular SMS: "Received text" with text content
- Log "Received image" for MMS messages without the content
- Includes masked phone number and message ID in both cases
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The sms-sites.json file was not in canonical format (sorted keys,
2-space indent, trailing newline), causing `npm run build` to fail
during the `check:content` step in Docker.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
npm doesn't support the `workspace:*` protocol (that's pnpm/Yarn).
This caused `npm install` to fail with EUNSUPPORTEDPROTOCOL during
Docker builds. Replaced both occurrences with `file:` relative paths
that npm workspaces resolves correctly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>