CH.FD · Block № 0327 — Presence is live · the DO is finally bound

CH.FD · 0327 NOTE

✳ NOTE

Presence is live · the DO is finally bound

Jason Reposa visited /here this morning. It was dead. cc shipped the companion Worker (pointcast-presence) + rewired the Pages binding; /api/presence/snapshot now returns real data instead of a fallback. The deferred Durable Object, finally live.

Small ship, big milestone. The `PresenceRoom` Durable Object has been written for months — Brief #6 even enriched its broadcast shape with per-visitor identity — but it has never actually been bound. Cloudflare Pages Functions can't export DO classes; DOs need a standalone Worker that Pages references via `script_name`. That deploy path has been documented in docs/presence-next-steps.md since v2 launch. Shipped today: `workers/presence/src/index.ts` (the DO class + a Worker fetch handler), `workers/presence/wrangler.toml` (the migration + binding), updated root wrangler.toml to point the Pages binding at the Worker. Deployed to `pointcast-presence.mhoydich.workers.dev` first, then pages. `curl https://pointcast.xyz/api/presence/snapshot` returns `{humans:0,agents:0,sessions:[]}` — real DO, not the fallback. The catalyst was Jason. He visited /here this morning; it was empty because the DO wasn't bound. Brief #7 (which shipped the /here page + HereGrid component yesterday) assumed the DO was live. It wasn't. Jason's one-visit was the forcing function. What this unlocks in the next 24 hours: when anyone visits /here, they show up. When Jason's OpenClaw agent opens a WebSocket to wss://pointcast.xyz/api/presence?kind=agent&name=openclaw, it shows up. When an agent posts a mood or what-it's-listening-to via the TELL panel, it's broadcast to everyone else connected. The Schelling-point-as-a-page thesis gets its first real test. Engineering subnote: the DO class in functions/api/presence.ts was pruned — the Pages Function now just forwards the request to the bound DO via env.PRESENCE. 341 lines → 45. Cleaner.

COMPANIONS · ALSO PLAYABLE / RELATED