源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# `@openwork/automations`
|
||||
|
||||
Pure, infrastructure-free Automations domain shared by hosted and on-prem Den.
|
||||
|
||||
It owns the contracts, deterministic once/daily/weekly schedule calculation,
|
||||
DST behavior, lifecycle transitions, revision digests, occurrence identity,
|
||||
idempotency, repository and engine-adapter ports, due-work selection, bounded missed
|
||||
recovery, and repository conformance helpers.
|
||||
|
||||
It deliberately has no runtime adapter. Den supplies MySQL persistence, leases,
|
||||
membership and model checks, Connect access, and the model execution adapter.
|
||||
The OpenWork desktop is only a Den client and is never an Automation scheduler
|
||||
or execution host.
|
||||
|
||||
## Hosted engine lifecycle
|
||||
|
||||
`AutomationEngineAdapter` is the provider-neutral boundary for hosted runs.
|
||||
Den creates and persists an admission key before calling `admit`; retrying that
|
||||
key must return the same persistence-safe receipt. The capability access token
|
||||
belongs only to the admission request and must never be copied into the receipt.
|
||||
|
||||
Den persists each observed event by its stable idempotency key before advancing
|
||||
the contiguous sequence cursor. After a process restart, it loads the receipt
|
||||
and cursor, calls `read` for the durable state/result, and resumes `observe`
|
||||
without an in-memory engine handle. Cancellation uses the same receipt, so it
|
||||
also survives scheduler ownership changes and Den restarts.
|
||||
Reference in New Issue
Block a user