# Cloudflare OS: what this build has not installed

slug: cloudflare-os-xl · https://miscsubjects.com/a/cloudflare-os-xl · category: systems · tags: cloudflare, infrastructure, inventory, workers, audit · updated 2026-08-06T03:28:31.965Z

This build runs on Cloudflare. Not "hosted on" — runs on. The site is Cloudflare Pages. The content spine is D1. The ledger is D1 and R2. The agent memory is Durable Objects with SQLite. The models are called through Workers AI and the AI Gateway. Long jobs are Workflows. Fan-out is Queues. Page-fetching is Browser Rendering. Outbound mail is a `send_email` binding. Secrets are in Secrets Store.

That is thirteen Cloudflare products, bound and in production, doing real work every hour.

It is also less than a third of what the account can hold.

This series is the inventory of the rest: every Cloudflare product that is not installed here, what it would actually do for this specific build, and — this matters more — an honest verdict on whether it should be installed at all. A list of everything a vendor sells is a brochure. This is not that. Several entries below end in "no", and the reasons are given.

## What is already here

Verified against the account and every `wrangler.toml` in the repo on 6 August 2026, not from memory:

| Product | State in this build |
| --- | --- |
| Workers + Pages | The site, the API, the admin surface |
| D1 | 4 databases: content spine, shared events, storage index, previews |
| KV | 1 namespace: settings, freeze flags, snapshots |
| R2 | 2 buckets: ledger, store |
| Durable Objects (SQLite) | 3 classes: DirectoryDO, ExpertDO, AgentDO |
| Queues | 3: loop-tasks, loop-ingest, loop-ingest-dlq |
| Workflows | 10, across two Workers |
| Workers AI | Bound on Pages and on the sibling Worker |
| AI Gateway | Every model call routes through it |
| Browser Rendering | `MYBROWSER` binding on the sibling Worker |
| Email (outbound) | `send_email` binding |
| Secrets Store | Meta credentials, bound by reference |
| Service bindings | STORE, META_BRIDGE |
| Cron triggers | Every minute, and 04:00 daily |
| Observability | Enabled on every Worker |

## What is empty

Four products were checked directly against the account rather than inferred from config. All four returned nothing:

```
wrangler vectorize list   →  You haven't created any indexes on this account.
wrangler hyperdrive list  →  (empty)
wrangler pipelines list   →  No pipelines found.
wrangler containers list  →  No containers found.
```

Everything else in this series is absent by config scan: no binding, no route, no reference anywhere in the repo that does more than mention the name in a documentation row.

That distinction is worth stating plainly, because this build has a directory of roughly nine hundred callable rows and several of them *describe* products that are not installed. A row that documents Turnstile is not Turnstile. The inventory below counts bindings and provisioned resources, not documentation.

## The ten parts

**[Part 1 — Search and retrieval](/a/cloudflare-os-xl-01-search-and-retrieval)**
Vectorize, AI Search (formerly AutoRAG), and D1 read replication. The corpus is 1,171 articles and is queried with SQL `LIKE`. This is the largest single gap in the build.

**[Part 2 — The ledger as a queryable table](/a/cloudflare-os-xl-02-ledger-as-a-table)**
Pipelines, R2 Data Catalog, R2 SQL, R2 event notifications, Analytics Engine. Audit questions are currently answered by pulling files and counting in a script.

**[Part 3 — Running real code](/a/cloudflare-os-xl-03-running-real-code)**
Containers, the Sandbox SDK, and Code Mode. Every heavy tool in this build shells out to the owner's laptop. That is the single biggest reliability liability in the system.

**[Part 4 — Agents as infrastructure](/a/cloudflare-os-xl-04-agents-as-infrastructure)**
The Agents SDK, remote MCP servers with OAuth, hibernatable WebSockets. Two Durable Object classes already do a hand-rolled version of this.

**[Part 5 — Media](/a/cloudflare-os-xl-05-media)**
Images, Stream, Realtime. Hero images are generated externally and stored as raw R2 objects with no variants.

**[Part 6 — The edge in front of the Worker](/a/cloudflare-os-xl-06-the-edge-in-front)**
Snippets, the rate-limit binding, Turnstile, Cache Reserve. The admin key and the token-mint endpoint are rate-limited by nothing.

**[Part 7 — Seeing what happened](/a/cloudflare-os-xl-07-seeing-what-happened)**
Logpush, Log Explorer, Tail Workers, Workers Builds, gradual deployments. A Tail Worker is the missing mechanical link between "it broke" and "a task row exists".

**[Part 8 — Reaching private things](/a/cloudflare-os-xl-08-reaching-private-things)**
Hyperdrive, Workers VPC, Tunnel, mTLS certificates. The honest fix for the local bridge.

**[Part 9 — The security surface](/a/cloudflare-os-xl-09-the-security-surface)**
Access, WAF custom rules, inbound Email Routing, API Shield. Only half of email is installed.

**[Part 10 — Hosting other builds](/a/cloudflare-os-xl-10-hosting-other-builds)**
Workers for Platforms, Terraform, Radar. The ceiling: the point where this stops being one site.

## The two that fix existing failures

Everything in this series is new capability except two entries, and those two are different in kind because they close failure classes already written into this build's failure vault.

**Tail Workers** (Part 7). When a Worker throws, the trace goes to observability and a human has to go look. A Tail Worker is a Worker that consumes another Worker's invocation logs, so a thrown exception can *append a task row naming the failure class* without anyone reading a dashboard. This build's central rule is that a failure becomes a child task rather than a sentence in a report. Right now that rule depends on an agent noticing. A Tail Worker makes it mechanical.

**Code Mode** (Part 3). A model calling nine hundred single-purpose tools spends most of its calls discovering contracts rather than doing work — measured on the `misc` agent, roughly fourteen of twenty calls. Code Mode inverts it: the model writes TypeScript against a generated API and runs it in a sandbox, so discovery happens once, at codegen time, instead of once per call.

Those two are not enrichment. They are repairs.

## How to read the verdicts

Each part ends with a table of the same three columns: the product, what it would replace here, and a verdict of **install**, **later**, or **no**. "No" is used honestly — Waiting Room, Load Balancing and Spectrum are all real products that this build has no business installing, and saying so is more useful than listing them as opportunities.


## Sources

1. Cloudflare D1 documentation — https://developers.cloudflare.com/d1/
2. Cloudflare Queues documentation — https://developers.cloudflare.com/queues/
3. Workers for Platforms documentation — https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/

