Skip to content

Answered a query against a parked external-stream workflow. - #105

Open
moetemp wants to merge 3 commits into
moe/AI-198-s1-py-15-constructor-publishfrom
moe/AI-198-s1-py-16-parked-run-query
Open

moetemp wants to merge 3 commits into
moe/AI-198-s1-py-15-constructor-publishfrom
moe/AI-198-s1-py-16-parked-run-query

Conversation

@moetemp

@moetemp moetemp commented Oct 6, 2026

Copy link
Copy Markdown
Owner

This PR fixes queries against a workflow parked on an external stream.

What changed?

When a completion answers a legacy query, _emit_external_stream_commands returns before it adds any external stream command, so neither the stream snapshot nor the progress marker goes out beside the answer. _LEGACY_QUERY_ID is held in step with Core's LEGACY_QUERY_ID. A new integration case parks a run on an empty stream, queries it, then publishes and checks that the run finishes with no failed Workflow Task.

Part of AI-198 (epic AI-37).

Why?

A parked run has no open Workflow Task, so the server sends a query on a task of its own. Core allows nothing beside the answer on that task. The instance still added the wait set it had registered, so Core refused the completion and the query timed out. That activation ran no workflow code, so there's nothing new to report anyway.

It's a bug in Max's prototype, and it bites any query against a parked run. The earlier series placed it before a channel wake PR that made every completion carry a report, which turned every legacy query on a channel server into a failure. That wake is paused with the notification channel per the 2026-10-05 design review, so the fix now stands on its own.

How did you test it?

Link to a test plan if any -

  • Unit Tests
  • Staging
  • End to End Tests

The new case, the whole external stream suite and tests/streams pass on the dev server the fixtures start. The lint set is clean.

A parked Run has no open Workflow Task, so the server dispatches a query on a
task of its own and Core allows nothing beside the answer there. The instance
still reported the registered wait set, Core refused the completion, and the
query timed out.
The id is Core's, and nothing in this file said where it is defined, so a
rename over there would be found by a failing query rather than by grep.
@moetemp moetemp added the skip-changelog Changelog entry rides another PR label Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog Changelog entry rides another PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant