Orchestrata Ultimate › Plans › session-phase2-plan

Session Plan: Phase 2 — Zero Test Failures

Source: plans/session-phase2-plan.md at 8a2cb42ad · last changed 2026-07-27 · first committed 2026-04-19 · 64 lines.

Prose pending.

Plan text

Session Plan: Phase 2 — Zero Test Failures

Goal: All 5,479 tests pass with 0 failed, 0 errors, 0 skipped. Baseline: 5,364 passed, 99 failed, 23 errors, 5 skipped Tag: session-phase1-complete


Pattern Analysis

Pattern Count Root Cause Fix Strategy
P1: Postman Redis import failure ~22 errors + many fails No module named 'orchestrata_ultimate.core.redis' — Postman tries to import missing core.redis module, falls back to FakeRedis Create core/redis.py or fix import path
P2: 'bool' object can't be awaited ~19 fails message_store.py:217 calls await self.redis_client.setex(...) but FakeRedis.setex returns bool, not coroutine Make FakeRedis methods async or fix message_store to handle sync client
P3: Async fixture teardown ~11 errors TypeError: 'async_generator' object is not iterable — fixtures return async generators instead of values Fix fixture async/await in postman + session tests
P4: KG node type arg mismatch ~6 fails FileNode.__init__() got an unexpected keyword argument 'imports' — tests pass imports= but dataclass doesn't accept it Update node dataclasses or tests to match
P5: CXPPacket headers vs header ~3 fails Code uses packet.header, tests/code in postman expects packet.headers Find correct attribute name from frozen source
P6: Missing FileSynchronizer ~1 fail file_watcher.py:41 references undefined class Port missing class from frozen source
P7: Package name strings ~5 fails Tests expect "orchestrata_ultimate-postman", code says "orchestrata-postman" Update test expectations or code strings
P8: Hardcoded monorepo paths ~3 fails Tests look for files in /packages/orchestrata_ultimate-postman/... Update paths to single-package layout
P9: Neo4j deadlock/index race ~3 fails Parallel tests create same indexes/constraints simultaneously Add IF NOT EXISTS or idempotent schema creation
P10: Health status degraded ~5 fails Redis in-memory causes DEGRADED status, tests expect HEALTHY Update tests to accept degraded when Redis unavailable
P11: FakeRedis.aclose missing ~1 error kernel/queue_manager.py:149 calls redis.aclose() on FakeRedis Add aclose method to FakeRedis or in-memory redis
P12: 'coroutine' object is not iterable ~1 error Fixture returns coroutine instead of awaited value Fix async fixture

Execution Order (Highest Impact First)

Wave 1: Postman Redis Stack (~40 failures/errors)

  1. Investigate core/redis.py missing — what does Postman expect?
  2. Fix FakeRedis / in-memory redis to satisfy Postman's async Redis interface
  3. Fix message_store.py bool/await issue
  4. Fix async fixture teardowns in postman tests

Wave 2: Knowledge Graph Node Types (~10 failures)

  1. Fix node dataclass signatures (FileNode, PackageNode, ModuleNode, ClassNode)
  2. Fix FileSynchronizer missing import
  3. Fix Neo4j index race conditions

Wave 3: CXP / Naming Mismatches (~15 failures)

  1. Fix CXPPacket headers vs header
  2. Fix package name strings (orchestrata-postman → orchestrata_ultimate-postman or vice versa)
  3. Fix hardcoded monorepo paths

Wave 4: Health / Degraded / Misc (~15 failures)

  1. Fix health status assertions
  2. Fix FakeRedis.aclose
  3. Fix remaining async fixture issues
  4. Fix any remaining one-off failures

Verification Commands

# After each wave
export KG_ROUTING_URI=neo4j://10.92.53.160:7691  # Neo4j retired 2026-07-27
export REDIS_HOST=10.92.53.10
uv run pytest tests/ -n auto --timeout=120 --tb=line -q

# Final gate
uv run pytest tests/ -n auto --timeout=120