Registry and Playbook dogfood migration
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
registryorplaybookcorpus 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:
- Docs migration: AgentsKit #1184
- Registry and Docs production adoption: AgentsKit #1190
- Playbook adoption: Agents Playbook #12
- Stable Docs and Registry npm adoption: AgentsKit #1222
- Stable Playbook npm adoption: Agents Playbook #15
- Data-only Registry cleanup: AgentsKit Registry #75
- Host documentation:
AgentsKit-io/agentskit/apps/registry/README.mdandAgentsKit-io/agents-playbook/content/docs/agentskit-chat.md
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.