Mount every external bundle layer as a cordis:contained-group entry `bundle/<package>` whose rows carry a `<package>/<id>` prefix, so one community bundle that no longer loads records a failure in the root `pluginFailures` registry instead of rejecting the whole Loader transaction, and two bundles may declare the same row id. Classify layers by origin (`builtin` for the template bundle and `dsh.profile.firstParty`, `external` for profile dependencies) and let `dsh.bundle.stage: boot` or `dsh.profile.stages` opt a bundle out of isolation when it provides a service built-in rows inject; a built-in row left pending beside an isolated bundle still fails boot and names the bundle. Keep `installFailLoud` for the boot transaction only and install runtime guards afterwards: an unhandled rejection is reported and contained, an uncaught exception is reported and exits. Report nested fiber failures under built-in entries as advisory lines. Provide `ctx.profileRuntime` from the launcher (layers with trust and stage, row origin, user-disabled rows, recomposition through the root include) and probe installed packages in a child process (`probePackage`, cached under `profiles/<name>/.dsh-plugins/`). Split installation from enablement in `reconcileInstalledBundles`; the CLI keeps install-means-enable. The plugin inventory now reports `trust`, `package`, `disabledBy`, and `failure` per row and lists rows only the failure registry knows.
description, kind
| description | kind |
|---|---|
| The test-support group map: keyless test harnesses, LLM mock and replay servers, and Loader smoke helpers for developers writing repository tests. | package-group |
packages/test-support
English | 中文
Summary
The test-support group gives repository tests deterministic, keyless ways to exercise the real product. It includes Loader application harnesses, session-log snapshot adapters, a replay LLM plugin, and a scriptable OpenAI-compatible fault server. Each package is support-tier infrastructure; a package moves out of this group when it gains a product contract and product consumers.
Table of Contents
Packages
| Package | Role |
|---|---|
session-snapshot |
Provides session-log snapshot support and protocol adapters for profile-driven tests |
agent-loop-testkit |
Provides the shared prerequisite services for tests that exercise the concrete AgentLoop |
client-runtime |
Provides the jsdom slot test bench for browser feature specs |
loader-smoke |
Boots Loader-composed applications and drives fixture turns for smoke tests |
llm-mock-server |
Provides a scriptable OpenAI-compatible fault server for recovery tests |
llm-replay |
Replays recorded model streams for keyless tests and demos |
Related documentation
- Testing policy — the keyless snapshot tier these harnesses serve and when it is required.
- Runtime invariants subsystem — the package-owned runtime checks each test-support package ships as
./invariant. - Package groups — how support groups relate to the product groups.
Dev Note
Working context for maintainers — click to expand
None.