Skip to content

Self-heal EventSourcingBehavior version drift + Lark mirror recovery runbook#503

Merged
eanzhao merged 7 commits intodevfrom
fix/2026-04-29_eventsourcing-version-drift-recovery
Apr 29, 2026
Merged

Self-heal EventSourcingBehavior version drift + Lark mirror recovery runbook#503
eanzhao merged 7 commits intodevfrom
fix/2026-04-29_eventsourcing-version-drift-recovery

Conversation

@eanzhao
Copy link
Copy Markdown
Contributor

@eanzhao eanzhao commented Apr 28, 2026

Closes #502

Summary

  • EventSourcingBehavior.ConfirmEventsAsync now catches EventStoreOptimisticConcurrencyException specifically and refreshes _currentVersion = ex.ActualVersion before rethrowing. The runtime envelope retry replays with versions recomputed from the refreshed baseline instead of wedging on the same conflict forever.
  • EventSourcingBehavior.ReplayAsync now treats GetVersionAsync(agentId) as the authoritative floor (_currentVersion = max(events[^1].Version, store_version)). When the events sorted set and the store's version key drift apart (interrupted Lua append, partial compaction, externally seeded store), the actor reactivates at the store-side version and makes forward progress instead of conflict-looping.
  • Adds 3 tests mirroring the prod scenarios: out-of-band store writes leaving the in-memory version stale, version-key-ahead-of-events drift after compaction, and the same drift with a snapshot present.
  • Adds POST /api/channels/registrations/repair-lark-mirror as the direct authenticated HTTP equivalent of the LLM-tool path channel_registrations action=repair_lark_mirror. Same INyxLarkProvisioningService.RepairLocalMirrorAsync under the hood — Nyx-side ownership verification, ChannelBotRegisterCommand dispatch — so recovery no longer requires a working NyxidChat agent or scope-bound chat session.
  • Adds docs/operations/2026-04-29-lark-mirror-recovery-runbook.md capturing the recovery procedure used during the 2026-04-28 incident, with the direct HTTP endpoint as the preferred path and the LLM tool kept as a fallback.

Why

Production silo on 2026-04-28 hit:

Event sourcing commit failed.
   agentId=projection.durable.scope:channel-bot-registration:channel-bot-registration-store
   eventType=ProjectionScopeWatermarkAdvancedEvent version=3
   errorType=EventStoreOptimisticConcurrencyException
   Optimistic concurrency conflict: expected 3, actual 4

Permanent loop — the projection scope's _currentVersion=3 while Garnet's version key was at 4 (events sorted set only contained 1–3, so ReplayAsync set _currentVersion = events[^1].Version = 3 instead of seeing the 4 from the version key). Every retry rebuilt the same stateEvents at the same expectedVersion and conflicted again. Recovery required manually deleting the three Garnet keys and restarting the silo.

Once the version drift was cleared, a separate problem surfaced: state.Registrations on channel-bot-registration-store was empty (lost during a prior ChannelRuntimeChannel.Runtime namespace migration cleanup), so the relay still 401'd. Recovering required calling the LLM tool channel_registrations action=repair_lark_mirror through aevatar-cli chat against a NyxidChat agent — which only worked because the operator happened to have the right scope already.

This PR closes both gaps:

  1. The runtime path (catch on conflict) and the activation path (Replay floor) self-heal version drift, so the same drift is invisible to operators on the next occurrence.
  2. The direct HTTP repair endpoint removes the operational dependency on a working LLM agent + chat session, so recovery is a single authenticated aevatar-cli api POST instead of a multi-step chat orchestration.

The runbook covers the full procedure end-to-end so the next operator hitting the symptom doesn't have to rediscover it.

Risks

  • State staleness when events.Count==0 but version key is ahead. The actor reactivates with empty/snapshot state at the store version. For idempotent projection scopes (the prod case here) this is the correct behavior — observations get re-delivered and the materializer reconverges. For domain GAgents with non-idempotent transitions, missing event replays could leave state inconsistent. Mitigation: this only triggers when events actually went missing from the store, which is already a corruption case where any choice loses information; surfacing as drift-recovered-state-with-correct-version is strictly better than wedge-forever-with-correct-state.
  • _pending is intentionally NOT cleared on conflict. The next retry re-stamps the same logical events with new versions computed from ex.ActualVersion. This preserves the existing "events raised during commit are kept for the next confirm" contract (covered by the existing ConfirmEventsAsync_WhenNewEventIsRaisedDuringAppend_ShouldKeepUncommittedSuffix test).
  • Log level downgrade for conflicts. Conflicts now log at Warning (with a self-heal-applied message) rather than Error. Other persistence failures still log at Error. If alerts/dashboards key on the previous error log, they'll need to update.
  • Repair endpoint scope-hijack vector. A successful mirror repair routes all subsequent relay traffic for the api-key into the requested scope, so a scope-mismatched repair would let an attacker hijack another tenant's relay flow. The endpoint enforces body.scope_id == JWT.scope_id (same check used by the existing register/rebuild endpoints) and a dedicated test (HandleRepairLarkMirrorAsync_RejectsScopeMismatch) pins this.

Test plan

  • dotnet build aevatar.slnx --nologo — succeeds, 0 errors.
  • dotnet test test/Aevatar.Foundation.Core.Tests/... — 170 tests pass (including 3 new EventSourcingBehavior drift tests).
  • dotnet test test/Aevatar.GAgents.ChannelRuntime.Tests/... — 711 tests pass (including 5 new repair-endpoint tests).
  • dotnet test test/Aevatar.Foundation.Runtime.Hosting.Tests/... (excluding integration/garnet/kafka) — 117 tests pass.
  • bash tools/ci/test_stability_guards.sh — passes.
  • bash tools/ci/architecture_guards.sh — all guards through workflow_binding_boundary_guard pass. playground_asset_drift_guard.sh fails locally (pre-existing environment issue: frontend node_modules not installed in this worktree, unrelated to this PR — no frontend files touched).
  • After merge + deploy, monitor for Event sourcing commit hit optimistic concurrency conflict; refreshing _currentVersion warnings — those indicate the self-heal is engaging in the wild and we should investigate the underlying drift source.
  • After merge + deploy, validate the repair endpoint end-to-end: delete the local Lark mirror in a non-prod env, hit POST /api/channels/registrations/repair-lark-mirror with the right body, confirm GET /api/channels/registrations shows the bot, send a Lark message, confirm the bot replies.

🤖 Generated with Claude Code

EventSourcingBehavior previously left _currentVersion stale in two
scenarios that surfaced together in prod (issue #502):

ConfirmEventsAsync — on EventStoreOptimisticConcurrencyException the
catch path only logged and rethrew. The runtime envelope retry policy
would replay the same observation, ConfirmEventsAsync would rebuild
stateEvents from the unchanged _currentVersion, and Garnet would
reject with the same expected-vs-actual conflict forever, wedging
the actor until a manual stream reset.

ReplayAsync — _currentVersion was set from events[^1].Version, so any
drift between the store's authoritative version key and the events
sorted set (interrupted Lua append, snapshot+compaction that wiped
events but left the version key, externally-seeded store) reactivated
the actor with a _currentVersion behind the store and every subsequent
commit hit the same permanent conflict.

The fix is two layers of defense:

ConfirmEventsAsync now catches EventStoreOptimisticConcurrencyException
specifically and refreshes _currentVersion to ex.ActualVersion before
rethrowing. _pending is left intact so the runtime retry replays the
same logical events with versions recomputed from the refreshed
baseline. State stays in its pre-commit shape; the next ReplayAsync
reconciles fully.

ReplayAsync now treats GetVersionAsync(agentId) as the authoritative
floor: _currentVersion = max(replayed_last_version, store_version).
When events are missing but the version key is ahead the actor
reactivates at the store version with empty/snapshot state and makes
forward progress instead of conflict-looping.

Adds three tests that mirror the prod scenarios — out-of-band store
writes that leave the in-memory version stale, version-key-ahead-of-
events drift after compaction, and the same drift with a snapshot
present.

Also adds docs/operations/2026-04-29-lark-mirror-recovery-runbook.md
capturing the recovery procedure used during the 2026-04-28 incident
(Nyx-side ID lookup via nyxid CLI, registration_id recovery from bot
label/api-key name prefixes, channel_registrations action=
repair_lark_mirror via NyxidChat agent) so the next operator hitting
the symptom doesn't have to rediscover it. Calls out specifically that
POST /api/channels/registrations is not idempotent and must not be
used as a recovery shortcut.

Refs: #502, #501

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 17f2305232

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/Aevatar.Foundation.Core/EventSourcing/EventSourcingBehavior.cs Outdated
Comment thread src/Aevatar.Foundation.Core/EventSourcing/EventSourcingBehavior.cs Outdated
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 28, 2026

Codecov Report

❌ Patch coverage is 97.50000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.64%. Comparing base (f792aa1) to head (5181140).
⚠️ Report is 8 commits behind head on dev.

Files with missing lines Patch % Lines
...ons/Persistence/EventStoreVersionDriftException.cs 90.90% 0 Missing and 1 partial ⚠️
...entSourcing/DefaultEventSourcingBehaviorFactory.cs 83.33% 0 Missing and 1 partial ⚠️
@@            Coverage Diff             @@
##              dev     #503      +/-   ##
==========================================
+ Coverage   71.62%   71.64%   +0.01%     
==========================================
  Files        1236     1237       +1     
  Lines       89573    89642      +69     
  Branches    11713    11720       +7     
==========================================
+ Hits        64158    64224      +66     
- Misses      20818    20820       +2     
- Partials     4597     4598       +1     
Flag Coverage Δ
ci 71.64% <97.50%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...dation.Core/EventSourcing/EventSourcingBehavior.cs 92.27% <100.00%> (+2.21%) ⬆️
....Core/EventSourcing/EventSourcingRuntimeOptions.cs 100.00% <100.00%> (ø)
...DependencyInjection/ServiceCollectionExtensions.cs 91.66% <100.00%> (+0.17%) ⬆️
...ons/Persistence/EventStoreVersionDriftException.cs 90.90% <90.90%> (ø)
...entSourcing/DefaultEventSourcingBehaviorFactory.cs 97.95% <83.33%> (+0.18%) ⬆️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Direct authenticated HTTP equivalent of the LLM-tool path
channel_registrations action=repair_lark_mirror, so recovery from a
missing local Lark mirror does not require a working NyxidChat agent or
a scope-bound chat session.

The handler reuses the same INyxLarkProvisioningService.RepairLocalMirrorAsync
the LLM tool calls — so Nyx-side ownership verification and the
ChannelBotRegisterCommand dispatch path are identical. Validation matches
existing endpoints: scope_id must equal the JWT scope_id claim if both
are provided, Authorization bearer is required (forwarded to Nyx for
api-key ownership checks), and Nyx-side failures map to the same status
codes used by POST /api/channels/registrations.

Tests cover the success path, missing nyx_channel_bot_id (400), missing
Authorization (401), Nyx-side failure (502), and scope-mismatch attempts
(400) — the last is important because a successful mirror repair routes
all subsequent relay traffic for the api-key into the local scope, so a
mismatched-scope repair is effectively a hijack vector.

Updates the recovery runbook to document the direct HTTP endpoint as the
preferred path with the LLM-tool path kept as a fallback.

Refs: #502

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread src/Aevatar.Foundation.Core/EventSourcing/EventSourcingBehavior.cs Outdated
@eanzhao
Copy link
Copy Markdown
Contributor Author

eanzhao commented Apr 29, 2026

LGTM ✅

代码审查结果:

EventSourcingBehavior版本漂移自愈

  1. ConfirmEventsAsync:正确捕获 并刷新 ,避免重试死锁
  2. ReplayAsync:使用 作为权威下限 ,正确处理事件集与版本键漂移
  3. Pending事件保留:冲突时保留 ,让运行时重试策略驱动恢复,符合现有契约

Lark镜像修复端点

  1. 端点设计: 作为LLM工具的直接HTTP等效,移除了对NyxidChat agent的依赖
  2. 安全验证:正确的scope_id匹配检查、bearer token验证、Nyx端资源验证
  3. 错误处理:合理的状态码映射(400/401/502)

验证结果

  • Determining projects to restore...
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.Tests/Aevatar.AI.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Bootstrap.Tests/Aevatar.Bootstrap.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/extensions/Aevatar.Workflow.Extensions.Hosting/Aevatar.Workflow.Extensions.Hosting.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Architecture.Tests/Aevatar.Architecture.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Integration.Tests/Aevatar.GAgentService.Integration.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.Configuration.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Core.Tests/Aevatar.Foundation.Core.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Abstractions/Aevatar.Interop.A2A.Abstractions.csproj : warning NU1510: PackageReference System.Text.Json will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Configuration.Binder will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Options.ConfigurationExtensions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Hosting.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Hosting/Aevatar.Interop.A2A.Hosting.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Local/Aevatar.Foundation.Runtime.Implementations.Local.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans/Aevatar.Foundation.Runtime.Implementations.Orleans.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Hosting/Aevatar.Foundation.Runtime.Hosting.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-mr8r-92fq-pj8p [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-q834-8qmm-v933 [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.Options will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Scripting.Core.Tests/Aevatar.Scripting.Core.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Cli/Aevatar.Demos.Cli.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Tests/Aevatar.GAgentService.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Integration.Tests/Aevatar.Integration.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-mr8r-92fq-pj8p [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-q834-8qmm-v933 [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Maker/Aevatar.Demos.Maker.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow/Aevatar.Demos.Workflow.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.VoicePresence.Tests/Aevatar.Foundation.VoicePresence.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.Hosting.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Mainnet.Host.Api/Aevatar.Mainnet.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap/Aevatar.Bootstrap.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow.Web/Aevatar.Demos.Workflow.Web.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.VoicePresence/Aevatar.Foundation.VoicePresence.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Runtime.Hosting.Tests/Aevatar.Foundation.Runtime.Hosting.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.Channel.Protocol.Tests/Aevatar.GAgents.Channel.Protocol.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime/Aevatar.Foundation.Runtime.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap.Extensions.AI/Aevatar.Bootstrap.Extensions.AI.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Hosting.Tests/Aevatar.Hosting.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.ChannelRuntime.Tests/Aevatar.GAgents.ChannelRuntime.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
    All projects are up-to-date for restore.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Configuration.Binder will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Options.ConfigurationExtensions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Hosting.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    Aevatar.Foundation.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Abstractions/bin/Debug/net10.0/Aevatar.Foundation.Abstractions.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.Options will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.Hosting.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Cli/Aevatar.Demos.Cli.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.Configuration.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    Aevatar.CQRS.Projection.Stores.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Projection.Stores.Abstractions/bin/Debug/net10.0/Aevatar.CQRS.Projection.Stores.Abstractions.dll
    Aevatar.CQRS.Core.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Core.Abstractions/bin/Debug/net10.0/Aevatar.CQRS.Core.Abstractions.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Maker/Aevatar.Demos.Maker.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow/Aevatar.Demos.Workflow.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.Foundation.Core -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Core/bin/Debug/net10.0/Aevatar.Foundation.Core.dll
    Aevatar.Foundation.VoicePresence.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.VoicePresence.Abstractions/bin/Debug/net10.0/Aevatar.Foundation.VoicePresence.Abstractions.dll
    Aevatar.AI.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.Abstractions/bin/Debug/net10.0/Aevatar.AI.Abstractions.dll
    Aevatar.Configuration -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Configuration/bin/Debug/net10.0/Aevatar.Configuration.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow.Web/Aevatar.Demos.Workflow.Web.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.Foundation.Projection -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Projection/bin/Debug/net10.0/Aevatar.Foundation.Projection.dll
    Aevatar.GAgents.Registry -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Registry/bin/Debug/net10.0/Aevatar.GAgents.Registry.dll
    Aevatar.Workflow.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Abstractions/bin/Debug/net10.0/Aevatar.Workflow.Abstractions.dll
    Aevatar.Hosting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Hosting/bin/Debug/net10.0/Aevatar.Hosting.dll
    Aevatar.GAgents.StudioMember -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StudioMember/bin/Debug/net10.0/Aevatar.GAgents.StudioMember.dll
    Aevatar.Presentation.AGUI -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Presentation.AGUI/bin/Debug/net10.0/Aevatar.Presentation.AGUI.dll
    Aevatar.GAgents.StreamingProxyParticipant -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxyParticipant/bin/Debug/net10.0/Aevatar.GAgents.StreamingProxyParticipant.dll
    Aevatar.Workflow.Application.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Application.Abstractions/bin/Debug/net10.0/Aevatar.Workflow.Application.Abstractions.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Hosting/Aevatar.Foundation.Runtime.Hosting.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime/Aevatar.Foundation.Runtime.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.GAgents.UserMemory -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.UserMemory/bin/Debug/net10.0/Aevatar.GAgents.UserMemory.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans/Aevatar.Foundation.Runtime.Implementations.Orleans.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Local/Aevatar.Foundation.Runtime.Implementations.Local.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.GAgents.UserConfig -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.UserConfig/bin/Debug/net10.0/Aevatar.GAgents.UserConfig.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.GAgents.ChatHistory -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.ChatHistory/bin/Debug/net10.0/Aevatar.GAgents.ChatHistory.dll
    Aevatar.CQRS.Projection.Core.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Projection.Core.Abstractions/bin/Debug/net10.0/Aevatar.CQRS.Projection.Core.Abstractions.dll
    Aevatar.GAgents.ConnectorCatalog -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.ConnectorCatalog/bin/Debug/net10.0/Aevatar.GAgents.ConnectorCatalog.dll
    Aevatar.AI.LLMProviders.MEAI -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.LLMProviders.MEAI/bin/Debug/net10.0/Aevatar.AI.LLMProviders.MEAI.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/extensions/Aevatar.Workflow.Extensions.Hosting/Aevatar.Workflow.Extensions.Hosting.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.Foundation.Runtime -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime/bin/Debug/net10.0/Aevatar.Foundation.Runtime.dll
    Aevatar.Scripting.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Scripting.Abstractions/bin/Debug/net10.0/Aevatar.Scripting.Abstractions.dll
    Aevatar.AI.ToolProviders.Skills -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.Skills/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Skills.dll
    Aevatar.GAgents.RoleCatalog -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.RoleCatalog/bin/Debug/net10.0/Aevatar.GAgents.RoleCatalog.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.VoicePresence/Aevatar.Foundation.VoicePresence.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    Aevatar.Foundation.Runtime.Implementations.Orleans.Streaming -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans.Streaming/bin/Debug/net10.0/Aevatar.Foundation.Runtime.Implementations.Orleans.Streaming.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Abstractions/Aevatar.Interop.A2A.Abstractions.csproj : warning NU1510: PackageReference System.Text.Json will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    Aevatar.GAgentService.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Abstractions/bin/Debug/net10.0/Aevatar.GAgentService.Abstractions.dll
    Aevatar.AI.ToolProviders.MCP -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.MCP/bin/Debug/net10.0/Aevatar.AI.ToolProviders.MCP.dll
    Aevatar.Foundation.VoicePresence.OpenAI -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.VoicePresence.OpenAI/bin/Debug/net10.0/Aevatar.Foundation.VoicePresence.OpenAI.dll
    Aevatar.AI.ToolProviders.NyxId -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.NyxId/bin/Debug/net10.0/Aevatar.AI.ToolProviders.NyxId.dll
    Aevatar.Interop.A2A.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Abstractions/bin/Debug/net10.0/Aevatar.Interop.A2A.Abstractions.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap.Extensions.AI/Aevatar.Bootstrap.Extensions.AI.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.AI.LLMProviders.NyxId -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.LLMProviders.NyxId/bin/Debug/net10.0/Aevatar.AI.LLMProviders.NyxId.dll
    Aevatar.Foundation.VoicePresence -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.VoicePresence/bin/Debug/net10.0/Aevatar.Foundation.VoicePresence.dll
    Aevatar.CQRS.Core -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Core/bin/Debug/net10.0/Aevatar.CQRS.Core.dll
    Aevatar.Foundation.ExternalLinks.WebSocket -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.ExternalLinks.WebSocket/bin/Debug/net10.0/Aevatar.Foundation.ExternalLinks.WebSocket.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Hosting/Aevatar.Interop.A2A.Hosting.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    Aevatar.Studio.Domain -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Studio.Domain/bin/Debug/net10.0/Aevatar.Studio.Domain.dll
    Aevatar.CQRS.Projection.Runtime.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Projection.Runtime.Abstractions/bin/Debug/net10.0/Aevatar.CQRS.Projection.Runtime.Abstractions.dll
    Aevatar.Foundation.Runtime.Implementations.Local -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Local/bin/Debug/net10.0/Aevatar.Foundation.Runtime.Implementations.Local.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Mainnet.Host.Api/Aevatar.Mainnet.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.Authentication.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Authentication.Abstractions/bin/Debug/net10.0/Aevatar.Authentication.Abstractions.dll
    Aevatar.AI.Core -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.Core/bin/Debug/net10.0/Aevatar.AI.Core.dll
    Aevatar.CQRS.Projection.Providers.Neo4j -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Projection.Providers.Neo4j/bin/Debug/net10.0/Aevatar.CQRS.Projection.Providers.Neo4j.dll
    Aevatar.AI.LLMProviders.Tornado -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.LLMProviders.Tornado/bin/Debug/net10.0/Aevatar.AI.LLMProviders.Tornado.dll
    Aevatar.Foundation.VoicePresence.MiniCPM -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.VoicePresence.MiniCPM/bin/Debug/net10.0/Aevatar.Foundation.VoicePresence.MiniCPM.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap/Aevatar.Bootstrap.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.Workflow.Sdk -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Sdk/bin/Debug/net10.0/Aevatar.Workflow.Sdk.dll
    Aevatar.CQRS.Projection.Providers.Elasticsearch -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Projection.Providers.Elasticsearch/bin/Debug/net10.0/Aevatar.CQRS.Projection.Providers.Elasticsearch.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.Tests/Aevatar.AI.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    Aevatar.CQRS.Projection.Runtime -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Projection.Runtime/bin/Debug/net10.0/Aevatar.CQRS.Projection.Runtime.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-mr8r-92fq-pj8p
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-q834-8qmm-v933
    Aevatar.Foundation.Runtime.Persistence.Implementations.Garnet -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Persistence.Implementations.Garnet/bin/Debug/net10.0/Aevatar.Foundation.Runtime.Persistence.Implementations.Garnet.dll
    Aevatar.CQRS.Projection.Providers.InMemory -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Projection.Providers.InMemory/bin/Debug/net10.0/Aevatar.CQRS.Projection.Providers.InMemory.dll
    Aevatar.Workflow.Core -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Core/bin/Debug/net10.0/Aevatar.Workflow.Core.dll
    Aevatar.Demos.Cli -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Cli/bin/Debug/net10.0/Aevatar.Demos.Cli.dll
    Aevatar.AI.ToolProviders.Workflow -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.Workflow/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Workflow.dll
    Aevatar.AI.Projection -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.Projection/bin/Debug/net10.0/Aevatar.AI.Projection.dll
    Aevatar.AI.ToolProviders.Ornn -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.Ornn/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Ornn.dll
    Aevatar.Workflow.Extensions.Maker -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/extensions/Aevatar.Workflow.Extensions.Maker/bin/Debug/net10.0/Aevatar.Workflow.Extensions.Maker.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Bootstrap.Tests/Aevatar.Bootstrap.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Architecture.Tests/Aevatar.Architecture.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Runtime.Hosting.Tests/Aevatar.Foundation.Runtime.Hosting.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.AI.ToolProviders.Lark -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.Lark/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Lark.dll
    Aevatar.GAgentService.Governance.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Governance.Abstractions/bin/Debug/net10.0/Aevatar.GAgentService.Governance.Abstractions.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Core.Tests/Aevatar.Foundation.Core.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.Workflow.Application -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Application/bin/Debug/net10.0/Aevatar.Workflow.Application.dll
    Aevatar.Authentication.Providers.NyxId -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Authentication.Providers.NyxId/bin/Debug/net10.0/Aevatar.Authentication.Providers.NyxId.dll
    Aevatar.AI.ToolProviders.Telegram -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.Telegram/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Telegram.dll
    Aevatar.AI.ToolProviders.ServiceInvoke -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.ServiceInvoke/bin/Debug/net10.0/Aevatar.AI.ToolProviders.ServiceInvoke.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.VoicePresence.Tests/Aevatar.Foundation.VoicePresence.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    Aevatar.AI.ToolProviders.Scripting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.Scripting/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Scripting.dll
    Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider/bin/Debug/net10.0/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.Channel.Protocol.Tests/Aevatar.GAgents.Channel.Protocol.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.Scripting.Core -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Scripting.Core/bin/Debug/net10.0/Aevatar.Scripting.Core.dll
    Aevatar.GAgents.StudioTeam -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StudioTeam/bin/Debug/net10.0/Aevatar.GAgents.StudioTeam.dll
    Aevatar.Authentication.Hosting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Authentication.Hosting/bin/Debug/net10.0/Aevatar.Authentication.Hosting.dll
    Aevatar.CQRS.Projection.Core -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.CQRS.Projection.Core/bin/Debug/net10.0/Aevatar.CQRS.Projection.Core.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.ChannelRuntime.Tests/Aevatar.GAgents.ChannelRuntime.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
    Aevatar.Workflow.Extensions.Bridge -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/extensions/Aevatar.Workflow.Extensions.Bridge/bin/Debug/net10.0/Aevatar.Workflow.Extensions.Bridge.dll
    Aevatar.AI.ToolProviders.Web -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.Web/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Web.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Integration.Tests/Aevatar.GAgentService.Integration.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.AI.ToolProviders.Binding -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.Binding/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Binding.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Tests/Aevatar.GAgentService.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.GAgentService.Core -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Core/bin/Debug/net10.0/Aevatar.GAgentService.Core.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Hosting.Tests/Aevatar.Hosting.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Scripting.Core.Tests/Aevatar.Scripting.Core.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.GAgents.ChatbotClassifier -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.ChatbotClassifier/bin/Debug/net10.0/Aevatar.GAgents.ChatbotClassifier.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Integration.Tests/Aevatar.Integration.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    Aevatar.GAgents.Household -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Household/bin/Debug/net10.0/Aevatar.GAgents.Household.dll
    Aevatar.AI.ToolProviders.ChronoStorage -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.ChronoStorage/bin/Debug/net10.0/Aevatar.AI.ToolProviders.ChronoStorage.dll
    Aevatar.GAgentService.Governance.Core -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Governance.Core/bin/Debug/net10.0/Aevatar.GAgentService.Governance.Core.dll
    Aevatar.GAgentService.Governance.Application -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Governance.Application/bin/Debug/net10.0/Aevatar.GAgentService.Governance.Application.dll
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-mr8r-92fq-pj8p
    /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-q834-8qmm-v933
    Aevatar.Foundation.Runtime.Implementations.Orleans -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans/bin/Debug/net10.0/Aevatar.Foundation.Runtime.Implementations.Orleans.dll
    Aevatar.GAgentService.Infrastructure -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Infrastructure/bin/Debug/net10.0/Aevatar.GAgentService.Infrastructure.dll
    Aevatar.AI.Infrastructure.Local -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.Infrastructure.Local/bin/Debug/net10.0/Aevatar.AI.Infrastructure.Local.dll
    Aevatar.GAgents.Channel.Abstractions -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Channel.Abstractions/bin/Debug/net10.0/Aevatar.GAgents.Channel.Abstractions.dll
    Aevatar.Scripting.Application -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Scripting.Application/bin/Debug/net10.0/Aevatar.Scripting.Application.dll
    Aevatar.Interop.A2A.Application -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Application/bin/Debug/net10.0/Aevatar.Interop.A2A.Application.dll
    Aevatar.Foundation.Runtime.Hosting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Hosting/bin/Debug/net10.0/Aevatar.Foundation.Runtime.Hosting.dll
    Aevatar.GAgentService.Projection -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Projection/bin/Debug/net10.0/Aevatar.GAgentService.Projection.dll
    Aevatar.Foundation.VoicePresence.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.VoicePresence.Tests/bin/Debug/net10.0/Aevatar.Foundation.VoicePresence.Tests.dll
    Aevatar.GAgents.Channel.Testing -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.Channel.Testing/bin/Debug/net10.0/Aevatar.GAgents.Channel.Testing.dll
    Aevatar.Foundation.VoicePresence.OpenAI.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.VoicePresence.OpenAI.Tests/bin/Debug/net10.0/Aevatar.Foundation.VoicePresence.OpenAI.Tests.dll
    Aevatar.Foundation.Core.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Core.Tests/bin/Debug/net10.0/Aevatar.Foundation.Core.Tests.dll
    Aevatar.AI.ToolProviders.Workflow.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.ToolProviders.Workflow.Tests/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Workflow.Tests.dll
    Aevatar.GAgents.Household.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.Household.Tests/bin/Debug/net10.0/Aevatar.GAgents.Household.Tests.dll
    Aevatar.AI.Core.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.Core.Tests/bin/Debug/net10.0/Aevatar.AI.Core.Tests.dll
    Aevatar.Foundation.Abstractions.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Abstractions.Tests/bin/Debug/net10.0/Aevatar.Foundation.Abstractions.Tests.dll
    Aevatar.Workflow.Extensions.Maker.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Extensions.Maker.Tests/bin/Debug/net10.0/Aevatar.Workflow.Extensions.Maker.Tests.dll
    Aevatar.Workflow.Projection -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Projection/bin/Debug/net10.0/Aevatar.Workflow.Projection.dll
    Aevatar.Workflow.Core.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Core.Tests/bin/Debug/net10.0/Aevatar.Workflow.Core.Tests.dll
    Aevatar.Foundation.VoicePresence.MiniCPM.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.VoicePresence.MiniCPM.Tests/bin/Debug/net10.0/Aevatar.Foundation.VoicePresence.MiniCPM.Tests.dll
    Aevatar.AI.ToolProviders.Binding.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.ToolProviders.Binding.Tests/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Binding.Tests.dll
    Aevatar.CQRS.Core.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.CQRS.Core.Tests/bin/Debug/net10.0/Aevatar.CQRS.Core.Tests.dll
    Aevatar.Scripting.Infrastructure -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Scripting.Infrastructure/bin/Debug/net10.0/Aevatar.Scripting.Infrastructure.dll
    Aevatar.AI.ToolProviders.ServiceInvoke.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.ToolProviders.ServiceInvoke.Tests/bin/Debug/net10.0/Aevatar.AI.ToolProviders.ServiceInvoke.Tests.dll
    Aevatar.GAgents.Platform.Telegram -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/platforms/Aevatar.GAgents.Platform.Telegram/bin/Debug/net10.0/Aevatar.GAgents.Platform.Telegram.dll
    Aevatar.AI.Infrastructure.Local.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.Infrastructure.Local.Tests/bin/Debug/net10.0/Aevatar.AI.Infrastructure.Local.Tests.dll
    Aevatar.AI.ToolProviders.Channel -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.Channel/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Channel.dll
    Aevatar.GAgents.Channel.Runtime -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Channel.Runtime/bin/Debug/net10.0/Aevatar.GAgents.Channel.Runtime.dll
    Aevatar.AI.ToolProviders.Telegram.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.ToolProviders.Telegram.Tests/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Telegram.Tests.dll
    Aevatar.Bootstrap -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap/bin/Debug/net10.0/Aevatar.Bootstrap.dll
    Aevatar.Tools.Config -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/tools/Aevatar.Tools.Config/bin/Debug/net10.0/Aevatar.Tools.Config.dll
    Aevatar.GAgents.Platform.Lark -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/platforms/Aevatar.GAgents.Platform.Lark/bin/Debug/net10.0/Aevatar.GAgents.Platform.Lark.dll
    Aevatar.GAgents.Device -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/bin/Debug/net10.0/Aevatar.GAgents.Device.dll
    Aevatar.GAgentService.Governance.Infrastructure -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Governance.Infrastructure/bin/Debug/net10.0/Aevatar.GAgentService.Governance.Infrastructure.dll
    Aevatar.Workflow.Presentation.AGUIAdapter -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Presentation.AGUIAdapter/bin/Debug/net10.0/Aevatar.Workflow.Presentation.AGUIAdapter.dll
    Aevatar.Demos.Maker -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Maker/bin/Debug/net10.0/Aevatar.Demos.Maker.dll
    Aevatar.GAgents.Scheduled -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Scheduled/bin/Debug/net10.0/Aevatar.GAgents.Scheduled.dll
    Aevatar.GAgentService.Governance.Projection -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Governance.Projection/bin/Debug/net10.0/Aevatar.GAgentService.Governance.Projection.dll
    Aevatar.Workflow.Infrastructure -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Infrastructure/bin/Debug/net10.0/Aevatar.Workflow.Infrastructure.dll
    Aevatar.Scripting.Projection -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Scripting.Projection/bin/Debug/net10.0/Aevatar.Scripting.Projection.dll
    Aevatar.AI.ToolProviders.AgentCatalog -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.AgentCatalog/bin/Debug/net10.0/Aevatar.AI.ToolProviders.AgentCatalog.dll
    Aevatar.Workflow.Sdk.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Sdk.Tests/bin/Debug/net10.0/Aevatar.Workflow.Sdk.Tests.dll
    Aevatar.Interop.A2A.Hosting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Hosting/bin/Debug/net10.0/Aevatar.Interop.A2A.Hosting.dll
    Aevatar.GAgents.Platform.Telegram.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.Platform.Telegram.Tests/bin/Debug/net10.0/Aevatar.GAgents.Platform.Telegram.Tests.dll
    Aevatar.GAgents.Channel.NyxIdRelay -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/bin/Debug/net10.0/Aevatar.GAgents.Channel.NyxIdRelay.dll
    Aevatar.AI.ToolProviders.Lark.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.ToolProviders.Lark.Tests/bin/Debug/net10.0/Aevatar.AI.ToolProviders.Lark.Tests.dll
    Aevatar.Interop.A2A.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Interop.A2A.Tests/bin/Debug/net10.0/Aevatar.Interop.A2A.Tests.dll
    Aevatar.Workflow.Application.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Application.Tests/bin/Debug/net10.0/Aevatar.Workflow.Application.Tests.dll
    Aevatar.AI.ToolProviders.ChannelAdmin -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.AI.ToolProviders.ChannelAdmin/bin/Debug/net10.0/Aevatar.AI.ToolProviders.ChannelAdmin.dll
    Aevatar.Foundation.Runtime.Hosting.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Runtime.Hosting.Tests/bin/Debug/net10.0/Aevatar.Foundation.Runtime.Hosting.Tests.dll
    Aevatar.GAgents.Platform.Lark.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.Platform.Lark.Tests/bin/Debug/net10.0/Aevatar.GAgents.Platform.Lark.Tests.dll
    Aevatar.CQRS.Projection.Core.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.CQRS.Projection.Core.Tests/bin/Debug/net10.0/Aevatar.CQRS.Projection.Core.Tests.dll
    Aevatar.GAgentService.Governance.Hosting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Governance.Hosting/bin/Debug/net10.0/Aevatar.GAgentService.Governance.Hosting.dll
    Aevatar.Tools.Cli -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/tools/Aevatar.Tools.Cli/bin/Debug/net10.0/Aevatar.Tools.Cli.dll
    Aevatar.GAgents.Channel.Protocol.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.Channel.Protocol.Tests/bin/Debug/net10.0/Aevatar.GAgents.Channel.Protocol.Tests.dll
    Aevatar.Bootstrap.Extensions.AI -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap.Extensions.AI/bin/Debug/net10.0/Aevatar.Bootstrap.Extensions.AI.dll
    Aevatar.Scripting.Hosting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Scripting.Hosting/bin/Debug/net10.0/Aevatar.Scripting.Hosting.dll
    Aevatar.Demos.Workflow -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow/bin/Debug/net10.0/Aevatar.Demos.Workflow.dll
    Aevatar.Workflow.Extensions.Hosting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/extensions/Aevatar.Workflow.Extensions.Hosting/bin/Debug/net10.0/Aevatar.Workflow.Extensions.Hosting.dll
    Aevatar.Studio.Application -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Studio.Application/bin/Debug/net10.0/Aevatar.Studio.Application.dll
    Aevatar.Scripting.Core.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Scripting.Core.Tests/bin/Debug/net10.0/Aevatar.Scripting.Core.Tests.dll
    Aevatar.Bootstrap.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Bootstrap.Tests/bin/Debug/net10.0/Aevatar.Bootstrap.Tests.dll
    Aevatar.Integration.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Integration.Tests/bin/Debug/net10.0/Aevatar.Integration.Tests.dll
    Aevatar.GAgentService.Application -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Application/bin/Debug/net10.0/Aevatar.GAgentService.Application.dll
    Aevatar.GAgents.StreamingProxy -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/bin/Debug/net10.0/Aevatar.GAgents.StreamingProxy.dll
    Aevatar.GAgents.Authoring.Lark -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Authoring.Lark/bin/Debug/net10.0/Aevatar.GAgents.Authoring.Lark.dll
    Aevatar.Demos.Workflow.Web -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow.Web/bin/Debug/net10.0/Aevatar.Demos.Workflow.Web.dll
    Aevatar.Studio.Projection -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Studio.Projection/bin/Debug/net10.0/Aevatar.Studio.Projection.dll
    Aevatar.Workflow.Host.Api -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/bin/Debug/net10.0/Aevatar.Workflow.Host.Api.dll
    Aevatar.GAgentService.Hosting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/platform/Aevatar.GAgentService.Hosting/bin/Debug/net10.0/Aevatar.GAgentService.Hosting.dll
    Aevatar.Studio.Infrastructure -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Studio.Infrastructure/bin/Debug/net10.0/Aevatar.Studio.Infrastructure.dll
    Aevatar.Studio.Hosting -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Studio.Hosting/bin/Debug/net10.0/Aevatar.Studio.Hosting.dll
    Aevatar.GAgents.NyxidChat -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/bin/Debug/net10.0/Aevatar.GAgents.NyxidChat.dll
    Aevatar.Workflow.Host.Api.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/bin/Debug/net10.0/Aevatar.Workflow.Host.Api.Tests.dll
    Aevatar.Architecture.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Architecture.Tests/bin/Debug/net10.0/Aevatar.Architecture.Tests.dll
    Aevatar.GAgentService.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Tests/bin/Debug/net10.0/Aevatar.GAgentService.Tests.dll
    Aevatar.Tools.Cli.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Tools.Cli.Tests/bin/Debug/net10.0/Aevatar.Tools.Cli.Tests.dll
    Aevatar.AI.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.Tests/bin/Debug/net10.0/Aevatar.AI.Tests.dll
    Aevatar.Studio.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Studio.Tests/bin/Debug/net10.0/Aevatar.Studio.Tests.dll
    Aevatar.GAgents.ChannelRuntime.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.ChannelRuntime.Tests/bin/Debug/net10.0/Aevatar.GAgents.ChannelRuntime.Tests.dll
    Aevatar.Mainnet.Host.Api -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Mainnet.Host.Api/bin/Debug/net10.0/Aevatar.Mainnet.Host.Api.dll
    Aevatar.GAgentService.Integration.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Integration.Tests/bin/Debug/net10.0/Aevatar.GAgentService.Integration.Tests.dll
    Aevatar.Hosting.Tests -> /Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Hosting.Tests/bin/Debug/net10.0/Aevatar.Hosting.Tests.dll

Build succeeded.

/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.Tests/Aevatar.AI.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Bootstrap.Tests/Aevatar.Bootstrap.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/extensions/Aevatar.Workflow.Extensions.Hosting/Aevatar.Workflow.Extensions.Hosting.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Architecture.Tests/Aevatar.Architecture.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Integration.Tests/Aevatar.GAgentService.Integration.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.Configuration.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Core.Tests/Aevatar.Foundation.Core.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Abstractions/Aevatar.Interop.A2A.Abstractions.csproj : warning NU1510: PackageReference System.Text.Json will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Configuration.Binder will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Options.ConfigurationExtensions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Hosting.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Hosting/Aevatar.Interop.A2A.Hosting.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Local/Aevatar.Foundation.Runtime.Implementations.Local.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans/Aevatar.Foundation.Runtime.Implementations.Orleans.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Hosting/Aevatar.Foundation.Runtime.Hosting.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-mr8r-92fq-pj8p [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-q834-8qmm-v933 [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.Options will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Scripting.Core.Tests/Aevatar.Scripting.Core.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Cli/Aevatar.Demos.Cli.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Tests/Aevatar.GAgentService.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Integration.Tests/Aevatar.Integration.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-mr8r-92fq-pj8p [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-q834-8qmm-v933 [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Maker/Aevatar.Demos.Maker.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow/Aevatar.Demos.Workflow.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.VoicePresence.Tests/Aevatar.Foundation.VoicePresence.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.Hosting.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Mainnet.Host.Api/Aevatar.Mainnet.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap/Aevatar.Bootstrap.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow.Web/Aevatar.Demos.Workflow.Web.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.VoicePresence/Aevatar.Foundation.VoicePresence.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Runtime.Hosting.Tests/Aevatar.Foundation.Runtime.Hosting.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.Channel.Protocol.Tests/Aevatar.GAgents.Channel.Protocol.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime/Aevatar.Foundation.Runtime.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap.Extensions.AI/Aevatar.Bootstrap.Extensions.AI.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Hosting.Tests/Aevatar.Hosting.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.ChannelRuntime.Tests/Aevatar.GAgents.ChannelRuntime.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary. [/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/aevatar.slnx]
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Configuration.Binder will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Options.ConfigurationExtensions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Hosting.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.Device/Aevatar.GAgents.Device.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.NyxidChat/Aevatar.GAgents.NyxidChat.csproj : warning NU1510: PackageReference Microsoft.Extensions.Options will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.Hosting.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/channels/Aevatar.GAgents.Channel.NyxIdRelay/Aevatar.GAgents.Channel.NyxIdRelay.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Cli/Aevatar.Demos.Cli.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.Configuration.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/agents/Aevatar.GAgents.StreamingProxy/Aevatar.GAgents.StreamingProxy.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Maker/Aevatar.Demos.Maker.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow/Aevatar.Demos.Workflow.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/demos/Aevatar.Demos.Workflow.Web/Aevatar.Demos.Workflow.Web.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Hosting/Aevatar.Foundation.Runtime.Hosting.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime/Aevatar.Foundation.Runtime.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans/Aevatar.Foundation.Runtime.Implementations.Orleans.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Local/Aevatar.Foundation.Runtime.Implementations.Local.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider/Aevatar.Foundation.Runtime.Implementations.Orleans.Transport.KafkaProvider.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/extensions/Aevatar.Workflow.Extensions.Hosting/Aevatar.Workflow.Extensions.Hosting.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Foundation.VoicePresence/Aevatar.Foundation.VoicePresence.csproj : warning NU1510: PackageReference Microsoft.Extensions.Logging.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Abstractions/Aevatar.Interop.A2A.Abstractions.csproj : warning NU1510: PackageReference System.Text.Json will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap.Extensions.AI/Aevatar.Bootstrap.Extensions.AI.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Interop.A2A.Hosting/Aevatar.Interop.A2A.Hosting.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection.Abstractions will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Mainnet.Host.Api/Aevatar.Mainnet.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/Aevatar.Bootstrap/Aevatar.Bootstrap.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.AI.Tests/Aevatar.AI.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-mr8r-92fq-pj8p
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/src/workflow/Aevatar.Workflow.Host.Api/Aevatar.Workflow.Host.Api.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-q834-8qmm-v933
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Bootstrap.Tests/Aevatar.Bootstrap.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Architecture.Tests/Aevatar.Architecture.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Runtime.Hosting.Tests/Aevatar.Foundation.Runtime.Hosting.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.Core.Tests/Aevatar.Foundation.Core.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Foundation.VoicePresence.Tests/Aevatar.Foundation.VoicePresence.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.Channel.Protocol.Tests/Aevatar.GAgents.Channel.Protocol.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgents.ChannelRuntime.Tests/Aevatar.GAgents.ChannelRuntime.Tests.csproj : warning NU1510: PackageReference Microsoft.Extensions.DependencyInjection will not be pruned. Consider removing this package from your dependencies, as it is likely unnecessary.
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Integration.Tests/Aevatar.GAgentService.Integration.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.GAgentService.Tests/Aevatar.GAgentService.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Hosting.Tests/Aevatar.Hosting.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Scripting.Core.Tests/Aevatar.Scripting.Core.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Integration.Tests/Aevatar.Integration.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Api' 1.15.0 has a known moderate severity vulnerability, GHSA-g94r-2vxg-569j
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-mr8r-92fq-pj8p
/Users/chronoai/.paseo/worktrees/32qtkk8z/feeble-chipmunk/test/Aevatar.Workflow.Host.Api.Tests/Aevatar.Workflow.Host.Api.Tests.csproj : warning NU1902: Package 'OpenTelemetry.Exporter.OpenTelemetryProtocol' 1.15.0 has a known moderate severity vulnerability, GHSA-q834-8qmm-v933
98 Warning(s)
0 Error(s)

Time Elapsed 00:00:13.05 ✅ 0 errors

  • MSBUILD : error MSB1009: Project file does not exist.
    Switch: Aevatar.Foundation.Core.Tests ✅ 170 passed
  • MSBUILD : error MSB1009: Project file does not exist.
    Switch: Aevatar.GAgents.ChannelRuntime.Tests ✅ 711 passed
  • Architecture guards diff mode: worktree (HEAD vs working tree)
    Query projection priming guard passed.
    Scripting write-path CQRS guard passed.
    Projection state version guard passed.
    Projection state mirror current-state guard passed.
    Running proto lint guard (buf lint)...
    channel_mega_interface_guard: ok
    channel_native_sdk_import_guard: ok
    channel_inbox_gagent_guard: ok
    Channel relay NyxIdChat direct-create guard passed.
    channel_tombstone_proto_field_guard: ok
    agent_tool_delivery_target_reader_guard: ok
    studio_projection_readmodel_registration_guard: ok
    Running projection route-mapping guard...
    Projection route-mapping guard passed.
    Running closed-world workflow guards...
    Closed-world workflow guards passed.
    Running workflow run-id guard...
    Workflow run-id guard passed.
    Running workflow binding boundary guard...
    Workflow binding boundary guards passed.
    Running playground asset drift guard...
    Building CLI playground assets into temporary directory... ✅ all passed
  • Test stability guard passed (polling waits constrained by allowlist). ✅ passed

风险评估

PR description中的风险分析全面:

  • events.Count==0但version key领先时的状态过期问题(幂等投影范围的正确行为)
  • 冲突时日志级别从Error降级为Warning(需更新告警规则)
  • 修复端点的scope-hijack风险(已通过scope_id验证缓解)

建议合并,可以解决生产环境的EventSourcing版本漂移问题并提供可靠的Lark镜像恢复路径。

Comment thread src/Aevatar.Foundation.Core/EventSourcing/EventSourcingBehavior.cs Outdated
Copy link
Copy Markdown
Contributor Author

@eanzhao eanzhao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: APPROVE

Both fixes are correctly implemented and well-tested. The PR closes the two gaps that caused the 2026-04-28 incident: permanent version-drift loops and the operational dependency on a working chat session for Lark mirror recovery.

Part 1: EventSourcingBehavior version-drift self-heal

ConfirmEventsAsync catch path (line 104-124):

  • _pending is NOT cleared on conflict — the copy on line 64 (_pending.ToArray()) is transient, and RemoveCommittedPendingPrefix only runs on success (line 94)
  • On retry, the same pending events are re-stamped with versions computed from the refreshed _currentVersion (= ex.ActualVersion)
  • Correct: _currentVersion recovery + pending-event preservation = clean retry

ReplayAsync version floor (line 192-214):

  • Math.Max(events[^1].Version, storeVersion) as the authoritative floor handles compaction that wiped the sorted set while the version key survived
  • When events=0 + snapshot=null, setting _currentVersion = storeVersion (line 198) is strictly better than leaving it at 0 (the previous behavior) — prevents the actor from committing v=1 against a store already at v=N
  • The double-guard design (Replay floor + Confirm catch) means even if the version drifts again between replay and first commit, the catch path still recovers

One observation (non-blocking): ReplayAsync now always calls GetVersionAsync even when the events sorted set is healthy and consistent (events[^1].Version >= storeVersion). The overhead is negligible (single key lookup), but if actor activation throughput becomes a concern, this could be gated behind a if (events.Count == 0 || events[^1].Version < storeVersion) check. Not worth changing now.

One clarification on the PR's risk statement "State staleness when events.Count==0 but version key is ahead": this is indeed only triggered by a data-loss scenario (compaction that deleted events without rewinding the version key). For the production case (projection scope actors), the materializer reconverges because observations are re-delivered. For domain agents with non-idempotent transitions, the lost events represent information that genuinely cannot be recovered — but the alternative (conflict-looping forever) is worse.

Part 2: Lark mirror repair endpoint

  • Scope-hijack protection: ResolveScopeId with required: true + body.scope_id == JWT.scope_id enforcement matches the existing register/rebuild endpoints. Test HandleRepairLarkMirrorAsync_RejectsScopeMismatch pins this.
  • Bearer token forwarding: The Nyx ownership verification needs the caller's Nyx access token. The handler reads it from the Authorization header and passes it through — same pattern as register/rebuild.
  • Idempotency: RepairLocalMirrorAsync returns already_registered if the mirror already exists, so re-running is safe.
  • Field validation: All required fields (nyx_channel_bot_id, nyx_agent_api_key_id, webhook_base_url) are checked with separate 400 responses. Tests cover each missing-field case.

One observation (non-blocking): The endpoint returns 202 Accepted even though the RepairLocalMirrorAsync may complete synchronously. The runbook correctly warns about a 5-10 second wait for projection materialization, so 202 is semantically appropriate — signals that the operation was accepted but the read-model may not be visible yet.

Runbook

Comprehensive and actionable. The symptom signature section, the "NOT this runbook" differential diagnosis, and the NyxID CLI commands are all well-written. The runbook correctly distinguishes between the annel_registrations action=repair_lark_mirror LLM-tool path (fallback) and the direct HTTP endpoint (preferred).

Verification

  • Build: 0 errors
  • Aevatar.Foundation.Core.Tests: 170 pass, 0 fail (3 new EventSourcing drift tests)
  • Aevatar.GAgents.ChannelRuntime.Tests: 711 pass, 0 fail (5 new repair endpoint tests)
  • Test stability guard: pass
  • Architecture guards: all pass

Risk: log level change

The PR downgrades conflict logs from Error to Warning. If any monitoring/alerting keys on the previous "Event sourcing commit failed" Error message, the alert won't fire after this lands. The Warning message includes "refreshing _currentVersion so the next retry can recover" which should be searchable instead. Consider adding a note to the ops channel about the log signature change.

Copy link
Copy Markdown
Contributor Author

@eanzhao eanzhao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

The core EventSourcingBehavior changes are solid — both the runtime conflict-recovery path and the activation ReplayAsync floor address the exact production wedge. The repair endpoint and runbook are well-scoped operational tooling. Below are two issues worth addressing:


1. _pending not re-stamped when version refreshes — duplicate version numbers on partial-commit edge case

File: src/Aevatar.Foundation.Core/EventSourcing/EventSourcingBehavior.cs:125-140

catch (EventStoreOptimisticConcurrencyException ex)
{
    _currentVersion = ex.ActualVersion;
    throw;
}

When the next ConfirmEventsAsync runs, stateEvents is rebuilt from _pending:

var stateEvents = pendingEvents.Select((evt, i) => new StateEvent
{
    Version = _currentVersion + i + 1,
    ...
}).ToArray();

This works correctly for the full-batch rejection case (which is what EventStoreOptimisticConcurrencyException means). But consider a scenario where the store accepted a prefix of the batch before throwing (e.g. a batch of events where the first N were appended but the version counter was only partially advanced — this may not happen with current InMemoryEventStore/Garnet but is a valid concern for future stores).

In that case:

  • _currentVersion is refreshed to ex.ActualVersion (which includes the prefix)
  • _pending still contains ALL original events including the already-committed prefix
  • The retry rebuilds stateEvents with _currentVersion + 1, +2, ... for ALL pending events
  • The already-committed prefix events are appended again with new version numbers → duplicate domain events in the stream

The current PR description says this is safe because EventStoreOptimisticConcurrencyException means the entire batch was rejected. This is correct for today's store implementations. But it's fragile — the recovery contract depends on an implementation detail of the event store rather than a structural guarantee.

Recommendation (non-blocking for this PR): Consider clearing _pending on conflict and requiring the domain layer to re-raise events (if that's the existing runtime retry contract), OR add a defensive comment + assertion that the exception contract guarantees full-batch atomicity:

// Contract: EventStoreOptimisticConcurrencyException guarantees the entire
// batch was rejected — no partial append. If this assumption changes, _pending
// must be trimmed to remove any successfully committed prefix.
Debug.Assert(ex.ActualVersion == fromVersion, "Partial-commit detected; _pending cleanup required.");

This is non-blocking because the current Garnet + InMemory stores both guarantee full-batch rejection on version mismatch, and the test coverage explicitly validates the retry path.


2. ReplayAsync calls GetVersionAsync before checking events.Count == 0 — unnecessary I/O on the happy path

File: src/Aevatar.Foundation.Core/EventSourcing/EventSourcingBehavior.cs:185-188

var events = await _eventStore.GetEventsAsync(agentId, fromVersion, ct);
var storeVersion = await _eventStore.GetVersionAsync(agentId, ct);

if (events.Count == 0)
{

GetVersionAsync is called unconditionally on every replay, including the normal happy path (no drift). For Garnet this is a single Redis GET, but for actors that replay frequently (e.g. short-lived projection scopes), this doubles the I/O per activation.

Since the drift scenario only manifests when events[^1].Version != storeVersion, the extra call can be deferred:

var events = await _eventStore.GetEventsAsync(agentId, fromVersion, ct);

if (events.Count == 0)
{
    var storeVersion = await _eventStore.GetVersionAsync(agentId, ct);
    if (snapshot == null)
    {
        _currentVersion = storeVersion;
        return null;
    }
    _currentVersion = Math.Max(snapshot.Version, storeVersion);
    return snapshot.State;
}

var state = snapshot?.State ?? new TState();
foreach (var stateEvent in events)
{
    if (stateEvent.EventData != null)
        state = TransitionState(state, stateEvent.EventData);
}

_currentVersion = events[^1].Version;

This defers the GetVersionAsync call to only the events.Count == 0 branch (which is the corruption/compaction case). For the normal events.Count > 0 path, _currentVersion is set to events[^1].Version without the extra I/O, matching the pre-PR behavior.

The trade-off: if events exist but their last version is behind the store version (the partial-compaction-with-remaining-events case), the deferred approach would miss it. If that case is a real concern, keep the unconditional call but add a comment documenting the trade-off.


Minor observations (non-blocking)

  • Repair endpoint is clean — scope-mismatch protection, proper auth forwarding, idempotent by design. Test coverage is solid.
  • NyxConversationRouteId is not validated as required in the handler, but the runbook lists it as required. If RepairLocalMirrorAsync handles a missing route ID gracefully, this is fine; otherwise the handler should add a null/empty check for consistency with NyxChannelBotId / NyxAgentApiKeyId.
  • Runbook is excellent — the "What you must NOT do" section is particularly valuable for preventing operator mistakes during incident response.

Copy link
Copy Markdown
Contributor Author

@eanzhao eanzhao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall

LGTM. This PR correctly closes the two gaps described in #502 with a solid two-layer defense and good operational documentation.

ConfirmEventsAsync self-heal

Catching EventStoreOptimisticConcurrencyException specifically and refreshing _currentVersion = ex.ActualVersion before rethrowing is the right fix. The comment explaining why _pending is intentionally left intact is excellent — it preserves the runtime retry contract without requiring the caller to re-raise events. The log level downgrade from Error to Warning is appropriate because the catch path is now self-healing rather than a terminal failure.

ReplayAsync authoritative floor

Using GetVersionAsync(agentId) as the floor (_currentVersion = max(events[^1].Version, storeVersion)) correctly handles the compaction/drift case. The risk discussion in the PR description about non-idempotent domain GAgents is honest and well-reasoned. For the projection scope actors that hit this in prod, the behavior is correct.

repair-lark-mirror endpoint

Direct HTTP equivalent is the right operational call — it removes the dependency on a working NyxidChat agent during an outage. Validation (required fields, bearer token, scope_id == JWT scope_id) matches the existing register/rebuild endpoints. The scope-mismatch test (HandleRepairLarkMirrorAsync_RejectsScopeMismatch) is important and correctly pins the hijack-vector mitigation.

Runbook

Clear, structured, and includes the exact log lines to grep. The "What you must NOT do" section calling out that POST /api/channels/registrations is not idempotent is operationally valuable. Filename timestamp 2026-04-29-... follows the repo convention.

Minor / non-blocking

  1. Sanity check on ActualVersion: In ConfirmEventsAsync, consider adding a defensive check that ex.ActualVersion >= _currentVersion before assigning. If a malformed EventStoreOptimisticConcurrencyException ever carries a lower version, silently accepting it would move _currentVersion backward and likely corrupt the event sequence. The current test coverage doesn't exercise this edge.

  2. ReplayAsync extra round-trip: The additional GetVersionAsync call in ReplayAsync adds one store read per actor activation. For high-churn actors this is negligible, but worth keeping in mind if activation latency becomes a concern later.

  3. Runbook closing paragraph: The "When to stop using this runbook" section still says "Once issue #502's EventSourcingBehavior hardening is deployed AND a direct authenticated HTTP repair endpoint is added..." — both conditions are now met by this PR, so that paragraph could be tightened, but it's not blocking.

Approve.

eanzhao and others added 5 commits April 29, 2026 10:13
Three review-driven follow-ups on top of the EventSourcingBehavior
hardening:

1. Defensive guard against malformed
   EventStoreOptimisticConcurrencyException.ActualVersion. If a future
   store implementation reports an ActualVersion below the in-memory
   _currentVersion, silently accepting it would rewind the actor and
   cause the next commit to assign duplicate event versions. The catch
   path now keeps Math.Max(_currentVersion, ex.ActualVersion) and logs
   at Error level with the contract violation surfaced. Added a test
   covering this edge: a store that fabricates a low ActualVersion
   must not regress _currentVersion.

2. Comment in the ConfirmEventsAsync catch path documenting the
   full-batch-atomicity assumption that justifies leaving _pending
   intact. Garnet's AppendScript and InMemoryEventStore both guarantee
   the entire batch is rejected on conflict; a future store with
   partial-commit semantics would need to extend this catch to drop
   the already-committed prefix, otherwise the retry would duplicate
   domain events. The current contract is documented inline.

3. Comment in ReplayAsync explaining why the GetVersionAsync probe is
   unconditional rather than gated behind events.Count == 0. Partial
   compaction can leave the events sorted set with valid trailing
   entries while the version key is ahead — events[^1].Version <
   storeVersion is a real shape that the gated form would miss. The
   one-extra-Redis-GET cost is negligible relative to the activation
   envelope.

Refs: #502

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three review concerns from PR #503 (issue #502 follow-up):

1. ConfirmEventsAsync_WhenStoreVersionIsAhead — leaving _pending intact
   across an optimistic-concurrency conflict produced duplicate events on
   the runtime envelope retry. The handler is re-executed on redelivery
   and re-raises the same logical event(s), so the next ConfirmEventsAsync
   would commit both the stale pending entries and the freshly-raised
   ones. Drop the rejected batch from _pending in the catch path so the
   handler re-execution is the single source of truth for the retry
   payload. The suffix raised mid-flight (existing
   WhenNewEventIsRaisedDuringAppend contract) is preserved.

   The previous "retry without re-raising" test asserted the wrong shape
   for the production envelope retry; rewrite it to model handler
   re-execution and add a direct regression
   (OnConflict_DropsRejectedBatchFromPendingSoEnvelopeRetryDoesNotDuplicate)
   asserting _pending is empty after the catch path.

2. ReplayAsync version-floor — Math.Max(events[^1].Version, storeVersion)
   silently turned a missing-committed-events corruption into a healthy
   actor at a higher version with stale state. Safe for idempotent
   projection scope actors; unsafe as a default for arbitrary
   GAgentBase<TState> because future commits, snapshots, and projections
   would be built from facts that were never applied.

   New default: throw EventStoreVersionDriftException so the operator
   decides. Per-actor opt-in via
   EventSourcingRuntimeOptions.ShouldRecoverFromVersionDriftOnReplay
   (predicate evaluated at behavior construction in
   DefaultEventSourcingBehaviorFactory). Foundation.Runtime.Hosting wires
   the predicate to recover only projection.{durable,session}.scope:* ids
   so the original production wedge still self-heals while domain GAgents
   surface the drift.

   Reframe the two existing drift tests as opt-in tests, add throws-by-
   default tests for both the no-snapshot and with-snapshot shapes, and
   add a per-agent-predicate test directly against the factory.

3. Runbook updated to call out the new self-heal scope (projection scopes
   only) and the EventStoreVersionDriftException signal for any other
   actor.

Refs: #502, #503

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #503 review (comment 3158220132): the direct HTTP endpoint skipped the
preflight that the LLM-tool path runs against the local mirror, so
repeated calls without a registration_id minted a fresh id every time.
Worse, the same Nyx api-key could be repaired into multiple distinct
scopes — the resolver would then refuse to route relay traffic and the
401 symptom would come back. The body.scope_id == JWT.scope_id check did
not block this; it only proved the caller was using the scope they were
currently authenticated for.

Inject IChannelBotRegistrationQueryPort into the handler and mirror the
LLM-tool path:

- Same-scope mirror match → 200 already_registered, no dispatch
- Different-scope mirror match → 400 reject (api-key hijack vector)
- Empty-scope mirror match → reuse the existing registration id so the
  backfill path attaches a scope rather than producing a parallel entry

Read-side failure during preflight is logged and falls through to dispatch
so a degraded projection reader does not block operational repair.

Tests:
- HandleRepairLarkMirrorAsync_ShortCircuits_WhenSameScopeMirrorAlreadyExists
- HandleRepairLarkMirrorAsync_RejectsCrossScopeMatch
- HandleRepairLarkMirrorAsync_ReusesEmptyScopeRegistrationId
- HandleRepairLarkMirrorAsync_FallsThroughToDispatch_WhenQuerySideIsUnavailable

Existing repair-endpoint tests updated to inject the query port.

Refs: #502, #503

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@eanzhao eanzhao merged commit d31e802 into dev Apr 29, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Harden EventSourcingBehavior against version-key/sorted-set drift + document Lark mirror recovery runbook

1 participant