App content was visible to humans, invisible to crawlers — SPA shells with no title, body, or structured data. This entry records the new public content surface: an app declares an alias and publishes items into a registry; the platform serves crawlable pages, JSON-LD, canonical/OG metadata, and a per-alias sitemap.xml — runtime-updated, no rebuilds — and...
Field notes from making a KDCube named service — conversations ( conv ) — usable by Claude Code as an external agent over the managed named_services MCP surface. What bit us once a real agent started calling it: binary files returned as base64 blew the model's context, so they now come back as a short-lived download link ; and refs had to be made self-con...
The same named-service realm an in-platform agent reads internally, a user's own external agent can now read too — through one guarded MCP door , scoped to exactly what the user consented to. The durable memory realm ( mem ) is live today; task and cnv are the same pattern, not yet on MCP. This is the payoff of "portable memory": build the realm once, and...
Field notes on the Telegram channel integration for KDCube Companion: a Telegram webhook for messages, a Telegram Mini App for UI, and Connection Hub linking the Telegram actor to a KDCube platform identity through an explicit edge . The Telegram actor stays telegram_<id> ; platform authority, economics, and identity-family are projected only through sele...
A named service presents itself to a connecting agent at three levels, not one: the always-on catalog intro , the on-demand provider.about , and the just-in-time object_schema . The difference between them — cheap-and-always, deep-on-demand, precise-just-in-time — is the whole point.
The named-services discovery service is the registry that lets a consumer find and reach a namespace published by another app — by namespace, not by hardcoded address . A provider publishes once on load; any consumer that declares the same namespace resolves to it, across app packages.
ReAct — KDCube's resident agent — gets a sharper picture of its own disposable, distributed workspace: a live view that shows what is local right now versus what it must pull first, so it stops tripping over objects it should have fetched.