You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/workflows/ci.yml
+2-32Lines changed: 2 additions & 32 deletions
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,8 @@ on:
7
7
branches: [main]
8
8
9
9
jobs:
10
+
# Doc/flag correctness is enforced as a hard gate by cmd/doccontract_test.go,
11
+
# which runs as part of `go test ./...` below.
10
12
test:
11
13
strategy:
12
14
matrix:
@@ -57,35 +59,3 @@ jobs:
57
59
58
60
- name: Run govulncheck
59
61
run: govulncheck ./...
60
-
61
-
docs-check:
62
-
if: github.event_name == 'pull_request'
63
-
runs-on: ubuntu-latest
64
-
steps:
65
-
- name: Checkout
66
-
uses: actions/checkout@v6
67
-
with:
68
-
fetch-depth: 0
69
-
70
-
- name: Check for doc updates
71
-
run: |
72
-
BASE=${{ github.event.pull_request.base.sha }}
73
-
HEAD=${{ github.event.pull_request.head.sha }}
74
-
CHANGED=$(git diff --name-only "$BASE" "$HEAD")
75
-
76
-
CODE_CHANGED=false
77
-
DOCS_CHANGED=false
78
-
79
-
# Check if command surface or flags changed
80
-
if echo "$CHANGED" | grep -qE '^cmd/|^internal/cmdutil/'; then
81
-
CODE_CHANGED=true
82
-
fi
83
-
84
-
# Check if any docs were touched
85
-
if echo "$CHANGED" | grep -qE '^README\.md$|^AGENTS\.md$'; then
86
-
DOCS_CHANGED=true
87
-
fi
88
-
89
-
if [ "$CODE_CHANGED" = true ] && [ "$DOCS_CHANGED" = false ]; then
90
-
echo "::warning::Command code changed without documentation updates. If this PR adds, removes, or changes commands/flags, please update README.md and/or AGENTS.md."
Copy file name to clipboardExpand all lines: AGENTS.md
+11-5Lines changed: 11 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -79,6 +79,7 @@ This is stderr only — it won't break piped output parsing.
79
79
|`BW_ENVIRONMENT`| API environment: `prod` (default), `test`|
80
80
|`BW_API_URL`| Override API base URL (overrides environment-based default) |
81
81
|`BW_VOICE_URL`| Override Voice API base URL (overrides environment-based default) |
82
+
|`BW_MESSAGING_URL`| Override Messaging API base URL. Messaging is production-only — `--environment test` does NOT change the host (no test messaging endpoint exists); only this override does. |
82
83
|`BW_FORMAT`| Output format override |
83
84
84
85
**Config file location:**`~/.config/band/config.json` (XDG). Falls back to `~/.band/config.json` if the XDG path doesn't exist.
@@ -132,7 +133,7 @@ band app create --name "My App" --type voice --callback-url <url> --if-not-exist
132
133
band vcp create --name "My VCP" --if-not-exists
133
134
```
134
135
135
-
For `number order`, there is no `--if-not-exists` — check `band number list --plain` first.
136
+
`number order` requires `--subaccount <id>` (the orders API needs a sub-account to order into; see `band subaccount list`). There is no `--if-not-exists` — check `band number list --plain` first.
136
137
137
138
All read operations (gets, lists, deletes) are safe to retry.
138
139
@@ -141,7 +142,7 @@ All read operations (gets, lists, deletes) are safe to retry.
141
142
Use `--wait` to block until completion:
142
143
143
144
```bash
144
-
band number order +19195551234 --wait # blocks until number is active (30s default)
145
+
band number order +19195551234 --subaccount <subaccount-id> --wait# blocks until number is active (30s default)
145
146
band call create --from ... --to ... --wait --timeout 120 # blocks until call completes
146
147
band transcription create <call-id><rec-id> --wait # blocks until transcription ready (60s default)
147
148
```
@@ -202,7 +203,12 @@ For full flag/argument reference, use `band <command> --help`. This section cove
202
203
203
204
### Quickstart
204
205
205
-
-**Agents should not use `band quickstart`.** It creates real resources that cost money (orders a phone number), doesn't support `--if-not-exists` (running it twice creates duplicate resources and orders a second number), doesn't return structured output for each step, and can't be partially retried if it fails midway. Use the step-by-step provisioning workflows in the [Agent Workflows](#agent-workflows) section instead.
206
+
-**Agents should prefer the step-by-step provisioning workflows over `band quickstart`.** Quickstart creates real resources that cost money (it orders a phone number). The default (VCP) path is idempotent — re-running reuses existing resources via find-or-create and will not order a second number — and on failure it prints the resource IDs created so far (`status: partial`, see below). Re-running reuses the app/VCP/sub-account/location — but a number that was ordered and then failed to assign to the VCP is NOT auto-reassigned; finish it with `band vcp assign <vcp-id> <number>`. The `--legacy` path is NOT idempotent (re-running it may order an additional number). Because quickstart bundles several steps behind one command, prefer the step-by-step provisioning workflows in the [Agent Workflows](#agent-workflows) section when you need per-step structured output or fine-grained control.
207
+
208
+
-**`band quickstart` output `status` values** (VCP path only — `--legacy` is not idempotent):
209
+
-`complete` — all resources created and number assigned; ready to use.
210
+
-`complete_no_number` — resources created but no number was available in the requested area code; re-run with `--area-code` to try a different code.
211
+
-`partial` — quickstart stopped after a failure but printed the resource IDs it created so far (app, VCP, sub-account, location, and possibly an ordered phone number). Re-running reuses the app/VCP/sub-account/location via idempotency checks. **Caveat:** if a number was ordered but its VCP assignment failed, the number is printed under `phoneNumber` but is NOT auto-reassigned on re-run (a re-run would order a *new* number) — finish the existing one with `band vcp assign <vcp-id> <phoneNumber>`.
Copy file name to clipboardExpand all lines: README.md
+6-5Lines changed: 6 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -138,7 +138,7 @@ Search for available numbers, then order one:
138
138
139
139
```sh
140
140
band number search --area-code 919 --quantity 1
141
-
band number order +19195551234 --wait
141
+
band number order +19195551234 --subaccount <subaccount-id> --wait
142
142
```
143
143
144
144
The `--wait` flag blocks until the number is active, so you don't have to poll.
@@ -294,7 +294,7 @@ A fresh UP account typically has one sub-account and one location already create
294
294
```sh
295
295
band number list # list your numbers
296
296
band number search --area-code 919 --quantity 5 # search available numbers
297
-
band number order +19195551234 --wait # order (blocks until active)
297
+
band number order +19195551234 --subaccount <subaccount-id> --wait # order (blocks until active)
298
298
band number activate +19195551234 --voice-inbound --wait # turn on inbound voice
299
299
band number release +19195551234 # release a number
300
300
```
@@ -347,7 +347,7 @@ band subaccount create --name "My Subaccount"
347
347
band location create --subaccount <subaccount-id> --name "My Location"
348
348
band app create --name "My Voice App" --type voice --callback-url https://your-server.example.com/callbacks
349
349
band number search --area-code 919 --quantity 1
350
-
band number order +19195551234 --wait
350
+
band number order +19195551234 --subaccount <subaccount-id> --wait
351
351
```
352
352
353
353
Sub-accounts (formerly known as sites) are the top-level container. Locations (formerly known as SIP peers) sit inside sub-accounts and define where numbers get routed. The flow is: sub-account → location → application → number.
@@ -404,7 +404,7 @@ Sub-accounts (formerly known as sites) are the top-level container. Locations (f
404
404
| Command | What it does |
405
405
|---------|-------------|
406
406
|`band number search`| Search available numbers by area code |
407
-
|`band number order <number...>`| Order numbers |
407
+
|`band number order <number...> --subaccount <id>`| Order numbers into a sub-account (`--subaccount` required)|
408
408
|`band number get <number>`| Get voice config details (including VCP assignment) |
|`band quickstart`| One-command setup: provisions an app + VCP + sub-account/location, orders a number, and assigns it (`--legacy`uses the pre-VCP provisioning path) |
471
471
|`band bxml <verb>`| Generate BXML locally (no auth needed) |
472
472
|`band version`| Print CLI version |
473
473
@@ -498,6 +498,7 @@ Sub-accounts (formerly known as sites) are the top-level container. Locations (f
498
498
|`BW_FORMAT`| Default output format |
499
499
|`BW_API_URL`| Override the API base URL |
500
500
|`BW_VOICE_URL`| Override the Voice API base URL |
501
+
|`BW_MESSAGING_URL`| Override the Messaging API base URL. Messaging is production-only (no test host), so `--environment`/`BW_ENVIRONMENT` does not change it; use this for local proxies or the internal lab. |
0 commit comments