Workable 1.1.80926.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package Workable --version 1.1.80926.1
                    
NuGet\Install-Package Workable -Version 1.1.80926.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Workable" Version="1.1.80926.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Workable" Version="1.1.80926.1" />
                    
Directory.Packages.props
<PackageReference Include="Workable" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Workable --version 1.1.80926.1
                    
#r "nuget: Workable, 1.1.80926.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Workable@1.1.80926.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Workable&version=1.1.80926.1
                    
Install as a Cake Addin
#tool nuget:?package=Workable&version=1.1.80926.1
                    
Install as a Cake Tool

Workable

Workable is a .NET work orchestration library for applications that need more than "run this in the background." It turns background jobs, operational tasks, recurring work, and user-triggered actions into first-class work the host can queue, observe, control, and configure.

Most applications eventually grow work that does not fit cleanly inside the request, controller action, message handler, or command that started it. Sending email, refreshing caches, synchronizing data, running maintenance tasks, retrying transient failures, and coordinating long-running operations all need identity, state, cancellation, status, events, and a way to be found later. Workable gives that work a consistent runtime model instead of leaving each feature to invent its own.

Workable is useful when you want feature code to define work near the feature that needs it, while the host application keeps control of execution. Feature assemblies can declare their own work with Workable.Sdk. Libraries that need to use a hosted system can depend on Workable.Abstractions and accept IWorkSystem from the host. The host application owns the actual Workable systems, decides which work belongs in each system, and controls how workers start, retry, recur, respect concurrency, and stay available for inspection.

That split lets teams add work near the feature that needs it without forcing every feature library to know how the application hosts work. At runtime, the host gets a consistent surface for queueing work, awaiting completion, pausing, canceling, reconfiguring workers, and subscribing to work events.

Workable also gives applications a path to expose the same authored work through more than one channel. Direct .NET callers, HTTP endpoints, MCP clients, and realtime SignalR clients can all work against the same catalog while preserving request context, structured outcomes, worker history, and invocation rules.

Why Use Workable?

  • Define work once and invoke it through .NET, HTTP, or MCP when those channels are enabled.
  • Register workflow definitions that coordinate existing work through dispatch, typed fan-out, parallel branches, and join steps inside the host runtime.
  • Keep feature libraries independent from the host runtime while still letting them contribute work.
  • Queue fire-and-forget work without losing the ability to query, observe, cancel, pause, retry, or purge it.
  • Give operators a real admin surface for work: live system and worker visibility, executable definitions, diagnostics, and control actions instead of one-off job screens and custom tooling.
  • Attach runtime behavior such as recurrence, transient retry, failed-worker handling, idempotency, concurrency, durability, retention, logging, profiling, initialization, invocation policy, and start policy.
  • Persist short-lived iteration logs and profiles so developers and agents can inspect the work they just ran and answer questions such as how many SQL commands or HTTP requests it executed.
  • Use structured inputs, outputs, messages, worker snapshots, event payloads, and status summaries instead of ad hoc task tracking.
  • Preserve who or what started work through request context and origin metadata for HTTP, MCP, SignalR, and direct .NET calls.

Packages

Core Packages

  • Workable.Sdk: contracts and registration helpers for assemblies that author work.
  • Workable.Abstractions: contracts for libraries that consume an already-hosted work system.
  • Workable: in-process host and runtime for Workable systems.

Optional Packages

  • Workable.SqlServer: SQL Server persistence integration for durable queueing and completion, durable workflows, persistence-backed idempotency and concurrency, and expiring execution diagnostics.
  • Workable.AspNetCore: ASP.NET Core request-context and authorization integration for custom endpoints and hosts.
  • Workable.Entra: Microsoft Entra ID bearer-token validation and Workable authorization claim mapping for ASP.NET Core target apps.
  • Workable.Views: shared component-view contracts and projections used by HTTP and SignalR adapters; most applications receive it transitively through Workable.HttpApi or Workable.SignalR instead of referencing it directly.
  • Workable.HttpApi: standard HTTP endpoints for queueing, querying, and controlling workers and workflow runs.
  • Workable.Mcp: MCP server adapter for authored work, worker and workflow queries, and worker and workflow actions.
  • Workable.SignalR: realtime worker collections, worker and workflow events, worker details, and component-view updates for ASP.NET Core clients.

Apps And Tools

  • apps/samples/Workable.SampleHost: runnable ASP.NET Core sample app with HTTP API, MCP, SignalR, fake-auth profiles, and SQL Server LocalDB durability scenarios.
  • apps/tools/Workable.PerformanceHarness: opt-in scenario runner and BenchmarkDotNet harness for runtime, query, view, realtime, and SQL durability performance work.
  • apps/tools/Workable.SqlServer.Cli: SQL Server schema generation and deployment CLI for Workable persistence.
  • apps/web/workable-admin-ui: Next.js admin UI for inspecting and operating Workable systems through the HTTP API and SignalR realtime updates.

Documentation

Start with the docs landing page: Workable Docs.

Recommended entry points:

  • Getting Started if you are evaluating or integrating Workable.
  • Registration if you are authoring work in feature assemblies.
  • Workflows if you want to author multi-step orchestrations from existing work definitions.
  • Implementation if you want to implement work classes and understand what executor code can do at runtime.
  • Queueing if you already have work definitions and want to invoke them.
  • Configuration if you are tuning start behavior, retry, recurrence, failed-worker handling, concurrency, durability, logging, retention, or invocation rules.
  • Persistent Execution Diagnostics if a developer or agent needs expiring iteration logs, profiles, or SQL/HTTP operation counts from recently executed work.
  • HTTP API, MCP, and Realtime if you are exposing Workable over transports.
  • Abstractions Surface if you are consuming a hosted system from another library.
  • Workable SQL Server Integration if you need durable queueing, durable workflows, persistence-backed coordination, or execution-diagnostics storage.
  • Sample Host if you want a runnable reference app.
  • Admin UI if you want the browser-based operator surface.
  • Performance Harness if you are measuring runtime or adapter performance.
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Workable:

Package Downloads
Workable.Entra

Microsoft Entra ID integration for interpreting host-authenticated actors and authorization claims on Workable ASP.NET Core adapter surfaces.

Workable.SignalR

Expose Workable worker events and component-view updates to ASP.NET Core clients through SignalR.

Workable.HttpApi

Expose standard ASP.NET Core HTTP endpoints for queueing Workable definitions, querying workers, and sending worker actions.

Workable.Mcp

Expose Workable definitions, query tools, and worker action tools through an ASP.NET Core MCP server adapter.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.82326.1 128 8/24/2026
1.1.81126.1 203 8/11/2026
1.1.80926.1 131 8/9/2026
1.1.80726.1 152 8/8/2026
1.1.80526.1 148 8/5/2026
1.1.71926.1 182 7/21/2026
1.1.70926.1 198 7/10/2026
1.1.70626.2 244 7/6/2026
1.1.70626.1 163 7/6/2026
1.1.63026.1 174 6/30/2026
1.1.61226.1 193 6/12/2026
1.1.159.1 214 6/8/2026
1.1.158.1 165 6/7/2026
1.1.157 165 6/7/2026
1.1.153.1 167 6/2/2026
1.1.146.1 356 5/26/2026
1.1.142.3 197 5/23/2026
1.1.0 179 5/22/2026
1.1.0-preview 136 5/21/2026
1.0.0 163 5/21/2026
Loading failed

# 1.1.080926.1

Date: 2026-08-09

## Breaking Changes

- Precomputed `WorkAuthorizationSnapshot` values are now scoped to the logical Workable system that produced them. Consumers that manually create trusted snapshots should migrate from `WorkAuthorizationSnapshot.Create(...)` to `WorkAuthorizationSnapshot.CreateForSystem(systemName, ...)`. Previously persisted snapshots and snapshots created through the old factory or positional constructor are unscoped; Workable no longer trusts their groups directly and instead resolves authorization for the retained actor through the target system's configured group providers. Applications that relied exclusively on an unscoped frozen snapshot without a functional actor-based fallback provider must migrate before upgrading.

## Added

- Added expiring persistent execution diagnostics for developer and agent analysis of recently executed work. A completed artifact can include iteration metadata, structured logs, exception and activity identifiers, a complete profile tree, and compact summaries grouped by stable instrumentation keys such as `sql.client` and `http.client`.
- Added work-definition and system-wide persistence policies. Retention is mandatory and limited to one minute through 30 days; work definitions can inherit, override, or explicitly disable the system policy.
- Added `IWorkExecutionDiagnosticsRepository` as the provider contract for artifact lifecycle, querying, temporary capture rules, and bounded expiration cleanup.
- Added SQL Server storage for normalized diagnostic, log, instrumentation-summary, and capture-rule rows. `AddWorkableSqlServerPersistence(...)` registers diagnostics storage without requiring durable queueing; SQL durable-queue registration also supplies the diagnostics repository.
- Added temporary system-level and work-definition-level persistent capture rules. Rules select a minimum log level and logs-only, `Bounded`, or `Full` profile behavior, and always have separate active and artifact-retention expirations.
- Added admin UI controls for temporary persistent capture. The controls are available only when the system advertises registered persistence, support all-work and work-type targeting, and expose active rules and their expiration.
- Added HTTP query, detail, and capture-rule routes under `/workable/execution-diagnostics`, with equivalent named-system routes.
- Added the MCP tools `workable_query_execution_diagnostics` and `workable_get_execution_diagnostic`. Agents can select recent iterations, inspect compact dependency counts, and then request full logs or profile evidence only when needed.
- Added per-artifact SQL and HTTP profiling-availability snapshots, dropped-log and dropped-profile indicators, omitted-node counts, and log-truncation reporting so clients can distinguish zero operations from unavailable or incomplete evidence.
- Added execution-diagnostics policy, logging, profiling, and SQL persistence benchmarks plus unit and live SQL integration coverage.
- Added `WorkAuthorizationScope` and `WorkAuthorizationSnapshot.CreateForSystem(...)`. A scoped null system name explicitly identifies the default unnamed system, while a null scope identifies a legacy or otherwise unscoped snapshot.

## Changed

- Persistent evidence uses its own log level and limits independently of the retained worker log buffer. Reaching `WorkLoggingConfiguration.MaximumBufferedEntries` does not stop eligible persistent entries from being offered to the diagnostics writer.
- Persistent diagnostics automatically enables the configured profile capture mode outside Production. Static persistence configuration in Production records logs without automatically enabling profiling; a temporary rule can explicitly request bounded or full profiling for a short investigation.
- Profile materialization, JSON serialization, size validation, instrumentation-summary construction, and repository I/O now run on a bounded background writer. Work execution uses a non-blocking admission path and drops best-effort evidence instead of waiting on the repository under pressure.
- Temporary persistent capture rules are cached in an immutable, definition-indexed snapshot. Iteration admission does not query the database, while local mutations update the cache immediately and cleanup refreshes reconcile other processes.
- SQL schema deployment uses a dedicated execution-diagnostics component version in the existing `SchemaVersion` table. Runtime auto-deployment and the SQL schema CLI produce the same additive schema.
- `IWorkSystem.CreateSession(...)` reuses a precomputed authorization snapshot only when its actor and logical system scope match the request and target system. Otherwise it resolves groups for the existing actor against the target system and captures a replacement snapshot.
- Built-in HTTP, MCP, SignalR, workflow, host-lifecycle, sample, and benchmark authorization snapshot producers now stamp the logical system that supplied their authorization groups.

## Fixed

- Expiration cleanup no longer applies completed-artifact retention to incomplete diagnostics. An incomplete row must cross the abandonment threshold, preventing one host from deleting a quiet iteration still running on another host that shares the persistence scope.
- Cleanup drains bounded backlog passes promptly while retaining its configured cap and delay, and its timing-sensitive regression test now accepts legitimate extra cleanup passes.

## Security

- Viewing persisted rules and evidence requires `ViewDiagnostics`. Creating or deleting a persistent capture rule requires `ControlSystem`; capture policy never grants permission to queue matching work.
- Persistent capture is unavailable until a repository is registered. Every static or temporary artifact has mandatory expiration, cleanup is bounded, and completed artifacts become unreadable as soon as they expire even before physical deletion.
- Writer capacity, queued bytes, per-iteration logs and bytes, message/property/exception lengths, profile nodes, serialized profile size, query sizes, capture-rule counts, and selector lengths are bounded. Saturation drops diagnostics rather than blocking application work.
- Log messages, structured properties, exception data, and application-authored profile context are retained as supplied and may contain sensitive values. Applications should redact them before logging, keep retention short, and restrict diagnostics access. Built-in SQL profiling continues to redact obvious secret parameters, omit binary values, and enforce statement/parameter limits.
- Sharing a `WorkRequestContext` across systems no longer carries authorization groups from the source system into the target system. Foreign, actor-mismatched, and unscoped snapshots use the target system's normal authorization fallback, and the resulting session captures only the replacement target-system snapshot. Worker and workflow persistence continues to remove authorization snapshots from stored request contexts.

## Documentation

- Added a persistent execution-diagnostics guide covering registration, schema deployment, work/system policy, production behavior, profiling modes, memory and artifact bounds, UI and API controls, MCP discovery, agent interpretation, privacy, and custom repository semantics.
- Linked the feature from the root README, documentation index, general diagnostics concept, logging guide, HTTP and MCP adapters, admin UI, sample host, SQL Server integration, and abstractions extension-point documentation.