Skip to content

Commit 3ac562e

Browse files
Strip phase/PR process labels from docstrings and comments
Remove opaque development-history tags (PR-C, PR-B, Phase 6.0/6.1) and rephrase the "Phase N scope/deferred" mentions to preserve their covered-vs-deferred meaning without the process vocabulary. Rename the langfuse resume test's internal "Phase 1/2/3" step labels to "Step" to avoid confusion with build phases. Leaves the harness skip registry untouched: its DIRECTIVE_PHASE dict maps directives to phase integers as functional data, and its comments document that live mapping. Fixture-number references are kept throughout (concrete in-repo identifiers, not spec refs).
1 parent da20870 commit 3ac562e

18 files changed

Lines changed: 67 additions & 69 deletions

src/openarmature/graph/compiled.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1521,7 +1521,7 @@ async def innermost(s: Any) -> Mapping[str, Any]:
15211521
innermost,
15221522
)
15231523

1524-
# Spec observability §3 / Phase 6 LLM-span hook: capability
1524+
# Spec observability §3 LLM-span hook: capability
15251525
# backends emitting from inside a node body (the
15261526
# llm-provider span instrumentation in OpenAIProvider) need
15271527
# to find the observers active for THIS invocation, which
@@ -2503,7 +2503,7 @@ async def _maybe_save_checkpoint(
25032503
# before/after distinction for a save like there is for a
25042504
# node attempt. The field is repurposed because a save
25052505
# event represents "the state was persisted" rather than
2506-
# "the state transitioned." Phase 6 OTel mapping reads
2506+
# "the state transitioned." The OTel mapping reads
25072507
# ``pre_state`` as the save's state.
25082508
_dispatch(
25092509
context,

src/openarmature/graph/middleware/_core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def compose_chain(
109109
``CompiledGraph._step_function_node``, producing one closure layer
110110
per middleware on every node step. For typical workloads
111111
(single-digit middleware × hundreds of node activations) this is
112-
negligible. Under heavy fan-out (Phase 3+), e.g. 10K instances × 5
112+
negligible. Under heavy fan-out, e.g. 10K instances × 5
113113
inner nodes × 3 middlewares = 150K closure constructions per
114114
invocation; worth measuring with realistic workloads when the
115115
fan-out runtime lands. The optimization shape (cache the chain at

src/openarmature/observability/correlation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def validate_invocation_id(value: object) -> str:
163163

164164
# ---------------------------------------------------------------------------
165165
# Active observer set — for capability backends emitting from outside the
166-
# engine's per-step path (llm-provider span hook in Phase 6, future
166+
# engine's per-step path (llm-provider span hook, future
167167
# Langfuse/Datadog backends, user-written instrumented capabilities).
168168
# ---------------------------------------------------------------------------
169169

@@ -206,7 +206,7 @@ def _reset_active_observers(token: Token[tuple[SubscribedObserver, ...]]) -> Non
206206
# Active dispatch hook — queue-mediated event emission from outside the
207207
# engine's per-step path. The engine sets this ContextVar to a closure
208208
# over the current invocation's delivery queue + observer chain;
209-
# capability backends (the LLM provider span hook in Phase 6, future
209+
# capability backends (the LLM provider span hook, future
210210
# Langfuse/Datadog instrumentations) call ``current_dispatch()(event)``
211211
# to enqueue an event for the same delivery worker the engine uses.
212212
#

src/openarmature/observability/otel/observer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2283,7 +2283,7 @@ def close_invocation(self, invocation_id: str) -> None:
22832283
invocation in one call without needing to track ids
22842284
externally. A first-class engine-level signal that lets
22852285
observers auto-drain per-invocation state on completion is
2286-
tracked as Phase 6.1+ follow-up work in
2286+
tracked as follow-up work in
22872287
``openarmature-coord/docs/phase-6-1-conformance-fillin.md``.
22882288
"""
22892289
inv_state = self._inv_states.pop(invocation_id, None)

tests/conformance/adapter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,7 @@ def _add_fan_out_node(
991991
- ``state_field_read`` — read an int from a parent state field.
992992
- ``queue_chunk`` — ``max(1, len(state.<field>) // chunk_size)``.
993993
994-
These are the only callable shapes the in-scope Phase 3 fixtures
994+
These are the only callable shapes the in-scope fan-out fixtures
995995
use. Adding more is straightforward.
996996
"""
997997
sub_name = cfg["subgraph"]

tests/conformance/harness/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
"""Conformance fixture harness — typed parsing for the four spec capabilities.
22
3-
Phase 0 (per the implementation plan): every fixture under
3+
Every fixture under
44
``openarmature-spec/spec/<capability>/conformance/`` lands as a typed pydantic
5-
config. Phases 1–6 add runtime interpretation under ``harness/runtime/``;
5+
config. Later stages add runtime interpretation under ``harness/runtime/``;
66
they never re-touch parsing.
77
88
Public surface:

tests/conformance/harness/directives.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Typed directive sub-models — the shapes referenced inside fixtures.
22
3-
Phase 0 typing strategy: model every key in every fixture, but use
3+
Typing strategy: model every key in every fixture, but use
44
``dict[str, Any]`` for genuinely polymorphic payloads (notably the inner
55
``state``/``nodes``/``edges`` of recursive subgraph definitions, and the
66
update payloads themselves which are arbitrary state-shaped dicts). The
@@ -38,7 +38,7 @@ class _AllowExtras(BaseModel):
3838
middleware-specific params, flaky/fan-out config). Validates KNOWN
3939
keys' types but doesn't reject unknown ones — the spec evolves these
4040
payloads frequently and modelling every parameter exhaustively
41-
creates churn without proportional value. The Phase 0 strictness
41+
creates churn without proportional value. The strictness
4242
contract sits at the directive STRUCTURE level (above), not the
4343
parameter-bag level (here)."""
4444

@@ -90,7 +90,7 @@ class EdgeSpec(_AllowExtras):
9090
The spec defines static (``from``/``to``) and conditional
9191
(``from``/``condition``) edges; observability/011 also uses a
9292
``when``-shaped predicate. Schema is permissive here so all forms
93-
parse — Phase 1 (engine retrofit) interprets each shape against
93+
parse — the engine retrofit interprets each shape against
9494
the engine's edge model.
9595
"""
9696

@@ -208,7 +208,7 @@ class UpdateFromFieldSpec(_ForbidExtras):
208208
"""
209209

210210
# Free-form: some fixtures use ``{result: x, multiplier: 2}``, others
211-
# ``{score: item}`` with no multiplier. Phase 4 (fan-out runtime) reads
211+
# ``{score: item}`` with no multiplier. The fan-out runtime reads
212212
# whichever keys are present.
213213
model_config = ConfigDict(extra="allow")
214214

tests/conformance/harness/expectations.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77
fixture authors mixing keys across capabilities, and gives runtime code
88
in :mod:`runtime` typed access to the assertion payload it needs.
99
10-
Phase 0 typing depth: TOP-LEVEL keys per capability are exhaustively
10+
Typing depth: TOP-LEVEL keys per capability are exhaustively
1111
typed (catches new directives the spec adds). The nested payload values
1212
underneath (e.g., individual span tree entries, observer event details)
1313
are kept loose as ``list[Any]`` / ``dict[str, Any]`` because the runtime
14-
phases that consume them are the right place to tighten — Phase 1
15-
will type observer-event entries, Phase 5 will type span_tree, etc.
14+
code that consumes them is the right place to tighten.
1615
"""
1716

1817
from __future__ import annotations
@@ -44,12 +43,12 @@ class GraphEngineExpected(_ForbidExtras):
4443
# Two shapes seen in fixtures:
4544
# - dict[observer_name, list[event_dict]] — most fixtures
4645
# - list[event_dict] flat — pipeline-utilities/011 (single-observer)
47-
# Permissive ``Any`` until Phase 1 (engine retrofit) tightens.
46+
# Permissive ``Any`` until the engine retrofit tightens.
4847
observer_events: Any = None
4948
delivery_order: list[dict[str, Any]] | None = None
5049
observer_event_invariants: dict[str, Any] | None = None
5150
# 020 — proposal-0012 fixture: assertions about edge-resolution
52-
# failure event shapes. Permissive dict until Phase 1.
51+
# failure event shapes. Permissive dict until the engine retrofit.
5352
# 022–024 (proposal 0010 §6 Drain) — drain-summary invariants
5453
# (drain_returned_within_timeout, graph_state_intact_after_timeout,
5554
# drain_waited_for_all_events) ride on the same field.
@@ -90,7 +89,7 @@ class LlmProviderRaisesAssertion(BaseModel):
9089
9190
Permissive — fixtures attach assertion-specific knobs like
9291
``retry_after_seconds`` (rate-limit fixture) without restructuring
93-
the type. The runtime in Phase 2 validates the keys it reads.
92+
the type. The runtime validates the keys it reads.
9493
"""
9594

9695
model_config = ConfigDict(extra="allow")
@@ -130,7 +129,7 @@ class PipelineUtilitiesExpected(_ForbidExtras):
130129
# Two shapes seen in fixtures:
131130
# - dict[observer_name, list[event_dict]] — most fixtures
132131
# - list[event_dict] flat — pipeline-utilities/011 (single-observer)
133-
# Permissive ``Any`` until Phase 1 (engine retrofit) tightens.
132+
# Permissive ``Any`` until the engine retrofit tightens.
134133
observer_events: Any = None
135134
observer_event_invariants: dict[str, Any] | None = None
136135
# Singular form used by 015 — assert one specific event shape.

tests/conformance/harness/fixtures.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Typed fixture root models.
22
3-
Per the Phase 0 plan: every YAML fixture under
3+
Every YAML fixture under
44
``openarmature-spec/spec/<capability>/conformance/`` lands as one of three
55
typed shapes. The shape is chosen by a callable discriminator that inspects
66
the raw dict's top-level keys (no tag field is present in the YAML).

tests/conformance/test_checkpoint.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
- 030 checkpoint-not-found — supported.
2525
- 031 correlation-id-preserved-across-resume — record-level
2626
assertions supported here; the OTel span/log assertions are
27-
gated until Phase 6 lands the observability mapping.
27+
gated until the observability mapping lands.
2828
- 048-054 per-instance fan-out resume contract — supported.
2929
"""
3030

@@ -818,7 +818,7 @@ async def _run_one_case(spec: Mapping[str, Any], *, top_level: Mapping[str, Any]
818818
_assert_resume_invariants(invariants_block, final_resume, flaky_per_index_recorders)
819819

820820
# Fixture 031: assert correlation_id preserved + invocation_id
821-
# changed. Span/log assertions deferred to Phase 6 — observability
821+
# changed. Span/log assertions deferred — observability
822822
# isn't wired yet. Skip those cleanly here.
823823
if "correlation_id_assertions" in resume_expected:
824824
cid_block = cast("Mapping[str, Any]", resume_expected["correlation_id_assertions"])

0 commit comments

Comments
 (0)