Skip to content

Commit 4b59024

Browse files
authored
refactor(status): move dreaming projections into bounded module (#2974)
1 parent fbad2a9 commit 4b59024

3 files changed

Lines changed: 72 additions & 25 deletions

File tree

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
"""Dreaming and planning projections inside the `status` bounded context."""
2+
3+
from __future__ import annotations
4+
5+
from typing import Any
6+
7+
from ...operator_gate import normalize_operator_question
8+
from ..goals.dreaming import (
9+
compact_dreaming_lane_badge as _compact_dreaming_lane_badge,
10+
compact_dreaming_proposal as _compact_dreaming_proposal,
11+
compact_server_planning_contract as _compact_server_planning_contract,
12+
dreaming_attention_fields as _dreaming_attention_fields,
13+
)
14+
from ..runtime.public_safety import (
15+
public_safe_compact_list,
16+
public_safe_compact_text,
17+
)
18+
from ..runtime.status_classifications import DREAMING_ADVISORY_CLASSIFICATIONS
19+
20+
21+
def compact_server_planning_contract(value: Any) -> dict[str, Any]:
22+
return _compact_server_planning_contract(
23+
value,
24+
public_safe_compact_text=public_safe_compact_text,
25+
public_safe_compact_list=public_safe_compact_list,
26+
)
27+
28+
29+
def compact_dreaming_proposal(run: dict[str, Any] | None) -> dict[str, Any] | None:
30+
return _compact_dreaming_proposal(
31+
run,
32+
dreaming_advisory_classifications=DREAMING_ADVISORY_CLASSIFICATIONS,
33+
public_safe_compact_text=public_safe_compact_text,
34+
public_safe_compact_list=public_safe_compact_list,
35+
)
36+
37+
38+
def compact_dreaming_lane_badge(proposal: dict[str, Any] | None) -> dict[str, Any] | None:
39+
return _compact_dreaming_lane_badge(
40+
proposal,
41+
public_safe_compact_text=public_safe_compact_text,
42+
)
43+
44+
45+
def dreaming_attention_fields(run: dict[str, Any] | None) -> dict[str, Any]:
46+
return _dreaming_attention_fields(
47+
run,
48+
dreaming_advisory_classifications=DREAMING_ADVISORY_CLASSIFICATIONS,
49+
public_safe_compact_text=public_safe_compact_text,
50+
public_safe_compact_list=public_safe_compact_list,
51+
normalize_operator_question=normalize_operator_question,
52+
)

loopx/status.py

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,6 @@
103103
from .control_plane.work_items.backlog_hygiene import (
104104
MAX_BACKLOG_HYGIENE_EVIDENCE_ITEMS as _MAX_BACKLOG_HYGIENE_EVIDENCE_ITEMS_READ_MODEL,
105105
)
106-
from .control_plane.goals.dreaming import (
107-
compact_dreaming_lane_badge as _compact_dreaming_lane_badge_read_model,
108-
compact_dreaming_proposal as _compact_dreaming_proposal_read_model,
109-
compact_server_planning_contract as _compact_server_planning_contract_read_model,
110-
dreaming_attention_fields as _dreaming_attention_fields_read_model,
111-
)
112106
from .control_plane.work_items.delivery_signals import (
113107
classification_contains_any as _classification_contains_any_read_model,
114108
delivery_batch_scale_for_run as _delivery_batch_scale_for_run_read_model,
@@ -136,7 +130,7 @@
136130
from .control_plane.runtime.status_classifications import (
137131
BLOCKING_CLASSIFICATIONS,
138132
CODEX_READY_CLASSIFICATIONS,
139-
DREAMING_ADVISORY_CLASSIFICATIONS,
133+
DREAMING_ADVISORY_CLASSIFICATIONS, # noqa: F401
140134
HANDOFF_READY_CLASSIFICATIONS,
141135
USER_OR_CONTROLLER_CLASSIFICATIONS,
142136
)
@@ -284,6 +278,7 @@
284278

285279

286280
_PUBLIC_COMPAT_REEXPORTS = {
281+
"DREAMING_ADVISORY_CLASSIFICATIONS": "loopx.control_plane.runtime.status_classifications",
287282
"TODO_PROJECTION_DETAIL_POINTER_SCHEMA_VERSION": "loopx.control_plane.work_items.project_asset",
288283
"TODO_PROJECTION_VIEW_SCHEMA_VERSION": "loopx.control_plane.work_items.project_asset",
289284
"project_asset_summary_is_public_safe": "loopx.control_plane.work_items.project_asset",
@@ -2664,38 +2659,36 @@ def operator_gate_attention_fields(run: dict[str, Any] | None) -> dict[str, Any]
26642659

26652660

26662661
def compact_server_planning_contract(value: Any) -> dict[str, Any]:
2667-
return _compact_server_planning_contract_read_model(
2668-
value,
2669-
public_safe_compact_text=public_safe_compact_text,
2670-
public_safe_compact_list=public_safe_compact_list,
2662+
from .control_plane.status.dreaming_projection import (
2663+
compact_server_planning_contract as _compact_server_planning_contract,
26712664
)
26722665

2666+
return _compact_server_planning_contract(value)
2667+
26732668

26742669
def compact_dreaming_proposal(run: dict[str, Any] | None) -> dict[str, Any] | None:
2675-
return _compact_dreaming_proposal_read_model(
2676-
run,
2677-
dreaming_advisory_classifications=DREAMING_ADVISORY_CLASSIFICATIONS,
2678-
public_safe_compact_text=public_safe_compact_text,
2679-
public_safe_compact_list=public_safe_compact_list,
2670+
from .control_plane.status.dreaming_projection import (
2671+
compact_dreaming_proposal as _compact_dreaming_proposal,
26802672
)
26812673

2674+
return _compact_dreaming_proposal(run)
2675+
26822676

26832677
def compact_dreaming_lane_badge(proposal: dict[str, Any] | None) -> dict[str, Any] | None:
2684-
return _compact_dreaming_lane_badge_read_model(
2685-
proposal,
2686-
public_safe_compact_text=public_safe_compact_text,
2678+
from .control_plane.status.dreaming_projection import (
2679+
compact_dreaming_lane_badge as _compact_dreaming_lane_badge,
26872680
)
26882681

2682+
return _compact_dreaming_lane_badge(proposal)
2683+
26892684

26902685
def dreaming_attention_fields(run: dict[str, Any] | None) -> dict[str, Any]:
2691-
return _dreaming_attention_fields_read_model(
2692-
run,
2693-
dreaming_advisory_classifications=DREAMING_ADVISORY_CLASSIFICATIONS,
2694-
public_safe_compact_text=public_safe_compact_text,
2695-
public_safe_compact_list=public_safe_compact_list,
2696-
normalize_operator_question=normalize_operator_question,
2686+
from .control_plane.status.dreaming_projection import (
2687+
dreaming_attention_fields as _dreaming_attention_fields,
26972688
)
26982689

2690+
return _dreaming_attention_fields(run)
2691+
26992692

27002693
def legacy_runtime_goal_attention(
27012694
goal: dict[str, Any],

tests/control_plane/test_status_classification_reexport.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import loopx.control_plane.runtime.status_classifications as classifications
44
import loopx.status as status
5+
from loopx.status import DREAMING_ADVISORY_CLASSIFICATIONS
56

67

78
REEXPORTED_NAMES = (
@@ -19,6 +20,7 @@ def test_status_reexports_classification_sets_unchanged() -> None:
1920
read_model_value = getattr(classifications, name)
2021
assert status_value == read_model_value
2122
assert type(status_value) is type(read_model_value)
23+
assert DREAMING_ADVISORY_CLASSIFICATIONS == classifications.DREAMING_ADVISORY_CLASSIFICATIONS
2224

2325

2426
def test_status_classification_membership_is_stable() -> None:

0 commit comments

Comments
 (0)