Skip to content

Fixed the suite health chores on the external-stream Core base. - #11

Closed
moetemp wants to merge 8 commits into
task/python-sdk-streamingfrom
moe/AI-198-ch-ext-core-0-suite-health
Closed

moetemp wants to merge 8 commits into
task/python-sdk-streamingfrom
moe/AI-198-ch-ext-core-0-suite-health

Conversation

@moetemp

@moetemp moetemp commented Oct 3, 2026

Copy link
Copy Markdown
Owner

This PR fixes the chores Max's external-stream Core base needs before anything builds or tests cleanly on it today.

What changed?

  • Nexus tasks time out locally even when the server sends a request-timeout header outside the Nexus duration grammar. Backported from upstream by James Watkins-Harvey.
  • Two integ fixes against the current dev server, also James's backports. The dev server turns on system.enableCancelActivityWorkerCommand, and the Prometheus query in the metrics test is scoped to the test's task queue.
  • The integ matrix honors its per-runner timeoutMinutes, so macos-intel gets the 40 minutes it asks for.
  • model.wit and workflow-service.wit match upstream, so nexgen accepts them and the generated Python Nexus model stops requiring first_execution_run_id.
  • ExternalStreamMachine is registered with the transition coverage reporter.
  • A nested type in an external stream test becomes a type alias.

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

Why?

Each one keeps the suite honest on Max's older base. Without the Nexus fix, nexus_metrics hangs. Without the coverage registration, the reporter panics on a machine it doesn't know. cargo test-lint fails on the base itself until the type alias lands. None of this touches the channel or the stream machinery, so it sits at the bottom of the chain where every later PR can rely on a green suite.

How did you test it?

Link to a test plan if any -

  • Unit Tests
  • Staging
  • End to End Tests

cargo fmt --check, cargo lint and cargo test-lint are clean, and the Core lib suite passes. Every commit builds. The integ fixes weren't run against a dev server here.

mjameswh and others added 8 commits October 3, 2026 01:03
Backported from upstream `84be3c1f`. This branch forked before that fix, and
the dev server bundled with the current Core writes the header with Go's
duration syntax, which the old parser rejects, so `nexus_metrics` hangs.
Backported from upstream `c87e2060`. The dev server needs
`system.enableCancelActivityWorkerCommand`, and the eager case needs a
server newer than the one the pinned CLI bundles.
Backported from upstream `42c7bfe9`. This branch forked before that fix,
and the unscoped query also matches the shared-namespace worker's series,
whose order is not the test's to choose.
The matrix asks for 40 minutes on `macos-intel`, but the job never read
that value, so the runner stayed on the 25-minute default it exceeds.
The nexgen the Python SDK drives rejects @nexus.type on a native
declaration, so generation failed for every consumer. Upstream declares
both policies as placeholders, which keeps the annotations valid.
The `string` declaration made the generated Python Nexus model require
`SignalWithStartWorkflowResponse.first_execution_run_id`, which the dev server
bundled with this Core never sends. Upstream omits the field instead.
The reporter panics on any machine name it has no visualizer for, so
every state machine has to be listed there.
`clippy::type_complexity` rejects the inline nested type, and the lint
is denied through `-D warnings` in `cargo test-lint`.
@moetemp

moetemp commented Oct 5, 2026

Copy link
Copy Markdown
Owner Author

Replaced by #29 in the v4 series: one lineage through the channel and the interface, with Max's Option 7 prototype replayed onto it. The branch stays as a pin.

@moetemp moetemp closed this Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants