loomcycle v1.1.1 ships RFC AI: interactive agentic sessions over gRPC and the TypeScript / Python adapters. A 3rd-party app can now start an interactive run, push operator messages into it mid-flight (steering), survive client disconnect under context.WithoutCancel, and re-attach by run_id from a fresh process or device. The Web UI proved this plumbing over v0.26-v0.30 (park at end_turn, drain a steer queue at the top of each iteration, cross-replica routing via the SteerCoordinator backplane, replay-from-?from_seq + live-tail). It was reachable only through six raw HTTP calls in the embedded UI. The official adapters had a one-shot model. gRPC had a deeper structural gap: the steer.Registry and re-attach tail were owned by the HTTP Server struct, not the transport-shared Connector. Three shared server changes + a thin per-transport surface. S1 makes the re-attach tail self-sufficient (replays the operator's own user_input rows as steer frames with source=replay, so a cold client reconstructs the whole conversation; Web UI de-dupes against optimistic echo). S2 lifts SteerRun + StreamRunEvents + RunEventVisitor onto the Connector so gRPC reaches the same in-process steer registry an HTTP-started run uses; handleRunInput dispatches through SteerRun too. S3 + gRPC: RunInput + StreamRun RPCs, interactive field, AwaitingInput/UserInput Event payloads, source server-stamped (never wire-trusted), tenant opaque-404 preserved, scope gates RunInput=runs:create and StreamRun=runs:read. TypeScript adapter goes 57→61 methods + a high-level InteractiveSession driver that ports the Web UI's useRunStream orchestration. Python adapter goes 40→42 RPCs. Both adapters realign to 1.1.1 (the loomcycle line) so they actually publish together. Reuse over reinvention: the parking, steering, cross-replica routing, and re-attach engines didn't change; only where they're reachable from did. Combined with v1.1.0's Filesystem Volumes, an external product can now create an ephemeral workspace, start a loomcycle agent in interactive mode, drive the conversation through the official adapter, let the user disconnect or switch devices, re-attach by run_id later, and the ephemeral volume auto-purges. Zero loomcycle-specific reverse engineering. The Paca integration itself remains on hold while the maintainer absorbs the multi-agent ensemble shape; the runtime side is no longer the blocker.
7 AI Tools Every SDET Should Learn in 2026 — With Real Testing Use Cases