AgentsKit Chat Alpha
Dogfood

Registry and Playbook dogfood migration

View canonical Markdown

Registry and Playbook dogfood migration

Issue #27 moves the existing Playbook Ask surface to AgentsKit Chat and adds the same shared surface to the production Registry host. The Docs host was migrated in the same round because it used another copy of the Ask protocol, transport, and memory logic.

Ownership correction

The issue originally named an Astro Registry host. Registry RFC 0002 and AgentsKit-io/agentskit-registry@5d4fc56 superseded that premise: the Registry repository is a data-only corpus and registry.agentskit.io is the Next app at AgentsKit-io/agentskit/apps/registry. The migration therefore targets that live app and deletes the unbuilt src/components/AskWidget.astro orphan from the data repository. Astro is not reintroduced, so the Registry change is a new surface in the live host rather than a migration of a live Astro application.

Shared boundary

The live hosts first moved from immutable v0.1.0-alpha.2 tarballs to the exact stable npm 0.1.0 graph for @agentskit/chat, @agentskit/chat-protocol, and @agentskit/chat-react. They pin one fixed stable graph per adoption round and compose supported @agentskit/core and @agentskit/react releases. Stable release assets include SHA-256 checksums and pass clean-room ESM, CJS, Vite, tarball, provenance, and renderer verification in the release workflow.

AgentsKit owns controller lifecycle, messages, cancellation, retry, edit, regenerate, and the web-storage memory primitive. AgentsKit Chat Protocol owns the bounded Ask v1 event schemas and decoder. AgentsKit Chat owns defineChat, the Ask streaming adapter, safe citation projection, session-memory migration, ordered assistant content, the standard component manifest, source-list, and AgentChat. Each host owns only:

  • endpoint and registry or playbook corpus configuration;
  • an optional presentation projector for host-specific tools (Docs only);
  • canonical and legacy storage-key identities;
  • native brand shell, linked prose, composer, loading copy, citations, and CTA.

Unknown events and tools are inert. Unsafe citation schemes are rejected, source counts/titles/fallbacks are bounded, malformed or oversized records are discarded safely, ordered content has cumulative limits, and connection setup has a deadline composed with AgentsKit cancellation without timing out a valid long-running response stream.

The reusable storage seam was fixed first in AgentsKit #1191 and PR #1192, then released through PR #1194 as @agentskit/memory@0.11.0. The shared Ask integration was tracked in AgentsKit Chat #66, delivered by PR #67, and released as v0.1.0-alpha.2.

Removed duplication

The former Registry Astro widget and Playbook React widget independently owned message arrays, streaming flags, abort controllers, NDJSON loops, sessionStorage, rendering, scrolling, errors, and stop behavior. After parity, the orphan Astro file and the Playbook reducer/loop were removed. The live Registry, Docs, and Playbook shells now delegate those responsibilities to the framework/runtime. The data-only Registry repository also removed its orphan Astro widget.

Parity evidence

Protocol and integration conformance now live once in the shared packages: the release ran 92 protocol tests and 108 chat tests, plus all seven renderer builds. The consumer hosts retain strict typecheck and production-build evidence: Playbook generated 266 pages, Registry generated 389 routes, and Docs generated 1,179 routes. Frozen lockfile installs prove that the hosts consume the published npm graph rather than workspace substitutions.

Browser evidence covers 375, 768, 1280, and 1440 px. Panels remain inside the layout viewport, all measured panel controls are at least 44 by 44 px, the composer is labelled, send enables from keyboard input, and open/close/clear semantics remain available. Opening focuses the composer, Escape closes the dialog, and closing restores focus to the launcher. Mobile uses physical inset edges instead of 100vw/100dvh, avoiding scrollbar-dependent fixed-panel overflow.

Host records:

Private-consumer validation remains confidential. Its public release evidence is limited to synthetic framework contracts, the seven-renderer conformance matrix, reference applications, and privacy review; no private behavior or business rule is part of this record.

No-reimplementation check

Inspected AgentsKit @agentskit/core@1.12.3, @agentskit/react@0.7.4, and the memory package before editing the hosts. The missing reusable web-storage seam was implemented and released in AgentsKit itself. The duplicated Ask schemas, decoder, transport, citation policy, and migration logic were moved to AgentsKit Chat Protocol and AgentsKit Chat before host adoption. No controller, reducer, memory engine, lifecycle, renderer, stream decoder, or component protocol remains copied in a host. A host projector is presentation-only and must consume the shared validated event type.