Skip to content

Refactor application architecture around structured IPC and deep modules#29

Draft
chrystiamjr wants to merge 2 commits into
mainfrom
agent/deepen-application-architecture
Draft

Refactor application architecture around structured IPC and deep modules#29
chrystiamjr wants to merge 2 commits into
mainfrom
agent/deepen-application-architecture

Conversation

@chrystiamjr

Copy link
Copy Markdown
Owner

What changed

  • Replaced callback-style WebView2 communication with typed Event envelopes and structured Action payloads.
  • Introduced a validated ActionHost with authoritative completion Events and single-mutation coordination.
  • Split Registry Backup and System Restore responsibilities into focused modules.
  • Centralized scheduling normalization in SchedulePolicy, including locale-neutral state handling.
  • Modeled optimization entry points as explicit Optimization Plans.
  • Extracted execution lifecycle, OS-backed list freshness, and optimistic preferences into dedicated React hooks.
  • Normalized management records and documented the architecture decisions and domain vocabulary.
  • Updated frontend, backend, unit, integration, and E2E contract coverage.

Why

The previous host window and React root owned too many unrelated responsibilities, IPC relied on stringified payloads and callback globals, and process-backed data could leak localized or stale representations across layers. These changes establish explicit seams with narrower interfaces, centralized validation, and consistent cross-layer contracts.

Impact

User-facing workflows remain the same, while failures now preserve the last valid list state, mutations are coordinated across screens, settings reconcile with persisted host state, and IPC contract drift becomes diagnosable and testable.

Validation

  • npm run validate — 133 tests passed
  • dotnet test desktop.Tests/VeloSysPro.Tests.csproj — 51 tests passed
  • dotnet build desktop/VeloSysPro.csproj — 0 errors, 0 warnings
  • npm run cypress:run — 78 tests passed

@chrystiamjr chrystiamjr self-assigned this Jul 25, 2026
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.

1 participant