feat: add zone visualization resolver

This commit is contained in:
2026-05-24 18:10:30 +02:00
parent fdee0b0855
commit d060b1c896
3 changed files with 907 additions and 2 deletions

View File

@@ -34,7 +34,7 @@ step.
```task
id: RAIL-FAB-WP-0022-T01
status: in_progress
status: done
priority: high
state_hub_task_id: "636b14f7-e5c7-4d5d-acda-40f0c270cd29"
```
@@ -55,11 +55,17 @@ but it does not need a persistence store in this task.
Expected result: a small typed model or schema with tests for construction and
basic serialization.
Result: Added `railiance_fabric.zone_view` dataclasses for zone definitions,
attraction rules, layout, presentation, collapse settings, resolved zone
instances, node assignments, boundary edges, diagnostics, and serializable
resolution output. Covered definition round-trip and resolution serialization in
`tests/test_zone_view.py`.
## Task 2: Implement A Pure Zone Resolver
```task
id: RAIL-FAB-WP-0022-T02
status: in_progress
status: done
priority: high
state_hub_task_id: "d0ca41d2-f7c4-4409-8799-4c0099192af5"
```
@@ -78,6 +84,13 @@ The first resolver should support a conservative rule subset:
Expected result: resolver unit tests that prove deterministic node assignment,
seed-vs-attraction precedence, conflict reporting, and depth-limited attraction.
Result: Implemented `resolve_zones()` as a pure resolver over Cytoscape-style or
raw node/edge mappings. It supports `equals`, `in`, `exists`, `all`, `any`,
membership `rules`, edge-type/direction/depth attraction, seed precedence,
height/order conflict resolution, single-zone node assignments, boundary edge
summaries, and conflict diagnostics. Covered the core behavior in
`tests/test_zone_view.py`.
## Task 3: Back The Existing Overlays With Zone Definitions
```task