{"owner":"elsa-workflows","repo":"elsa-core","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md","AGENTS.md"],"skills":{"CLAUDE.md":"# main Development Guidelines\n\nAuto-generated from all feature plans. Last updated: 2026-04-24\n\n## Active Technologies\n\n- C# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`. + `Elsa.Workflows.Runtime`, `Elsa.Workflows.Runtime.Distributed`, `Elsa.Hosting.Management` (existing heartbeat), `Elsa.Http` and `Elsa.Scheduling` (first ingress-source adapters), `Elsa.Api.Common` (`ElsaEndpoint<TRequest, TResponse>` on FastEndpoints), `Elsa.Features` (`IShellFeature`), `Microsoft.Extensions.DependencyInjection`, `Elsa.Mediator`. (002-graceful-shutdown)\n\n## Project Structure\n\n```text\nsrc/\ntests/\n```\n\n## Commands\n\n# Add commands for C# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`.\n\n## Code Style\n\nC# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`.: Follow standard conventions\n\n## Recent Changes\n\n- 002-graceful-shutdown: Added C# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`. + `Elsa.Workflows.Runtime`, `Elsa.Workflows.Runtime.Distributed`, `Elsa.Hosting.Management` (existing heartbeat), `Elsa.Http` and `Elsa.Scheduling` (first ingress-source adapters), `Elsa.Api.Common` (`ElsaEndpoint<TRequest, TResponse>` on FastEndpoints), `Elsa.Features` (`IShellFeature`), `Microsoft.Extensions.DependencyInjection`, `Elsa.Mediator`.\n\n<!-- MANUAL ADDITIONS START -->\n## Agent Operating Principles\n\n- Do not assume, hide confusion, or flatten uncertainty; surface questions, constraints, and tradeoffs explicitly.\n- Write the minimum code that solves the defined problem; do not add speculative abstractions, features, or cleanup.\n- Touch only the files and behavior required for the task; clean up only issues introduced by your own changes.\n- Define success criteria before implementation, then iterate until the criteria are verified or clearly state what could not be verified.\n\n<!-- MANUAL ADDITIONS END -->\n","AGENTS.md":"# AGENTS.md\n\nGuidance for AI coding agents working in this repository.\n\n## Project Overview\n\n- Elsa Core is a .NET solution centered on `Elsa.sln`.\n- Production code lives under `src/`.\n- Tests live under `test/`, grouped by `unit`, `integration`, `component`, and `performance`.\n- Build automation is implemented with NUKE in `build/Build.cs` and exposed through `build.sh`, `build.ps1`, and `build.cmd`.\n\n## Working Rules\n\n- Keep changes focused on the requested task. Do not mix unrelated cleanup, formatting, or dependency updates into functional changes.\n- Preserve existing public APIs unless the task explicitly requires an API change.\n- Update tests when behavior changes and add tests for new behavior where practical.\n- Update documentation when changing externally visible behavior, configuration, APIs, or developer workflows.\n- Do not delete generated-looking, artifact, or IDE files unless the task explicitly asks for cleanup.\n- If the worktree contains unrelated user changes, leave them untouched.\n\n## Agent Operating Principles\n\n- Do not assume, hide confusion, or flatten uncertainty; surface questions, constraints, and tradeoffs explicitly.\n- Write the minimum code that solves the defined problem; do not add speculative abstractions, features, or cleanup.\n- Touch only the files and behavior required for the task; clean up only issues introduced by your own changes.\n- Define success criteria before implementation, then iterate until the criteria are verified or clearly state what could not be verified.\n\n## Build And Test Commands\n\n- Build the default target: `./build.sh`\n- Run NUKE test target: `./build.sh Test`\n- Build with dotnet directly: `dotnet build Elsa.sln`\n- Run all tests directly: `dotnet test Elsa.sln`\n- Run a specific test project: `dotnet test test/unit/Elsa.Workflows.Core.UnitTests/Elsa.Workflows.Core.UnitTests.csproj`\n- Run ElsaScript DSL integration tests: `./run-dsl-tests.sh`\n\nPrefer targeted `dotnet test <project>` commands while iterating, then run a broader build or test command when the change affects shared infrastructure or cross-module behavior.\n\n## Code Style\n\n- C# uses `LangVersion` `latest`, nullable reference types, and implicit usings from `Directory.Build.props`.\n- Projects under `src/` target `net8.0`, `net9.0`, and `net10.0` through `src/Directory.Build.props`.\n- Follow `.editorconfig`: 4-space indentation for C#, file-scoped namespaces, braces required, `var` preferred, usings outside namespaces, and sorted system directives.\n- Prefer clear domain names over abbreviations. Keep types small and responsibilities explicit.\n- Avoid suppressing warnings unless compatibility or framework constraints make the warning unavoidable; explain the reason near the suppression.\n\n## Repository Structure\n\n- `src/apps/`: runnable app hosts and sample packages.\n- `src/clients/`: client libraries.\n- `src/common/`: shared infrastructure and testing support.\n- `src/extensions/`: extension packages.\n- `src/modules/`: Elsa modules and feature packages.\n- `test/unit/`: unit tests.\n- `test/integration/`: integration tests.\n- `test/component/`: component tests.\n- `test/performance/`: performance tests.\n- `build/`: NUKE build project.\n- `doc/`, `design/`, and `specs/`: documentation, design assets, and feature specifications.\n\n## Testing Guidance\n\n- Place tests near the relevant existing test project rather than creating a new project by default.\n- Use the existing shared testing helpers under `src/common/Elsa.Testing.Shared*` when they fit the scenario.\n- For regressions, add a failing test that demonstrates the bug before or alongside the fix.\n- For multi-targeting issues, consider whether the test must run against all target frameworks or only the affected one.\n\n## Dependency And Package Guidance\n\n- Central package versions are managed in `Directory.Packages.props`; do not add ad hoc versions to individual project files unless the repository already uses that pattern for the package.\n- Keep target framework changes centralized in `src/Directory.Build.props` unless a project has a specific reason to differ.\n- Be cautious with package upgrades because this repository targets multiple frameworks and modules.\n\n## Review Checklist\n\nBefore handing off changes, verify the following when applicable:\n\n- The project or solution builds.\n- Relevant unit or integration tests pass.\n- Public API or behavior changes are documented.\n- New code follows nullable annotations and existing style.\n- No unrelated files were changed.\n\n<!-- SPECKIT START -->\nFor additional context about technologies to be used, project structure,\nshell commands, and other important information, read `specs/012-weaver-grounding-tools/plan.md`.\n<!-- SPECKIT END -->\n\n## Active Technologies\n- C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Logging`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing Elsa identity/authorization features. (003-live-server-logs)\n- Bounded in-memory ring buffer for MVP; no EF Core schema changes. Provider abstraction allows external/shared log backends later. (003-live-server-logs)\n- C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Logging`, `Microsoft.Extensions.Options`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, CShells shell feature infrastructure. (004-diagnostics-structured-logs)\n- Existing bounded in-memory ring buffer; no EF Core schema changes. Provider abstraction remains available for future shared backends. (004-diagnostics-structured-logs)\n- C# latest, nullable reference types enabled, implicit usings enabled. + Existing `Elsa.Diagnostics.StructuredLogs`, `Microsoft.Extensions.Logging`, `Microsoft.Extensions.Options`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, FluentMigrator runner packages, SQLite ADO.NET provider, and optionally Dapper for relational operations. (005-structured-log-persistence)\n- Bounded in-memory store by default; opt-in SQLite durable store through shared relational persistence. SQLite stores `Timestamp` and `ReceivedAt` as UTC ISO-8601 text and stores exception, scope, and property payloads as JSON text. (005-structured-log-persistence)\n- C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Options`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, Elsa shell feature infrastructure, and existing Elsa identity/authorization patterns. (006-diagnostics-console-logs)\n- Bounded in-memory recent buffer and bounded subscriber queues by default; no durable database schema. Providers receive redacted content only. (006-diagnostics-console-logs)\n- C# latest, nullable reference types enabled, implicit usings enabled. + Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing Elsa identity/authorization patterns, Elsa workflow input metadata, `Microsoft.Extensions.Configuration`, `Microsoft.AspNetCore.DataProtection`, EF Core persistence infrastructure, mediator notifications, and optional JavaScript expression integration. (007-secrets-module)\n- In-memory store for tests/development; Elsa-managed encrypted store with EF Core persistence for production; configuration-backed read-only store for deployment-managed values. No cloud vault or OS certificate store provider in v1. (007-secrets-module)\n- C# latest, nullable reference types enabled, implicit usings enabled; paired Studio Blazor/Razor module work in the Studio repository. + Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing identity/authorization and tenancy services, workflow definition/instance abstractions, diagnostics/log abstractions, `Microsoft.Extensions.Options`, `Microsoft.Extensions.Logging`, OpenTelemetry, `System.Text.Json`, SignalR or SSE streaming, GitHub Copilot SDK isolated behind `Elsa.AI.Copilot`, and headless Copilot CLI JSON-RPC integration. (008-weaver-ai-copilot)\n- Configurable conversation/session retention with in-memory support for development and tests; durable proposal and audit stores required for MVP using Elsa persistence provider abstractions and an EF Core provider package for production. (008-weaver-ai-copilot)\n- C# latest, nullable reference types enabled, implicit usings enabled. + Elsa AI abstractions/host modules, `GitHub.Copilot.SDK` isolated behind `Elsa.AI.Copilot`, Activity Registry, workflow management/runtime abstractions, existing identity/tenancy services, FastEndpoints through Elsa endpoint patterns, `System.Text.Json`, `Microsoft.Extensions.Options`, and `Microsoft.Extensions.Logging`. (012-weaver-grounding-tools)\n- Existing workflow definition/runtime stores and Activity Registry are read sources; durable proposal and audit stores remain the write/governance path; no new required database schema for the grounding MVP. (012-weaver-grounding-tools)\n\n## Recent Changes\n- 012-weaver-grounding-tools: Plans governed Weaver grounding tools for installed activities, workflow definitions, workflow proposals, workflow instances, incidents, and Studio capability discovery.\n- 008-weaver-ai-copilot: Captures Weaver as a server-hosted, provider-isolated AI copilot platform with Studio chat, governed tools, proposal-only workflow mutations, audit, and extensibility.\n- 006-diagnostics-console-logs: Plans raw stdout/stderr console capture with redaction-before-provider boundaries, bounded in-memory recent/live buffers, REST backfill/source endpoints, and a SignalR live hub.\n- 005-structured-log-persistence: Plans pluggable structured log storage with in-memory default and opt-in SQLite persistence using FluentMigrator.\n- 004-diagnostics-structured-logs: Refactors the unpublished server logs module into diagnostics structured logs and preserves bounded structured `ILogger` capture.\n- 003-live-server-logs: Added C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Logging`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing Elsa identity/authorization features.\n"},"files":{"CLAUDE.md":"# main Development Guidelines\n\nAuto-generated from all feature plans. Last updated: 2026-04-24\n\n## Active Technologies\n\n- C# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`. + `Elsa.Workflows.Runtime`, `Elsa.Workflows.Runtime.Distributed`, `Elsa.Hosting.Management` (existing heartbeat), `Elsa.Http` and `Elsa.Scheduling` (first ingress-source adapters), `Elsa.Api.Common` (`ElsaEndpoint<TRequest, TResponse>` on FastEndpoints), `Elsa.Features` (`IShellFeature`), `Microsoft.Extensions.DependencyInjection`, `Elsa.Mediator`. (002-graceful-shutdown)\n\n## Project Structure\n\n```text\nsrc/\ntests/\n```\n\n## Commands\n\n# Add commands for C# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`.\n\n## Code Style\n\nC# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`.: Follow standard conventions\n\n## Recent Changes\n\n- 002-graceful-shutdown: Added C# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`. + `Elsa.Workflows.Runtime`, `Elsa.Workflows.Runtime.Distributed`, `Elsa.Hosting.Management` (existing heartbeat), `Elsa.Http` and `Elsa.Scheduling` (first ingress-source adapters), `Elsa.Api.Common` (`ElsaEndpoint<TRequest, TResponse>` on FastEndpoints), `Elsa.Features` (`IShellFeature`), `Microsoft.Extensions.DependencyInjection`, `Elsa.Mediator`.\n\n<!-- MANUAL ADDITIONS START -->\n## Agent Operating Principles\n\n- Do not assume, hide confusion, or flatten uncertainty; surface questions, constraints, and tradeoffs explicitly.\n- Write the minimum code that solves the defined problem; do not add speculative abstractions, features, or cleanup.\n- Touch only the files and behavior required for the task; clean up only issues introduced by your own changes.\n- Define success criteria before implementation, then iterate until the criteria are verified or clearly state what could not be verified.\n\n<!-- MANUAL ADDITIONS END -->\n","AGENTS.md":"# AGENTS.md\n\nGuidance for AI coding agents working in this repository.\n\n## Project Overview\n\n- Elsa Core is a .NET solution centered on `Elsa.sln`.\n- Production code lives under `src/`.\n- Tests live under `test/`, grouped by `unit`, `integration`, `component`, and `performance`.\n- Build automation is implemented with NUKE in `build/Build.cs` and exposed through `build.sh`, `build.ps1`, and `build.cmd`.\n\n## Working Rules\n\n- Keep changes focused on the requested task. Do not mix unrelated cleanup, formatting, or dependency updates into functional changes.\n- Preserve existing public APIs unless the task explicitly requires an API change.\n- Update tests when behavior changes and add tests for new behavior where practical.\n- Update documentation when changing externally visible behavior, configuration, APIs, or developer workflows.\n- Do not delete generated-looking, artifact, or IDE files unless the task explicitly asks for cleanup.\n- If the worktree contains unrelated user changes, leave them untouched.\n\n## Agent Operating Principles\n\n- Do not assume, hide confusion, or flatten uncertainty; surface questions, constraints, and tradeoffs explicitly.\n- Write the minimum code that solves the defined problem; do not add speculative abstractions, features, or cleanup.\n- Touch only the files and behavior required for the task; clean up only issues introduced by your own changes.\n- Define success criteria before implementation, then iterate until the criteria are verified or clearly state what could not be verified.\n\n## Build And Test Commands\n\n- Build the default target: `./build.sh`\n- Run NUKE test target: `./build.sh Test`\n- Build with dotnet directly: `dotnet build Elsa.sln`\n- Run all tests directly: `dotnet test Elsa.sln`\n- Run a specific test project: `dotnet test test/unit/Elsa.Workflows.Core.UnitTests/Elsa.Workflows.Core.UnitTests.csproj`\n- Run ElsaScript DSL integration tests: `./run-dsl-tests.sh`\n\nPrefer targeted `dotnet test <project>` commands while iterating, then run a broader build or test command when the change affects shared infrastructure or cross-module behavior.\n\n## Code Style\n\n- C# uses `LangVersion` `latest`, nullable reference types, and implicit usings from `Directory.Build.props`.\n- Projects under `src/` target `net8.0`, `net9.0`, and `net10.0` through `src/Directory.Build.props`.\n- Follow `.editorconfig`: 4-space indentation for C#, file-scoped namespaces, braces required, `var` preferred, usings outside namespaces, and sorted system directives.\n- Prefer clear domain names over abbreviations. Keep types small and responsibilities explicit.\n- Avoid suppressing warnings unless compatibility or framework constraints make the warning unavoidable; explain the reason near the suppression.\n\n## Repository Structure\n\n- `src/apps/`: runnable app hosts and sample packages.\n- `src/clients/`: client libraries.\n- `src/common/`: shared infrastructure and testing support.\n- `src/extensions/`: extension packages.\n- `src/modules/`: Elsa modules and feature packages.\n- `test/unit/`: unit tests.\n- `test/integration/`: integration tests.\n- `test/component/`: component tests.\n- `test/performance/`: performance tests.\n- `build/`: NUKE build project.\n- `doc/`, `design/`, and `specs/`: documentation, design assets, and feature specifications.\n\n## Testing Guidance\n\n- Place tests near the relevant existing test project rather than creating a new project by default.\n- Use the existing shared testing helpers under `src/common/Elsa.Testing.Shared*` when they fit the scenario.\n- For regressions, add a failing test that demonstrates the bug before or alongside the fix.\n- For multi-targeting issues, consider whether the test must run against all target frameworks or only the affected one.\n\n## Dependency And Package Guidance\n\n- Central package versions are managed in `Directory.Packages.props`; do not add ad hoc versions to individual project files unless the repository already uses that pattern for the package.\n- Keep target framework changes centralized in `src/Directory.Build.props` unless a project has a specific reason to differ.\n- Be cautious with package upgrades because this repository targets multiple frameworks and modules.\n\n## Review Checklist\n\nBefore handing off changes, verify the following when applicable:\n\n- The project or solution builds.\n- Relevant unit or integration tests pass.\n- Public API or behavior changes are documented.\n- New code follows nullable annotations and existing style.\n- No unrelated files were changed.\n\n<!-- SPECKIT START -->\nFor additional context about technologies to be used, project structure,\nshell commands, and other important information, read `specs/012-weaver-grounding-tools/plan.md`.\n<!-- SPECKIT END -->\n\n## Active Technologies\n- C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Logging`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing Elsa identity/authorization features. (003-live-server-logs)\n- Bounded in-memory ring buffer for MVP; no EF Core schema changes. Provider abstraction allows external/shared log backends later. (003-live-server-logs)\n- C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Logging`, `Microsoft.Extensions.Options`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, CShells shell feature infrastructure. (004-diagnostics-structured-logs)\n- Existing bounded in-memory ring buffer; no EF Core schema changes. Provider abstraction remains available for future shared backends. (004-diagnostics-structured-logs)\n- C# latest, nullable reference types enabled, implicit usings enabled. + Existing `Elsa.Diagnostics.StructuredLogs`, `Microsoft.Extensions.Logging`, `Microsoft.Extensions.Options`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, FluentMigrator runner packages, SQLite ADO.NET provider, and optionally Dapper for relational operations. (005-structured-log-persistence)\n- Bounded in-memory store by default; opt-in SQLite durable store through shared relational persistence. SQLite stores `Timestamp` and `ReceivedAt` as UTC ISO-8601 text and stores exception, scope, and property payloads as JSON text. (005-structured-log-persistence)\n- C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Options`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, Elsa shell feature infrastructure, and existing Elsa identity/authorization patterns. (006-diagnostics-console-logs)\n- Bounded in-memory recent buffer and bounded subscriber queues by default; no durable database schema. Providers receive redacted content only. (006-diagnostics-console-logs)\n- C# latest, nullable reference types enabled, implicit usings enabled. + Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing Elsa identity/authorization patterns, Elsa workflow input metadata, `Microsoft.Extensions.Configuration`, `Microsoft.AspNetCore.DataProtection`, EF Core persistence infrastructure, mediator notifications, and optional JavaScript expression integration. (007-secrets-module)\n- In-memory store for tests/development; Elsa-managed encrypted store with EF Core persistence for production; configuration-backed read-only store for deployment-managed values. No cloud vault or OS certificate store provider in v1. (007-secrets-module)\n- C# latest, nullable reference types enabled, implicit usings enabled; paired Studio Blazor/Razor module work in the Studio repository. + Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing identity/authorization and tenancy services, workflow definition/instance abstractions, diagnostics/log abstractions, `Microsoft.Extensions.Options`, `Microsoft.Extensions.Logging`, OpenTelemetry, `System.Text.Json`, SignalR or SSE streaming, GitHub Copilot SDK isolated behind `Elsa.AI.Copilot`, and headless Copilot CLI JSON-RPC integration. (008-weaver-ai-copilot)\n- Configurable conversation/session retention with in-memory support for development and tests; durable proposal and audit stores required for MVP using Elsa persistence provider abstractions and an EF Core provider package for production. (008-weaver-ai-copilot)\n- C# latest, nullable reference types enabled, implicit usings enabled. + Elsa AI abstractions/host modules, `GitHub.Copilot.SDK` isolated behind `Elsa.AI.Copilot`, Activity Registry, workflow management/runtime abstractions, existing identity/tenancy services, FastEndpoints through Elsa endpoint patterns, `System.Text.Json`, `Microsoft.Extensions.Options`, and `Microsoft.Extensions.Logging`. (012-weaver-grounding-tools)\n- Existing workflow definition/runtime stores and Activity Registry are read sources; durable proposal and audit stores remain the write/governance path; no new required database schema for the grounding MVP. (012-weaver-grounding-tools)\n\n## Recent Changes\n- 012-weaver-grounding-tools: Plans governed Weaver grounding tools for installed activities, workflow definitions, workflow proposals, workflow instances, incidents, and Studio capability discovery.\n- 008-weaver-ai-copilot: Captures Weaver as a server-hosted, provider-isolated AI copilot platform with Studio chat, governed tools, proposal-only workflow mutations, audit, and extensibility.\n- 006-diagnostics-console-logs: Plans raw stdout/stderr console capture with redaction-before-provider boundaries, bounded in-memory recent/live buffers, REST backfill/source endpoints, and a SignalR live hub.\n- 005-structured-log-persistence: Plans pluggable structured log storage with in-memory default and opt-in SQLite persistence using FluentMigrator.\n- 004-diagnostics-structured-logs: Refactors the unpublished server logs module into diagnostics structured logs and preserves bounded structured `ILogger` capture.\n- 003-live-server-logs: Added C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Logging`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing Elsa identity/authorization features.\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# main Development Guidelines\n\nAuto-generated from all feature plans. Last updated: 2026-04-24\n\n## Active Technologies\n\n- C# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`. + `Elsa.Workflows.Runtime`, `Elsa.Workflows.Runtime.Distributed`, `Elsa.Hosting.Management` (existing heartbeat), `Elsa.Http` and `Elsa.Scheduling` (first ingress-source adapters), `Elsa.Api.Common` (`ElsaEndpoint<TRequest, TResponse>` on FastEndpoints), `Elsa.Features` (`IShellFeature`), `Microsoft.Extensions.DependencyInjection`, `Elsa.Mediator`. (002-graceful-shutdown)\n\n## Project Structure\n\n```text\nsrc/\ntests/\n```\n\n## Commands\n\n# Add commands for C# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`.\n\n## Code Style\n\nC# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`.: Follow standard conventions\n\n## Recent Changes\n\n- 002-graceful-shutdown: Added C# latest (`<LangVersion>latest</LangVersion>`), nullable reference types enabled, implicit usings enabled — per `src/Directory.Build.props`. + `Elsa.Workflows.Runtime`, `Elsa.Workflows.Runtime.Distributed`, `Elsa.Hosting.Management` (existing heartbeat), `Elsa.Http` and `Elsa.Scheduling` (first ingress-source adapters), `Elsa.Api.Common` (`ElsaEndpoint<TRequest, TResponse>` on FastEndpoints), `Elsa.Features` (`IShellFeature`), `Microsoft.Extensions.DependencyInjection`, `Elsa.Mediator`.\n\n<!-- MANUAL ADDITIONS START -->\n## Agent Operating Principles\n\n- Do not assume, hide confusion, or flatten uncertainty; surface questions, constraints, and tradeoffs explicitly.\n- Write the minimum code that solves the defined problem; do not add speculative abstractions, features, or cleanup.\n- Touch only the files and behavior required for the task; clean up only issues introduced by your own changes.\n- Define success criteria before implementation, then iterate until the criteria are verified or clearly state what could not be verified.\n\n<!-- MANUAL ADDITIONS END -->\n","category":"root","tokens":543},{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md\n\nGuidance for AI coding agents working in this repository.\n\n## Project Overview\n\n- Elsa Core is a .NET solution centered on `Elsa.sln`.\n- Production code lives under `src/`.\n- Tests live under `test/`, grouped by `unit`, `integration`, `component`, and `performance`.\n- Build automation is implemented with NUKE in `build/Build.cs` and exposed through `build.sh`, `build.ps1`, and `build.cmd`.\n\n## Working Rules\n\n- Keep changes focused on the requested task. Do not mix unrelated cleanup, formatting, or dependency updates into functional changes.\n- Preserve existing public APIs unless the task explicitly requires an API change.\n- Update tests when behavior changes and add tests for new behavior where practical.\n- Update documentation when changing externally visible behavior, configuration, APIs, or developer workflows.\n- Do not delete generated-looking, artifact, or IDE files unless the task explicitly asks for cleanup.\n- If the worktree contains unrelated user changes, leave them untouched.\n\n## Agent Operating Principles\n\n- Do not assume, hide confusion, or flatten uncertainty; surface questions, constraints, and tradeoffs explicitly.\n- Write the minimum code that solves the defined problem; do not add speculative abstractions, features, or cleanup.\n- Touch only the files and behavior required for the task; clean up only issues introduced by your own changes.\n- Define success criteria before implementation, then iterate until the criteria are verified or clearly state what could not be verified.\n\n## Build And Test Commands\n\n- Build the default target: `./build.sh`\n- Run NUKE test target: `./build.sh Test`\n- Build with dotnet directly: `dotnet build Elsa.sln`\n- Run all tests directly: `dotnet test Elsa.sln`\n- Run a specific test project: `dotnet test test/unit/Elsa.Workflows.Core.UnitTests/Elsa.Workflows.Core.UnitTests.csproj`\n- Run ElsaScript DSL integration tests: `./run-dsl-tests.sh`\n\nPrefer targeted `dotnet test <project>` commands while iterating, then run a broader build or test command when the change affects shared infrastructure or cross-module behavior.\n\n## Code Style\n\n- C# uses `LangVersion` `latest`, nullable reference types, and implicit usings from `Directory.Build.props`.\n- Projects under `src/` target `net8.0`, `net9.0`, and `net10.0` through `src/Directory.Build.props`.\n- Follow `.editorconfig`: 4-space indentation for C#, file-scoped namespaces, braces required, `var` preferred, usings outside namespaces, and sorted system directives.\n- Prefer clear domain names over abbreviations. Keep types small and responsibilities explicit.\n- Avoid suppressing warnings unless compatibility or framework constraints make the warning unavoidable; explain the reason near the suppression.\n\n## Repository Structure\n\n- `src/apps/`: runnable app hosts and sample packages.\n- `src/clients/`: client libraries.\n- `src/common/`: shared infrastructure and testing support.\n- `src/extensions/`: extension packages.\n- `src/modules/`: Elsa modules and feature packages.\n- `test/unit/`: unit tests.\n- `test/integration/`: integration tests.\n- `test/component/`: component tests.\n- `test/performance/`: performance tests.\n- `build/`: NUKE build project.\n- `doc/`, `design/`, and `specs/`: documentation, design assets, and feature specifications.\n\n## Testing Guidance\n\n- Place tests near the relevant existing test project rather than creating a new project by default.\n- Use the existing shared testing helpers under `src/common/Elsa.Testing.Shared*` when they fit the scenario.\n- For regressions, add a failing test that demonstrates the bug before or alongside the fix.\n- For multi-targeting issues, consider whether the test must run against all target frameworks or only the affected one.\n\n## Dependency And Package Guidance\n\n- Central package versions are managed in `Directory.Packages.props`; do not add ad hoc versions to individual project files unless the repository already uses that pattern for the package.\n- Keep target framework changes centralized in `src/Directory.Build.props` unless a project has a specific reason to differ.\n- Be cautious with package upgrades because this repository targets multiple frameworks and modules.\n\n## Review Checklist\n\nBefore handing off changes, verify the following when applicable:\n\n- The project or solution builds.\n- Relevant unit or integration tests pass.\n- Public API or behavior changes are documented.\n- New code follows nullable annotations and existing style.\n- No unrelated files were changed.\n\n<!-- SPECKIT START -->\nFor additional context about technologies to be used, project structure,\nshell commands, and other important information, read `specs/012-weaver-grounding-tools/plan.md`.\n<!-- SPECKIT END -->\n\n## Active Technologies\n- C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Logging`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing Elsa identity/authorization features. (003-live-server-logs)\n- Bounded in-memory ring buffer for MVP; no EF Core schema changes. Provider abstraction allows external/shared log backends later. (003-live-server-logs)\n- C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Logging`, `Microsoft.Extensions.Options`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, CShells shell feature infrastructure. (004-diagnostics-structured-logs)\n- Existing bounded in-memory ring buffer; no EF Core schema changes. Provider abstraction remains available for future shared backends. (004-diagnostics-structured-logs)\n- C# latest, nullable reference types enabled, implicit usings enabled. + Existing `Elsa.Diagnostics.StructuredLogs`, `Microsoft.Extensions.Logging`, `Microsoft.Extensions.Options`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, FluentMigrator runner packages, SQLite ADO.NET provider, and optionally Dapper for relational operations. (005-structured-log-persistence)\n- Bounded in-memory store by default; opt-in SQLite durable store through shared relational persistence. SQLite stores `Timestamp` and `ReceivedAt` as UTC ISO-8601 text and stores exception, scope, and property payloads as JSON text. (005-structured-log-persistence)\n- C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Options`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, Elsa shell feature infrastructure, and existing Elsa identity/authorization patterns. (006-diagnostics-console-logs)\n- Bounded in-memory recent buffer and bounded subscriber queues by default; no durable database schema. Providers receive redacted content only. (006-diagnostics-console-logs)\n- C# latest, nullable reference types enabled, implicit usings enabled. + Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing Elsa identity/authorization patterns, Elsa workflow input metadata, `Microsoft.Extensions.Configuration`, `Microsoft.AspNetCore.DataProtection`, EF Core persistence infrastructure, mediator notifications, and optional JavaScript expression integration. (007-secrets-module)\n- In-memory store for tests/development; Elsa-managed encrypted store with EF Core persistence for production; configuration-backed read-only store for deployment-managed values. No cloud vault or OS certificate store provider in v1. (007-secrets-module)\n- C# latest, nullable reference types enabled, implicit usings enabled; paired Studio Blazor/Razor module work in the Studio repository. + Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing identity/authorization and tenancy services, workflow definition/instance abstractions, diagnostics/log abstractions, `Microsoft.Extensions.Options`, `Microsoft.Extensions.Logging`, OpenTelemetry, `System.Text.Json`, SignalR or SSE streaming, GitHub Copilot SDK isolated behind `Elsa.AI.Copilot`, and headless Copilot CLI JSON-RPC integration. (008-weaver-ai-copilot)\n- Configurable conversation/session retention with in-memory support for development and tests; durable proposal and audit stores required for MVP using Elsa persistence provider abstractions and an EF Core provider package for production. (008-weaver-ai-copilot)\n- C# latest, nullable reference types enabled, implicit usings enabled. + Elsa AI abstractions/host modules, `GitHub.Copilot.SDK` isolated behind `Elsa.AI.Copilot`, Activity Registry, workflow management/runtime abstractions, existing identity/tenancy services, FastEndpoints through Elsa endpoint patterns, `System.Text.Json`, `Microsoft.Extensions.Options`, and `Microsoft.Extensions.Logging`. (012-weaver-grounding-tools)\n- Existing workflow definition/runtime stores and Activity Registry are read sources; durable proposal and audit stores remain the write/governance path; no new required database schema for the grounding MVP. (012-weaver-grounding-tools)\n\n## Recent Changes\n- 012-weaver-grounding-tools: Plans governed Weaver grounding tools for installed activities, workflow definitions, workflow proposals, workflow instances, incidents, and Studio capability discovery.\n- 008-weaver-ai-copilot: Captures Weaver as a server-hosted, provider-isolated AI copilot platform with Studio chat, governed tools, proposal-only workflow mutations, audit, and extensibility.\n- 006-diagnostics-console-logs: Plans raw stdout/stderr console capture with redaction-before-provider boundaries, bounded in-memory recent/live buffers, REST backfill/source endpoints, and a SignalR live hub.\n- 005-structured-log-persistence: Plans pluggable structured log storage with in-memory default and opt-in SQLite persistence using FluentMigrator.\n- 004-diagnostics-structured-logs: Refactors the unpublished server logs module into diagnostics structured logs and preserves bounded structured `ILogger` capture.\n- 003-live-server-logs: Added C# latest, nullable reference types enabled, implicit usings enabled. + `Microsoft.Extensions.Logging`, `Microsoft.AspNetCore.SignalR`, Elsa feature/module infrastructure, FastEndpoints through Elsa API endpoint patterns, existing Elsa identity/authorization features.\n","category":"root","tokens":2594}]}