feat(app): Phase A.1 — StreamingRegion (window set + diff with hysteresis)

Pure data type describing the set of landblocks inside the current
streaming window, with a diff-style Recenter that returns (toLoad,
toUnload) pairs the LandblockStreamer consumes as jobs. Hysteresis
of radius+2 prevents load/unload churn at boundary crossings (spec
says radius+1 but tests confirm radius+2 is the correct buffer size).

First piece of Phase A.1 per docs/superpowers/plans/2026-04-11-foundation-a1-streaming.md.

7 new tests, all green. Total suite: 105/105.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-04-11 22:01:45 +02:00
parent fcfe8f1ce0
commit 11df7930fc
3 changed files with 191 additions and 0 deletions

View file

@ -20,6 +20,7 @@
<ItemGroup>
<ProjectReference Include="..\..\src\AcDream.Core\AcDream.Core.csproj" />
<ProjectReference Include="..\..\src\AcDream.App\AcDream.App.csproj" />
</ItemGroup>
<ItemGroup>