diff --git a/opencode-sms-bridge/Chart.yaml b/opencode-sms-bridge/Chart.yaml index d984034..38bf048 100644 --- a/opencode-sms-bridge/Chart.yaml +++ b/opencode-sms-bridge/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: opencode-sms-bridge -description: Signed Twilio SMS and MMS bridge for fixed OpenCode agents +description: Signed Twilio SMS and MMS bridge for fixed primary OpenCode agents type: application -version: 0.1.0 +version: 0.1.1 appVersion: "1" diff --git a/opencode-sms-bridge/README.md b/opencode-sms-bridge/README.md index c2a4d03..3efe98b 100644 --- a/opencode-sms-bridge/README.md +++ b/opencode-sms-bridge/README.md @@ -1,6 +1,6 @@ # OpenCode SMS bridge chart -This chart deploys the portable, single-replica `opencode-sms-bridge` Pod: a public signed-webhook ingress container and a private queue worker container. It is not a Twilio-account or cluster-integration chart. +This chart deploys the portable, single-replica `opencode-sms-bridge` Pod: a public signed-webhook ingress container and a private queue worker container. It routes each destination number to one of four existing primary OpenCode agents: `lawnmowerman`, `grillmaster`, `homesteader`, or `homerepair`. It is not a Twilio-account or cluster-integration chart. ## Ownership @@ -12,11 +12,13 @@ The Pod uses `Recreate` because the SQLite queue/session store is intentionally The GitOps consumer must provide these Secrets in the `opencode` namespace: -- `opencode-sms-bridge-routing` with `routing.json`, containing the Twilio account identifier, initial approved sender set, and exactly four fixed destination-to-`*-sms` agent mappings; +- `opencode-sms-bridge-routing` with `routing.json`, containing the Twilio account identifier, initial approved sender set, and exactly four fixed destination-to-primary-agent mappings: one each for `lawnmowerman`, `grillmaster`, `homesteader`, and `homerepair`; - `opencode-sms-bridge-shared` with the webhook-validation token, Fernet state-encryption key, and independent sender-HMAC key; - `opencode-sms-bridge-worker` with a least-privilege Twilio API Key SID/secret for outbound replies; and - the existing `opencode-server-auth` Secret for the worker's private OpenCode HTTP request. +Only a signed request from an approved source number is queued or answered. The bridge invokes the existing primary agent IDs, so they retain their normal OpenCode permissions, MCPs, skills, and shared instructions. The source allowlist is an ingress identity gate, not standing authorization; the existing explicit-confirmation requirements govern individual mutations. + Use an immutable published image SHA in `image.tag`; `latest` is only the source-chart default and must never be selected by the GitOps consumer. ## Image and audio gates