Restore CI on accelerate - #676
Merged
Merged
Conversation
martinmitrevski
pushed a commit
that referenced
this pull request
Sep 29, 2026
Brings the CI repair from accelerate onto the Athena runtime line: the dashboard job skips when there is no dashboard, Python CI runs on 3.12.13 with the locked wheels, the Python-versions check syncs only the dev tools, and the lint, typing and Go test fixes that apply here. Adapted to this line: - uv.lock is kept as it is here. The upstream change dropped the lemonslice and liveavatar plugins, which this line still has. - The shared-conversation session test keeps this line's expected author; the upstream expectation matches accelerate's author handling, not this line's. - The simulation config gains llm-flow only; the other aliases upstream belong to accelerate's newer routing. - aa_stats.py and sdks/kotlin/generate.py do not exist here and stay absent. (cherry picked from commit a518c0d) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
martinmitrevski
added a commit
that referenced
this pull request
Sep 30, 2026
…683) * feat(conversation): follow Stream's AI protocol for streamed replies Assistant replies are created with ai_generated: true, which is how Stream's AI components (StreamingMessageView and friends) tell a streamed reply from other messages. User messages are written as the agent too, so the field is set on the assistant's message only. Live updates go out every 100 ms instead of 200 ms, within Stream's guidance for streamed text, so clients animate the reply smoothly. The conversation now sends ai_indicator.update while a reply works (AI_STATE_THINKING, AI_STATE_EXTERNAL_SOURCES while a search runs, AI_STATE_GENERATING once the answer streams) and ai_indicator.clear once the final text is stored. The events are sent from the outbox loop after every pending write succeeds, only when the state changes, and through the SDK's typed SendEvent so Stream flattens ai_state and message_id to the top level where clients read them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs(changelog): note Stream's AI protocol for streamed replies Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Restore CI on accelerate (#676) Brings the CI repair from accelerate onto the Athena runtime line: the dashboard job skips when there is no dashboard, Python CI runs on 3.12.13 with the locked wheels, the Python-versions check syncs only the dev tools, and the lint, typing and Go test fixes that apply here. Adapted to this line: - uv.lock is kept as it is here. The upstream change dropped the lemonslice and liveavatar plugins, which this line still has. - The shared-conversation session test keeps this line's expected author; the upstream expectation matches accelerate's author handling, not this line's. - The simulation config gains llm-flow only; the other aliases upstream belong to accelerate's newer routing. - aa_stats.py and sdks/kotlin/generate.py do not exist here and stay absent. (cherry picked from commit a518c0d) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * style(stream): format dispatch.py for the CI ruff check Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Marcelo Pires <thesyncim@gmail.com>
Nash0x7E2
pushed a commit
that referenced
this pull request
Oct 1, 2026
…683) * feat(conversation): follow Stream's AI protocol for streamed replies Assistant replies are created with ai_generated: true, which is how Stream's AI components (StreamingMessageView and friends) tell a streamed reply from other messages. User messages are written as the agent too, so the field is set on the assistant's message only. Live updates go out every 100 ms instead of 200 ms, within Stream's guidance for streamed text, so clients animate the reply smoothly. The conversation now sends ai_indicator.update while a reply works (AI_STATE_THINKING, AI_STATE_EXTERNAL_SOURCES while a search runs, AI_STATE_GENERATING once the answer streams) and ai_indicator.clear once the final text is stored. The events are sent from the outbox loop after every pending write succeeds, only when the state changes, and through the SDK's typed SendEvent so Stream flattens ai_state and message_id to the top level where clients read them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs(changelog): note Stream's AI protocol for streamed replies Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Restore CI on accelerate (#676) Brings the CI repair from accelerate onto the Athena runtime line: the dashboard job skips when there is no dashboard, Python CI runs on 3.12.13 with the locked wheels, the Python-versions check syncs only the dev tools, and the lint, typing and Go test fixes that apply here. Adapted to this line: - uv.lock is kept as it is here. The upstream change dropped the lemonslice and liveavatar plugins, which this line still has. - The shared-conversation session test keeps this line's expected author; the upstream expectation matches accelerate's author handling, not this line's. - The simulation config gains llm-flow only; the other aliases upstream belong to accelerate's newer routing. - aa_stats.py and sdks/kotlin/generate.py do not exist here and stay absent. (cherry picked from commit a518c0d) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * style(stream): format dispatch.py for the CI ruff check Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Marcelo Pires <thesyncim@gmail.com>
Nash0x7E2
pushed a commit
that referenced
this pull request
Oct 1, 2026
…683) * feat(conversation): follow Stream's AI protocol for streamed replies Assistant replies are created with ai_generated: true, which is how Stream's AI components (StreamingMessageView and friends) tell a streamed reply from other messages. User messages are written as the agent too, so the field is set on the assistant's message only. Live updates go out every 100 ms instead of 200 ms, within Stream's guidance for streamed text, so clients animate the reply smoothly. The conversation now sends ai_indicator.update while a reply works (AI_STATE_THINKING, AI_STATE_EXTERNAL_SOURCES while a search runs, AI_STATE_GENERATING once the answer streams) and ai_indicator.clear once the final text is stored. The events are sent from the outbox loop after every pending write succeeds, only when the state changes, and through the SDK's typed SendEvent so Stream flattens ai_state and message_id to the top level where clients read them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs(changelog): note Stream's AI protocol for streamed replies Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Restore CI on accelerate (#676) Brings the CI repair from accelerate onto the Athena runtime line: the dashboard job skips when there is no dashboard, Python CI runs on 3.12.13 with the locked wheels, the Python-versions check syncs only the dev tools, and the lint, typing and Go test fixes that apply here. Adapted to this line: - uv.lock is kept as it is here. The upstream change dropped the lemonslice and liveavatar plugins, which this line still has. - The shared-conversation session test keeps this line's expected author; the upstream expectation matches accelerate's author handling, not this line's. - The simulation config gains llm-flow only; the other aliases upstream belong to accelerate's newer routing. - aa_stats.py and sdks/kotlin/generate.py do not exist here and stay absent. (cherry picked from commit a518c0d) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * style(stream): format dispatch.py for the CI ruff check Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Marcelo Pires <thesyncim@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
acceleratebranch fails CI before #674 is applied. Frozen Python setup points to deleted workspace plugins, the dashboard job runs without a dashboard, and backend tests have stale expectations and timing-dependent assertions. This PR restores that baseline independently of latency tracing.uv.lock. Run unit CI on Python 3.12, which has wheels for the locked dependencies, and install only development tools for the separate Python compatibility resolver.dashboard/package-lock.jsonexists. Bring the three scripts already covered by repository-wide Ruff formatting into compliance, and correct two existing Stream plugin type annotations.Locally, backend
go test ./...andgo vet ./...pass; the credential test passes 100 consecutive runs; Ruff lint and format checks pass; and the frozen Python install plan resolves. GitHub Actions is validating the full Linux matrix.