Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apps/desk/test/production-config.node.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ describe('production Wrangler configuration', () => {
expect(configured.r2_buckets[0]).toMatchObject({ bucket_name: variables.ABLE_R2_BUCKET_NAME })
expect(configured.queues.producers[0].queue).toBe(variables.ABLE_MEDIA_QUEUE_NAME)
expect(configured.queues.consumers[0].queue).toBe(variables.ABLE_MEDIA_QUEUE_NAME)
expect(configured.compatibility_flags).toContain('no_websocket_standard_binary_type')
})

it('rejects source text that is not valid JSONC', () => {
Expand Down
10 changes: 9 additions & 1 deletion apps/desk/wrangler.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,15 @@
"workers_dev": false,
"preview_urls": false,
"compatibility_date": "2026-08-13",
"compatibility_flags": ["nodejs_compat"],
"compatibility_flags": [
"nodejs_compat",
// @cloudflare/voice 0.3.5 only forwards inbound microphone frames when
// Agents SDK delivers them as ArrayBuffer. Compatibility dates on or after
// 2026-03-17 otherwise deliver binary WebSocket messages as Blob, which
// makes the voice mixin silently discard every audio frame. Remove this
// bridge once the published voice package handles Blob input.
"no_websocket_standard_binary_type"
],
"assets": {
"binding": "ASSETS",
"directory": "./public",
Expand Down
9 changes: 8 additions & 1 deletion docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,15 @@ The command intentionally uses a hybrid Cloudflare development topology:
account's inference quota. Wrangler's local remote-binding proxy does not
preserve the raw response and WebSocket shapes required by Cloudflare Voice,
so `dev:parity` deliberately disables the microphone instead of presenting a
silent call. Test Nova-3 STT and Aura-2 TTS on a deployed staging or production
silent call. Test Flux STT and Aura-2 TTS on a deployed staging or production
Worker, where the code and AI binding both execute on Cloudflare.
- Cloudflare Voice 0.3.5 still expects inbound microphone frames as
`ArrayBuffer`, while current Worker compatibility dates otherwise deliver
binary WebSocket messages as `Blob`. The committed Wrangler configuration
therefore carries Cloudflare's `no_websocket_standard_binary_type`
compatibility bridge. Keep it in every generated deployment configuration
until the published voice package accepts `Blob`; removing it silently drops
microphone audio before transcription.
- D1, R2, queues, Durable Objects, Email Service, rate limits, and fixtures are
local simulations. Email acceptance and edge security controls therefore
need separate staging smoke tests.
Expand Down
Loading