ForgeTrust.AppSurface.Workers
0.2.0-preview.5
dotnet add package ForgeTrust.AppSurface.Workers --version 0.2.0-preview.5
NuGet\Install-Package ForgeTrust.AppSurface.Workers -Version 0.2.0-preview.5
<PackageReference Include="ForgeTrust.AppSurface.Workers" Version="0.2.0-preview.5" />
<PackageVersion Include="ForgeTrust.AppSurface.Workers" Version="0.2.0-preview.5" />
<PackageReference Include="ForgeTrust.AppSurface.Workers" />
paket add ForgeTrust.AppSurface.Workers --version 0.2.0-preview.5
#r "nuget: ForgeTrust.AppSurface.Workers, 0.2.0-preview.5"
#:package ForgeTrust.AppSurface.Workers@0.2.0-preview.5
#addin nuget:?package=ForgeTrust.AppSurface.Workers&version=0.2.0-preview.5&prerelease
#tool nuget:?package=ForgeTrust.AppSurface.Workers&version=0.2.0-preview.5&prerelease
ForgeTrust.AppSurface.Workers
ForgeTrust.AppSurface.Workers defines host-neutral contracts for durable worker chains and projection repair.
Release Guidance
AppSurface ships as a coordinated package family. Before installing this package from a prerelease feed, check the package chooser and release hub for current release risk, migration guidance, and readiness.
What It Includes
AppSurfaceWorkersModule, a passive module that declares no queue, storage, endpoint, or background worker infrastructure.IDurableWorkerProjectionContract<TWork,TResult,TProjection>for claim, completion, single-projection repair, and bounded pending-projection repair.IDurableWorkerExecutor<TWork,TResult>for the side-effecting executor activity that host runtimes schedule only after a claim succeeds.DurableWorkerEnvelope<TPayload>,DurableWorkerCorrelation, andDurableWorkerDiagnosticfor typed outcomes and privacy-safe repair diagnostics.DurableWorkerExecutionIdentityfor native runtimes that must keep immutable activity/provider identity separate from attempt, lease, scope, and runtime epochs.- Stable outcome and retryability enums for durable adapters and application logs.
DurableWorkerMetadataSafetyfor rejecting unsafe diagnostic metadata before it becomes durable or user-visible.
What It Does Not Include
- Durable Task worker or client hosting.
- EF Core, Postgres, or any queue/scheduler runtime.
- Storage schemas or migrations.
- ASP.NET Core endpoints, authentication handlers, webhooks, UI, or Semantic Kernel.
Contract Shape
Worker chains split durable behavior into three app-owned responsibilities:
TryClaimAsyncdecides whether executor activity may be scheduled.CompleteAsyncrecords the terminal execution fact produced by executor activity.ReconcileProjectionAsyncandReconcilePendingProjectionsAsyncupdate visible projections from durable completion facts without re-running executor activity.
This package does not decide where the facts live. A host can store them in its existing database, emit them from Durable Task activities, or adapt another persistence layer later. The first AppSurface runtime adapter is DurableTask-first; EF/Postgres runtime ownership is intentionally out of scope.
The native AppSurface Durable runtime reuses
IDurableWorkerExecutor<TWork,TResult> and the typed envelope, but it does not call this package's legacy
TryClaimAsync or CompleteAsync projection-authority methods. PostgreSQL remains the sole claim, effect-permit, and
terminal-fact authority.
Native execution identity
DurableWorkerEnvelope<TPayload>.ExecutionIdentity is optional for compatibility with existing adapters. The native
runtime creates envelopes with DurableWorkerEnvelope<TPayload>.CreateNative and always supplies the identity before
provider I/O. Its ActivityId and ProviderKey remain stable across retries; its
AttemptNumber, LeaseGeneration, ScopeGeneration, and RuntimeEpoch fence one exact execution observation.
Do not derive a provider idempotency key from Correlation.AttemptId, an attempt number, or a lease generation. Doing
so turns a retry into a different provider operation and defeats ProviderKeyed safety. Projection repair may inspect
execution identity, but must never treat it as authorization to invoke the executor again.
Privacy-Safe Diagnostics
Metadata and diagnostics are meant to be durable and visible in repair reports, so they must contain only safe values:
- Stable reason codes and opaque identifiers.
- Counts, states, and bounded labels.
- Safe problem, cause, and fix guidance.
Do not put provider URLs, OAuth tokens, credentials, raw payloads, prompts, model output, email bodies, attachments, child-sensitive text, or other unclassified sensitive content into metadata.
Projection Repair
Projection repair is a recovery path, not an executor path. Repair code should read durable completion facts, update visible state, and return Reconciled, Noop, StaleFence, Conflict, or Unrecoverable outcomes. It should not call IDurableWorkerExecutor<TWork,TResult>.
Use DurableWorkerProjectionRepairRequest to keep repair scans bounded by staleness and batch size.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- CliWrap (>= 3.10.1)
- ForgeTrust.AppSurface.Core (>= 0.2.0-preview.5)
- Microsoft.Extensions.Hosting (>= 10.0.8)
- Microsoft.Extensions.Logging.Console (>= 10.0.8)
- Microsoft.Extensions.Options (>= 10.0.8)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ForgeTrust.AppSurface.Workers:
| Package | Downloads |
|---|---|
|
ForgeTrust.AppSurface.Workers.DurableTask
ForgeTrust.AppSurface.Workers.DurableTask package for AppSurface application composition. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0-preview.5 | 103 | 8/1/2026 |
| 0.2.0-preview.4 | 186 | 7/18/2026 |
| 0.2.0-preview.2 | 195 | 7/3/2026 |