{"slug": "interactive-agentic-sessions-now-on-every-adapter-v1-1-1", "title": "Interactive agentic sessions, now on every adapter (v1.1.1)", "summary": "Loomcycle released v1.1.1, enabling interactive agentic sessions over gRPC and TypeScript/Python adapters. Third-party apps can now start interactive runs, push operator messages mid-flight, survive client disconnects, and re-attach by run_id. The update lifts steering and re-attach capabilities to the transport-shared Connector, making interactive sessions accessible through official adapters without reverse engineering.", "body_md": "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.", "url": "https://wpnews.pro/news/interactive-agentic-sessions-now-on-every-adapter-v1-1-1", "canonical_source": "https://loomcycle.dev/blog/interactive-sessions-on-every-adapter.html", "published_at": "2026-06-27 12:00:00+00:00", "updated_at": "2026-06-30 17:34:04.739767+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-infrastructure"], "entities": ["loomcycle", "gRPC", "TypeScript", "Python", "SteerCoordinator", "Paca"], "alternates": {"html": "https://wpnews.pro/news/interactive-agentic-sessions-now-on-every-adapter-v1-1-1", "markdown": "https://wpnews.pro/news/interactive-agentic-sessions-now-on-every-adapter-v1-1-1.md", "text": "https://wpnews.pro/news/interactive-agentic-sessions-now-on-every-adapter-v1-1-1.txt", "jsonld": "https://wpnews.pro/news/interactive-agentic-sessions-now-on-every-adapter-v1-1-1.jsonld"}}