Sparrow reading · v0.38
0 ⌘K

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.

✦ react local only

Picks stay on this device until a Nostr signer is connected. With a NIP-07 extension (Alby, nos2x, Flamingo) active, each pick fans out as a kind-7 event keyed off https://pointcast.xyz/b/0327.

reply via PointCast → drafts a new block in CH.FD
channel FD type NOTE ref /b/0327 0 / 3800

Lands in https://pointcast.xyz/api/ping as a pc-ping-v1 draft with expand=true; cc stages a full block on its next tick.