42 lines
2.8 KiB
Markdown
42 lines
2.8 KiB
Markdown
# worker-runtime
|
|
|
|
Manages Worker creation, stopping, and Restore, execution connections within the Runtime, and Workdir materialization. The Backend owns Workspace records and grants; the Worker controller owns model execution and input acceptance. Optional features provide HTTP/WebSocket and filesystem persistence.
|
|
|
|
## Reference index
|
|
|
|
- [`Runtime`]: lifecycle operation acceptance, Workspace boundaries, and execution connections.
|
|
- [`execution`] — execution backends and operation-specific results.
|
|
- [`working_directory`] — repository materialization, session resources, and safe deletion.
|
|
- [`workspace_issuer`] — Workspace signature verification and replay prevention.
|
|
|
|
## Offline stopped-Worker fixtures
|
|
|
|
The nondefault `test-support` feature exposes `test_support::StoppedWorkerTemplate`.
|
|
It is intentionally limited to current-schema, stopped, attachment-free artificial
|
|
conversations with one Segment, text history, and no pending execution/activation.
|
|
It does not add a product endpoint or change create/restore authorization.
|
|
|
|
1. With the source Runtime offline, call `StoppedWorkerTemplate::extract(worker_dir)`.
|
|
The source must have its existing Runtime owner lock and identity. Extraction is
|
|
read-only; the returned serde template excludes source auth, saved Manifest,
|
|
request/config references, run directories, and Runtime operation history.
|
|
2. Initialize **new** Runtime identity and Workspace trust in a fresh destination
|
|
using normal setup. Preserve the template's Runtime and Workspace IDs.
|
|
3. Call `template.install(&options, request, &resolved_manifest)` before starting
|
|
the Runtime. Supply a fresh typed `CreateWorkerRequest` (including config/profile
|
|
references and trusted memory settings) and `manifest::WorkerManifest` resolved
|
|
for that environment. Its Worker name must equal `template.worker_name()`.
|
|
4. Start normally and use the ordinary explicit restore operation. Installation
|
|
itself creates no execution and leaves the Worker stopped with a fresh guard.
|
|
|
|
The template preserves the original Session manifest/JSONL bytes, including stable
|
|
entry IDs, timestamps, and settled submission receipts. It rejects resumable queues
|
|
and Feature invocation history. A saved system prompt is required for restore;
|
|
checkpoint receipts must match the Worker's typed receipt schema. Preserved records
|
|
must use canonical writer field shapes: unknown/duplicate fields (including nested
|
|
fields), discarded optional fields, and opaque Feature history payloads are rejected,
|
|
not stripped or rewritten. Portability/secret-marker checks do not replace
|
|
review of the supplied artificial conversation or its independently verified hashes.
|
|
The installer refuses any destination content other than initialized `auth.toml`;
|
|
interrupted publication is fail-closed, not an overwrite/recovery facility.
|