Skip to content

refactor(host): break the Api↔Stats namespace cycle (gh-#445, 1 of 2) - #504

Merged
genwave-radio merged 2 commits into
mainfrom
fix/gh-445-host-api-stats-cycle
Aug 14, 2026
Merged

refactor(host): break the Api↔Stats namespace cycle (gh-#445, 1 of 2)#504
genwave-radio merged 2 commits into
mainfrom
fix/gh-445-host-api-stats-cycle

Conversation

@genwave-radio

Copy link
Copy Markdown
Collaborator

First half of #445 (the split is deliberate — see the sibling PR for why).

🔴 Cycle 2 — Host Api ↔ Stats: DockerContainerStatsSource returned Api-namespace DTOs (the gh-#148 shape). ContainerStatsReportDto + ContainerStatDto move into Stats (git mv, namespace only) so Api→Stats stays one-directional. Type names and JSON shapes unchanged — wire-compatible. Also unblocks the F105.4 graduation note in the issue (a subsystem in a cycle can't leave Host).

📉 Baseline shrinks 2→1: the Host row is deleted; the Core row survives until the sibling PR. Purely internal — zero published-package impact, safe to merge any time.

dotnet build GenWave.sln zero warnings; Architecture.Tests 104/104 (cycle guard + every other law); Host.Tests container-filtered 32 passed / 0 failed (13 pre-existing compose-integration skips).

DockerContainerStatsSource returned Api-namespace DTOs (the gh-#148
shape), closing a Host Api↔Stats namespace cycle. Move the two DTOs
into Stats so Api→Stats stays one-directional; type names and JSON
shapes unchanged. Deletes the Host row from the gh-#445 baseline —
shrink-to-fit. The Core Events↔Abstractions row stays for its own
sibling PR (that fix touches the published Abstractions surface).
@genwave-radio
genwave-radio merged commit e991cfb into main Aug 14, 2026
11 checks passed
@genwave-radio
genwave-radio deleted the fix/gh-445-host-api-stats-cycle branch August 14, 2026 01:01
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant