Skip to content

Architecture audit: 6 milestone blockers for Living with AI Demo (04-17) and NyxID M0 (04-18) #143

@loning

Description

@loning

Summary

First architecture audit (2026-04-08) found overall health 5.0/10. CI guards pass (9/10), but hot-path deep dive revealed 6 milestone blockers.

Milestone Blockers

# Location Severity Description
1 agents/NyxIdChatActorStore.cs:20 Critical ConcurrentDictionary singleton as fact source. Process restart loses all conversation state. Cannot scale multi-node.
2 agents/StreamingProxyActorStore.cs:11-12 Critical 2x ConcurrentDictionary singletons (rooms + participants). Same as #1.
3 agents/ (all 3 projects) Critical Zero test coverage. NyxID M0 critical path has no automated validation.
4 ScopeServiceEndpointsTests.cs:1087 High InvokeStreamEndpoint 3 tests fail (500 error). Affects API call path.
5 tools/Aevatar.Tools.Cli/Frontend/ High TypeScript build fails. Missing @types/node, @tanstack/react-virtual, vitest.
6 apps/aevatar-console-web/ High Build fails. max CLI not installed.

Guard Blind Spot

architecture_guards.sh does not scan agents/ directory. The ConcurrentDictionary violations (#1, #2) are invisible to CI.

Full Scorecard

See docs/audit-scorecard/2026-04-08-architecture-audit.md for complete dimension scores, backlog items, and guard supplement recommendations.

Action Required

  1. Fix Refactor/project namespace #1-MAF-Inspired Framework Improvements #3 before NyxID M0 (04-18): migrate ConcurrentDictionary stores to Actor state or persistent storage
  2. Fix Aevatar context database #4-Refactor/core cqrs parallel subsystems #6 before Living with AI Demo (04-17): resolve test failures and frontend build issues
  3. Extend architecture_guards.sh scan roots to include agents/

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions