Orchestrata Ultimate › Sessions › Session 263

Session 263

Field Value
Session 263
Date 2026-08-12 16:16
Model Claude Opus 4.6
Length auto-closed
Tag —
Source archive (context.history.md)

‹ previous · next › · timeline

Prose pending.

Purpose

Fix pipeline_kernel driver attribution defect (producer-owned attribution resolved at serialization)

Work log

  1. Fixed pipeline_kernel driver-attribution defect (producer-owned attribution, resolved not mutated at serialization)
    • PipelineKernelClient._emit_event (2nd production producer, direct-broadcast to VizInt UI) never resolved driver -> every payload it sent carried driver=empty forever (measured 2/2 unattributed)
    • Corrected design (not the earlier rejected default-mutation plan): PipelineEvent.driver stays default empty (contract A1 intact, tests/kernel/test_pipeline_events.py L46/54/55 unchanged); PipelineEventBus and PipelineKernelClient each gained their own driver identity param (default inprocess)
    • PipelineEventBus.emit() no longer mutates event.driver -- resolves payload[driver] = payload[driver] or self._driver on the OUTPUT dict only; _forward_to_ui reads the resolved dict instead of the mutated object
    • PipelineKernelClient._emit_event does the same resolve at its call site (pipeline_kernel.py L487-517) -- the actual defect fix, taking measured 2/2 unattributed to 0/2
    • Added 7 new tests (bus non-mutation+wire-attribution, explicit-driver survival x2 producers, Phase-2 custom-driver seam, cross-producer wire equality for the same event, non-empty-driver guard over both producers) plus fixed 2 stale docstrings in test_pipeline_events_enum.py
    • Red-first proven: 4/5 new tests failed against pre-fix source with the exact defect signature (driver=='' where 'inprocess' expected); all green after the fix
    • Regenerated interface-pin test_pipeline_kernel_client___init___line_77_interface (tests/generated_orchestrator/test_pipeline_kernel_generated.py) for the new driver param
    • 14 referencing test modules run observed: 236 tests, 0 failed; excluded tests/kernel/test_pipeline_event_forwarder.py (owned by a concurrent workflow) run read-only for confirmation: 11/11 still pass unchanged
    • scripts/gates.py --all: 15/15 gates PASS, rc=0
  2. Gate 0.4 rebuilt AST-precise; 4 false flags -> 130 real hazards
    • scripts/gate_parallel_safety.py::gate_04_redis_keys rewritten from a regex + a +-13-line proximity window to an AST receiver/verb/data-flow model. Measured on the identical tree: OLD 4 flagged (ALL FOUR false positives: 2 keys that DO resolve to test_id, 2 matches inside string literals) -> NEW 130 flagged / 51 files, 0 real signal lost. Acceptance corpus 30/30; gate's own suite 66/66. I then extended REDIS_ROOT_NAMES/REDIS_ATTR_LEAVES (client,client,aclient,conn,conn) and REDIS_WRITE_VERBS (+29 incl psetex, lset, setrange, getdel, xdel, zincrby): 103->130 (+27,-0), flushdb coverage 0/5 -> 5/5. Root causes of the original blindness: (1) a single-line 'def test' AND 'test_id' conjunction, defeated by any WRAPPED signature - 437 such defs tree-wide; (2) raw-text scanning counted Redis calls inside STRING LITERALS - 28 of 72 matches; (3) the loose alternative test[a-z_]id matched a substring of the test's OWN function name, so three hardcoded session: global keys excused themselves.

Artifacts

Achievements