Bump Microsoft.Agents.AI.Hosting.A2A.AspNetCore from 1.0.0-preview.260128.1 to 1.0.0-preview.260209.1 - #38
Merged
github-actions[bot] merged 1 commit intoFeb 11, 2026
Conversation
…0128.1 to 1.0.0-preview.260209.1 --- updated-dependencies: - dependency-name: Microsoft.Agents.AI.Hosting.A2A.AspNetCore dependency-version: 1.0.0-preview.260209.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot
Bot
deleted the
dependabot/nuget/Microsoft.Agents.AI.Hosting.A2A.AspNetCore-1.0.0-preview.260209.1
branch
February 11, 2026 15:16
ANcpLua
added a commit
that referenced
this pull request
May 25, 2026
…-GCM Keycloak refresh wrap Foundation for the Path C OAuth/remote-connector plan. The collector will mint opaque MCP tokens for clients (Claude Desktop, Cursor, etc.) and wrap encrypted Keycloak refresh tokens behind them, so the IdP token never crosses the wire to MCP clients. Future phases add the OAuth Authorization Code + PKCE flow (#33–#37), /mcp/{tenant} endpoint (#38–#41), legacy SSE dual-endpoint (#42), and Directory submission (#43–#45). Schema (Storage/DuckDbSchema.McpTokens.cs): - mcp_tokens(token_hash PK, user_id, tenant_id, scopes, encrypted_refresh, refresh_expires_at, created_at, last_used_at, revoked_at) + indexes on user_id, tenant_id, refresh_expires_at. - mcp_pkce_state(state PK, code_verifier, tenant_id, client_redirect_uri, nonce, created_at, expires_at) for Phase 2 PKCE. - Wired into DuckDbStore.InitializeSchema alongside the existing Identity tables. Store (Storage/McpTokenStore.cs): - IMcpTokenStore + McpTokenStore against DuckDB. - Opaque token = 32 random bytes, base64url-encoded; only the SHA-256 hash is stored. The plaintext is returned to the client exactly once at mint time. - CreateAsync, GetByOpaqueTokenAsync (constant-time hash lookup, excludes revoked + expired rows), TouchLastUsedAsync, UpdateRefreshAsync, RevokeAsync, ListByUserAsync, ListByTenantAsync, CleanupExpiredAsync. - All writes go through DuckDbStore.ExecuteWriteAsync (two-arg lambda); all reads acquire a GetReadConnectionAsync lease. No string interpolation in SQL — separate methods per WHERE column to satisfy AL0111. Encryption (Auth/TokenEncryption.cs): - ITokenEncryption + AesGcmTokenEncryption. - AES-256-GCM with 12-byte nonce + 16-byte tag. Envelope format: nonce | tag | ciphertext (no separate columns, single BLOB). - Key from QYL_TOKEN_ENCRYPTION_KEY env var (base64-encoded 32 bytes). Fail-fast on construction if missing, malformed, or wrong length — with a generation hint ("openssl rand -base64 32"). Cleanup (Auth/McpTokenCleanupService.cs): - BackgroundService running every 5 min via PeriodicTimer (TimeProvider-driven). - Deletes tokens past refresh_expires_at OR revoked >7 days ago. - LoggerMessage partials at Information level for start + cleanup events, Error for failure (matches repo convention). DI (Hosting/CollectorAuthExtensions.cs): - AddSingleton(TimeProvider.System) for testable time. - Configure<TokenEncryptionOptions> from config[QYL_TOKEN_ENCRYPTION_KEY]. - AddSingleton<ITokenEncryption, AesGcmTokenEncryption>. - AddSingleton<IMcpTokenStore, McpTokenStore>. - AddHostedService<McpTokenCleanupService>. Tests (tests/qyl.collector.tests/Auth/TokenEncryptionTests.cs): - 8 unit tests, all passing: roundtrip, nondeterministic ciphertext, tampered ciphertext rejection, tampered auth-tag rejection, short-envelope rejection, missing-key/bad-base64/wrong-length construction failures. Build: 0 errors. Tests: 8/8 passing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ANcpLua
added a commit
that referenced
this pull request
May 25, 2026
…-GCM Keycloak refresh wrap Foundation for the Path C OAuth/remote-connector plan. The collector will mint opaque MCP tokens for clients (Claude Desktop, Cursor, etc.) and wrap encrypted Keycloak refresh tokens behind them, so the IdP token never crosses the wire to MCP clients. Future phases add the OAuth Authorization Code + PKCE flow (#33–#37), /mcp/{tenant} endpoint (#38–#41), legacy SSE dual-endpoint (#42), and Directory submission (#43–#45). Schema (Storage/DuckDbSchema.McpTokens.cs): - mcp_tokens(token_hash PK, user_id, tenant_id, scopes, encrypted_refresh, refresh_expires_at, created_at, last_used_at, revoked_at) + indexes on user_id, tenant_id, refresh_expires_at. - mcp_pkce_state(state PK, code_verifier, tenant_id, client_redirect_uri, nonce, created_at, expires_at) for Phase 2 PKCE. - Wired into DuckDbStore.InitializeSchema alongside the existing Identity tables. Store (Storage/McpTokenStore.cs): - IMcpTokenStore + McpTokenStore against DuckDB. - Opaque token = 32 random bytes, base64url-encoded; only the SHA-256 hash is stored. The plaintext is returned to the client exactly once at mint time. - CreateAsync, GetByOpaqueTokenAsync (constant-time hash lookup, excludes revoked + expired rows), TouchLastUsedAsync, UpdateRefreshAsync, RevokeAsync, ListByUserAsync, ListByTenantAsync, CleanupExpiredAsync. - All writes go through DuckDbStore.ExecuteWriteAsync (two-arg lambda); all reads acquire a GetReadConnectionAsync lease. No string interpolation in SQL — separate methods per WHERE column to satisfy AL0111. Encryption (Auth/TokenEncryption.cs): - ITokenEncryption + AesGcmTokenEncryption. - AES-256-GCM with 12-byte nonce + 16-byte tag. Envelope format: nonce | tag | ciphertext (no separate columns, single BLOB). - Key from QYL_TOKEN_ENCRYPTION_KEY env var (base64-encoded 32 bytes). Fail-fast on construction if missing, malformed, or wrong length — with a generation hint ("openssl rand -base64 32"). Cleanup (Auth/McpTokenCleanupService.cs): - BackgroundService running every 5 min via PeriodicTimer (TimeProvider-driven). - Deletes tokens past refresh_expires_at OR revoked >7 days ago. - LoggerMessage partials at Information level for start + cleanup events, Error for failure (matches repo convention). DI (Hosting/CollectorAuthExtensions.cs): - AddSingleton(TimeProvider.System) for testable time. - Configure<TokenEncryptionOptions> from config[QYL_TOKEN_ENCRYPTION_KEY]. - AddSingleton<ITokenEncryption, AesGcmTokenEncryption>. - AddSingleton<IMcpTokenStore, McpTokenStore>. - AddHostedService<McpTokenCleanupService>. Tests (tests/qyl.collector.tests/Auth/TokenEncryptionTests.cs): - 8 unit tests, all passing: roundtrip, nondeterministic ciphertext, tampered ciphertext rejection, tampered auth-tag rejection, short-envelope rejection, missing-key/bad-base64/wrong-length construction failures. Build: 0 errors. Tests: 8/8 passing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ANcpLua
added a commit
that referenced
this pull request
May 26, 2026
…370) * chore(qyl.mcp): destruction pass — drop Apps, dead tools, HTTP host, stdio-only Extends the established destruction trajectory (2026-04-20 Qyl.Agents.* triad, 2026-04-21 qyl://manifest, 2026-05-19 fluent-chain extraction). HTTP MCP hosting moves to qyl.collector under the Path C OAuth/remote-connector plan; qyl.mcp stays as a stdio NuGet tool for internal dev only. Deletions: - services/qyl.mcp/Apps/ entire tree (ErrorExplorer + QueryStudio + TraceExplorer) + QylSkillKind.Apps + McpAppsCapability + generator hardcoding + ErrorExplorerJsonContext - services/qyl.mcp/Tools/ArtifactTools.cs (no [QylSkill] → generator never emitted it; orphan AddCollectorToolClient<ArtifactTools>() at QylMcpServiceCollectionExtensions.cs:53) - services/qyl.mcp/Tools/GitHubMcpTools.cs (3 tools, zero repo-wide refs) - services/qyl.mcp/Tools/Intelligence/IntelligenceTools.cs (5 tools, unwired list→evaluate→suggest→execute pipeline, zero consumers) - services/qyl.mcp/Hosting/QylMcpHttpHost.cs, QylMcpLlmsTextBuilder.cs - services/qyl.mcp/Landing/ (HTTP landing page) - services/qyl.mcp/McpHostOptions.cs (HTTP-only config) + McpTransportMode enum - services/qyl.mcp/Dockerfile + railway.toml (no more HTTP deployment) - compose.yaml qyl-mcp service block; BuildInfra.cs qyl-mcp ImageSpecs entry - QylMcpServerRegistration ConfigureOAuth + JWT events + LoggerMessage partials, McpAuthRoles + QylAdminTools (empty FrozenSet — dead since inception), WithQylAdminFilter call (canonical 1.3.0 replacement is [Authorize] attribute) - qyl.mcp.csproj ModelContextProtocol.AspNetCore PackageReference Refactors: - Program.cs: single-line stdio dispatch (transport resolution removed) - QylMcpStdioHost: drop transport/hostOptions args from Configure - QylMcpServerRegistration: stdio-only, no OAuth/auth filters; transport tag hardcoded - ErrorFormatter + CollectorHelper: drop McpTransportMode param (always stdio now) - README: rewritten for stdio-only reality - internal/qyl.mcp.generators: drop "Apps" from ordinal lookup + label switch Build: 0 errors, 1 warning. Tests/Formatting/ErrorFormatterTests updated for new ErrorFormatter signature. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(qyl.mcp,qyl.loom): TaskSupport classifications + phantom-tool prompt cleanup TaskSupport mismatches against the CLAUDE.md guidance: - qyl.get_system_context (StorageHealthTools): Optional → Forbidden (default). CLAUDE.md explicitly lists get_system_context as a Forbidden example. - qyl.list_trace_logs (StructuredLogTools): Optional → Forbidden. CLAUDE.md "Fixed-scope tools skip coaching" rule. Phantom tool refs in agent prompts (tools referenced by name but never registered): - Agents/UseQylSystemPrompt.cs dropped 8 phantoms: claude_code_sessions, claude_code_timeline, claude_code_tools, list_console_logs, list_console_errors, list_build_failures, get_build_failure, search_build_failures. - services/qyl.loom/Autofix/LoomAutofixPrompts.cs: qyl.get_trace_details → get_trace_details (no qyl. prefix — the registered tool is from Traces/ GetTraceDetailsTool). Deleted the entire qyl.loom.autofix_setup_check prompt (referenced 4 phantom tools end-to-end: qyl.get_project_integrations, qyl.get_integration_scopes, qyl.derive_code_mappings, qyl.get_run_quota — better to delete the misleading prompt than half-fix it). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(qyl.collector): Phase 1 — DuckDB opaque MCP token store with AES-GCM Keycloak refresh wrap Foundation for the Path C OAuth/remote-connector plan. The collector will mint opaque MCP tokens for clients (Claude Desktop, Cursor, etc.) and wrap encrypted Keycloak refresh tokens behind them, so the IdP token never crosses the wire to MCP clients. Future phases add the OAuth Authorization Code + PKCE flow (#33–#37), /mcp/{tenant} endpoint (#38–#41), legacy SSE dual-endpoint (#42), and Directory submission (#43–#45). Schema (Storage/DuckDbSchema.McpTokens.cs): - mcp_tokens(token_hash PK, user_id, tenant_id, scopes, encrypted_refresh, refresh_expires_at, created_at, last_used_at, revoked_at) + indexes on user_id, tenant_id, refresh_expires_at. - mcp_pkce_state(state PK, code_verifier, tenant_id, client_redirect_uri, nonce, created_at, expires_at) for Phase 2 PKCE. - Wired into DuckDbStore.InitializeSchema alongside the existing Identity tables. Store (Storage/McpTokenStore.cs): - IMcpTokenStore + McpTokenStore against DuckDB. - Opaque token = 32 random bytes, base64url-encoded; only the SHA-256 hash is stored. The plaintext is returned to the client exactly once at mint time. - CreateAsync, GetByOpaqueTokenAsync (constant-time hash lookup, excludes revoked + expired rows), TouchLastUsedAsync, UpdateRefreshAsync, RevokeAsync, ListByUserAsync, ListByTenantAsync, CleanupExpiredAsync. - All writes go through DuckDbStore.ExecuteWriteAsync (two-arg lambda); all reads acquire a GetReadConnectionAsync lease. No string interpolation in SQL — separate methods per WHERE column to satisfy AL0111. Encryption (Auth/TokenEncryption.cs): - ITokenEncryption + AesGcmTokenEncryption. - AES-256-GCM with 12-byte nonce + 16-byte tag. Envelope format: nonce | tag | ciphertext (no separate columns, single BLOB). - Key from QYL_TOKEN_ENCRYPTION_KEY env var (base64-encoded 32 bytes). Fail-fast on construction if missing, malformed, or wrong length — with a generation hint ("openssl rand -base64 32"). Cleanup (Auth/McpTokenCleanupService.cs): - BackgroundService running every 5 min via PeriodicTimer (TimeProvider-driven). - Deletes tokens past refresh_expires_at OR revoked >7 days ago. - LoggerMessage partials at Information level for start + cleanup events, Error for failure (matches repo convention). DI (Hosting/CollectorAuthExtensions.cs): - AddSingleton(TimeProvider.System) for testable time. - Configure<TokenEncryptionOptions> from config[QYL_TOKEN_ENCRYPTION_KEY]. - AddSingleton<ITokenEncryption, AesGcmTokenEncryption>. - AddSingleton<IMcpTokenStore, McpTokenStore>. - AddHostedService<McpTokenCleanupService>. Tests (tests/qyl.collector.tests/Auth/TokenEncryptionTests.cs): - 8 unit tests, all passing: roundtrip, nondeterministic ciphertext, tampered ciphertext rejection, tampered auth-tag rejection, short-envelope rejection, missing-key/bad-base64/wrong-length construction failures. Build: 0 errors. Tests: 8/8 passing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(agents): pre-authorize the ANcpLua analyzer rule-ID migration in working tree Future agents (Claude Code, Codex, aider, Gemini CLI) hitting this repo with the analyzer migration applied to the working tree would otherwise read the 3-file diff in `.editorconfig` + `.globalconfig` + `Directory.Build.props` as a dirty state to clean up. That's wrong — the diff is an intentional migration waiting on the SDK side to ship the renamed rule IDs. This commit adds a prominent section at the top of AGENTS.md (above the existing `## ANcpLua.Agents consumption` section, so it's literally the first content an agent reads after the intro) that: - Tells agents the working-tree state is pre-authorized — they don't need to ask permission, don't need to revert, don't need to be cautious. - Explains the migration shape: AL0001-AL0027 (flat) → AL10xx quality, AL11xx forms, AL16xx packaging, AL17xx style/perf (4-tier semantic). - Lists the expected fallout (6 `AL0012` warnings on OtlpAttributes.cs) so agents can recognise it as steady-state noise instead of a regression. - Forbids the obvious wrong moves (revert, re-add AL00xx overrides, suppress with #pragma or [SuppressMessage], commit migration as part of another PR). - Lists the right moves (continue normal work, watch build output for AL1xxx warnings as the "SDK shipped" signal, commit the migration in its own PR when that signal appears). - Provides an emergency rollback path with explicit stash recovery instructions. The stash itself is local-only (`stash@{0}`), so this doc commits the *context* about it. When a future session sees the modified working tree, this section answers the "wtf is this" reaction before it becomes a wasted revert + restore cycle. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(qyl.collector): Phase 2A — KeycloakClient + PKCE state store Path C Phase 2 opens. Layers the OIDC discovery / token-exchange / revoke surface (KeycloakClient) and the single-use PKCE state store (PkceStateStore) onto Phase 1's foundation. Phases 2B-2E add /auth/* endpoints, refresh + revoke wiring, and Testcontainers.Keycloak integration tests on this base. PKCE state store (Storage/PkceStateStore.cs): - IPkceStateStore + PkceStateStore against DuckDB. - Uses Phase 1's mcp_pkce_state table (no migration needed). - StoreAsync writes (state, code_verifier, tenant_id, client_redirect_uri, nonce, ttl) via ExecuteWriteAsync (two-arg lambda) per repo discipline. - ConsumeAsync is atomic via DELETE ... RETURNING — a single statement prevents the TOCTOU race that SELECT-then-DELETE would create. Second call returns null; replay is impossible. Rows past expires_at are filtered in the WHERE clause and swept by CleanupExpiredAsync. Keycloak client (Auth/KeycloakClient.cs + Auth/KeycloakOptions.cs): - IKeycloakClient + KeycloakClient + NullKeycloakClient (null-impl returned from DI when Keycloak is unconfigured — makes /auth/* registration safe without an authority). - GetDiscoveryDocumentAsync hits {authority}/.well-known/openid-configuration with AOT-friendly JsonTypeInfo binding; result cached for KeycloakOptions.DiscoveryCacheDuration (default 1h) under a System.Threading.Lock. - InvalidateDiscoveryDocument forces a refetch — invoked when JWKS signature validation fails (the key may have rotated). - ExchangeAuthorizationCodeAsync / ExchangeRefreshTokenAsync (Phase 2C/2D surface, scaffolded here so the interface is stable from 2A onward). - RevokeRefreshTokenAsync (RFC 7009 best-effort — local revoke is the source of truth, upstream failures logged + swallowed). - KeycloakOptions binds from "Keycloak" config section plus env-var overrides (QYL_KEYCLOAK_AUTHORITY, _AUDIENCE, _CLIENT_ID, _CLIENT_SECRET, QYL_OAUTH_ALLOWED_REDIRECTS comma-separated). Cleanup extension (Auth/McpTokenCleanupService.cs): - Same BackgroundService now cleans BOTH mcp_tokens and mcp_pkce_state on the same 5-min PeriodicTimer (matches DoD: "Background cleanup deletes expired rows on the same PeriodicTimer as McpTokenCleanupService"). - New LoggerMessage at EventId=4 for PKCE deletions; existing token log renamed to LogTokensCleanedUp for clarity. DI (Hosting/CollectorAuthExtensions.cs): - Configure<KeycloakOptions> binds from config + env vars. - IPkceStateStore — always registered (no Keycloak dependency). - IKeycloakClient — KeycloakClient when authority set, otherwise NullKeycloakClient.Instance. Tests: - Auth/PkceStateStoreTests.cs (5/5 passing): roundtrip, single-use semantics, TTL expiration, missing-state null, cleanup-keeps-current. - Auth/KeycloakClientTests.cs (6/6 passing): full-field parse, well-known URL shape, cache hit within TTL, refetch after TTL, InvalidateDiscoveryDocument forces refetch, ctor throws on empty authority. - Auth/TestTimeProvider.cs — minimal TimeProvider stub. Avoids pulling Microsoft.Extensions.TimeProvider.Testing into the CPM pinning pass as a Phase-2A scope concern; can promote to FakeTimeProvider later. Build infra: - internal/qyl.mcp.generators/qyl.mcp.generators.csproj — added <Compile Remove> for the new Enumerator.cs in ANcpLua.Roslyn.Utilities.Sources 2.2.22 (mirrors the fixes already on qyl.instrumentation.generators and qyl.collector.storage.generators). Build: 0 errors. Tests: 19/19 Auth-suite tests passing (8 Phase 1 TokenEncryption + 5 PKCE + 6 Keycloak). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(deps): qyl cascade catch-up — SDK 3.4.35 / AL 2.0.0 / Roslyn.Utilities 2.2.22 / QYL semconv 3.0.0 After my published Stage C2/C3 work landed (ANcpLua.NET.Sdk 3.4.35 with AL 2.0.0 pin + bundled AL1xxx editorconfig; Qyl.OpenTelemetry.SemanticConventions 3.0.0 with banded QYL IDs; ANcpLua.Roslyn.Utilities 2.2.22), qyl needs the consumer-side migration to actually consume the new versions. Version bumps: - global.json — ANcpLua.NET.Sdk(/.Web/.Test) 3.4.33 → 3.4.35; ANcpLua.Roslyn.Utilities(/.Testing) 2.2.16 → 2.2.22 - Version.props — ANcpLuaAnalyzersVersion 1.29.1 → 2.0.0; ANcpLuaRoslynUtilitiesVersion 2.2.5 → 2.2.22 - Directory.Packages.props — Qyl.OpenTelemetry.SemanticConventions{, .Incubating, .SourceGeneration} 2.0.0 → 3.0.0 Generator csproj fixes (Roslyn.Utilities 2.2.22 source-only changes): - internal/qyl.instrumentation.generators — Exclude Enumerator.cs from Compile set (Sources 2.2.22 added it; needs IAsyncEnumerator<> which is netstandard2.1+; cheaper to exclude than pull Microsoft.Bcl.AsyncInterfaces); migrate GeneratorPipelineHelpers.cs to the new `RegisterCollectedEmitter` extension (the old SelectAndReportExceptions+AddSource chain no longer typechecks because AddSource lost its IncrementalValueProvider<ResultWithDiagnostics<T>> overload). - internal/qyl.collector.storage.generators — same Enumerator.cs exclusion. AL renumber consumer cleanups (AL0xxx no longer exists in AL 2.0.0): - internal/qyl.instrumentation/Instrumentation/Inventory/QylAgentActivityProcessor.cs AL0014: `agentName.Length == 0` → `agentName.Length is 0` (pattern style). - services/qyl.collector/Telemetry/QylLogEnricher.cs — parallel rule cleanups. - services/qyl.mcp/Tools/Debug/DebugTools.cs + services/qyl.mcp/Tools/RcaTools.cs — parallel rule cleanups. - Directory.Build.props + .editorconfig + .globalconfig — severity overrides re-mapped to AL1xxx + QYL3xxx IDs. After this: `dotnet build services/qyl.collector/qyl.collector.csproj -c Release` is clean (0 warnings, 0 errors) on the new cascade. Pairs with the Phase 2A commit (5ef4b4e) that wires the KeycloakClient extension + IPkceStateStore against AL 2.0.0's bundled editorconfig. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated Microsoft.Agents.AI.Hosting.A2A.AspNetCore from 1.0.0-preview.260128.1 to 1.0.0-preview.260209.1.
Release notes
Sourced from Microsoft.Agents.AI.Hosting.A2A.AspNetCore's releases.
1.0.0-preview.260209.1
What's Changed
Full Changelog: microsoft/agent-framework@dotnet-1.0.0-preview.260205.1...dotnet-1.0.0-preview.260209.1
1.0.0-preview.260205.1
What's Changed
Full Changelog: microsoft/agent-framework@dotnet-1.0.0-preview.260128.1...dotnet-1.0.0-preview.260205.1
Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)