Skip to content

feat(streaming): add speech-events topic - #55

Merged
jrb00013 merged 3 commits into
devfrom
joe_black/feat/speech-events-topic
Aug 26, 2026
Merged

feat(streaming): add speech-events topic#55
jrb00013 merged 3 commits into
devfrom
joe_black/feat/speech-events-topic

Conversation

@jrb00013

Copy link
Copy Markdown
Member

Summary

  • Add StreamTopics.SPEECH_EVENTS = speech-events
  • Include it in sugar_glider_allowlist() for compose SIDECAR/SUGAR_GLIDER stream lists

Test plan

  • Topic enum includes speech-events
  • Platform compose allowlist includes speech-events (companion PR)

Made with Cursor

Align ModelKit topics with Sugar Glider compose wiring for the speech plane.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jrb00013

Copy link
Copy Markdown
Member Author

/sorge

@deepiri-sorge

deepiri-sorge Bot commented Aug 25, 2026

Copy link
Copy Markdown

Sorge AI Code Review

Model: nvidia/nemotron-3-super-120b-a12b:free (openrouter)
Quality Score: 9.2/10 — Production-ready, minimal issues


Summary

The PR adds a new StreamTopics member for speech events and updates the docstring of sugar_glider_allowlist to reflect that it covers both SUGAR_GLIDER_ and SIDECAR_ streams. The change is consistent with existing patterns but may require updating a test that checks the length of the allowlist.


Issues Found

⚠️ src/deepiri_modelkit/streaming/topics.py:34

Adding SPEECH_EVENTS to StreamTopics increases the length of sugar_glider_allowlist() return value, which may break the existing test in tests/test_streaming_topics.py:44 that asserts the length.
Suggestion: Update the test in tests/test_streaming_topics.py to expect the new length (current length + 1). — Ensure that tests are updated to reflect changes in enum members that are part of the allowlist.

Routing (scheduled, 1 chunk(s))
  • Rung: scheduled
  • Chunks: 1
  • Quota this run: gemini: 20/20, gpt: 14/1000, openrouter: 13/50
  • Scheduler: 2 dispatch(es), 0 skipped
  • Avg complexity: 0.23
  • Provider health: gemini=66, groq=85, openrouter=45
  • Picks: groq(fail|lane|eff=3012|mt=4096|sc=0.9021), openrouter(ok|failover|eff=3012|sc=0.7508)

Review generated by deepiri-sorge

Address Sorge feedback by covering SPEECH_EVENTS in the shared topics
and sugar_glider_allowlist assertions.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jrb00013

Copy link
Copy Markdown
Member Author

/sorge

@deepiri-sorge

deepiri-sorge Bot commented Aug 25, 2026

Copy link
Copy Markdown

Sorge AI Code Review

Model: nvidia/nemotron-3-super-120b-a12b:free (openrouter)
Quality Score: 9.2/10 — Production-ready, minimal issues


Summary

The PR adds a new StreamTopics enum value for speech events and updates the docstring of the sugar_glider_allowlist method to reflect that it now includes SUGAR_GLIDER_ streams. However, the method's implementation returns all topics, making the docstring inaccurate. The change is otherwise straightforward and follows existing patterns.


Issues Found

⚠️ src/deepiri_modelkit/streaming/topics.py:40

The docstring for sugar_glider_allowlist claims to return the canonical SUGAR_GLIDER_/SIDECAR_ PUBLISH/CONSUME stream list, but the method returns all topics (including non-matching ones like 'speech-events'). This is inconsistent and may mislead users.
Suggestion: Either rename the method to all_topics and update the docstring to reflect that it returns all topics, or change the implementation to return only the topics that are prefixed with SUGAR_GLIDER or SIDECAR_ (and update the docstring to match). — If the method is intended to return a specific allowlist for sugar glider, then the implementation should be fixed to return only the relevant topics. If it is intended to return all topics, then the method should be renamed and the docstring updated accordingly._

Routing (scheduled, 1 chunk(s))
  • Rung: scheduled
  • Chunks: 1
  • Quota this run: gemini: 20/20, gpt: 16/1000, openrouter: 14/50
  • Scheduler: 2 dispatch(es), 0 skipped
  • Avg complexity: 0.25
  • Provider health: gemini=66, groq=82, openrouter=45
  • Picks: groq(fail|lane|eff=3239|mt=4096|sc=0.8942), openrouter(ok|failover|eff=3239|sc=0.7555)

Review generated by deepiri-sorge

Address Sorge feedback — the helper returns Redis stream topic names for
compose allowlists, not SUGAR_GLIDER_/SIDECAR_ env var names.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jrb00013

Copy link
Copy Markdown
Member Author

/sorge

@deepiri-sorge

deepiri-sorge Bot commented Aug 25, 2026

Copy link
Copy Markdown

Sorge AI Code Review

Model: nvidia/nemotron-3-super-120b-a12b:free (openrouter)
Quality Score: 10.0/10 — Production-ready, minimal issues


Summary

The PR adds a new StreamTopics enum value for speech events, updates the docstring of sugar_glider_allowlist to be more descriptive, and adds tests to verify the new topic is included in the allowlist and all topics. The changes are consistent with the existing codebase and follow the established patterns.

Routing (scheduled, 1 chunk(s))
  • Rung: scheduled
  • Chunks: 1
  • Quota this run: gemini: 20/20, gpt: 18/1000, openrouter: 16/50
  • Scheduler: 2 dispatch(es), 0 skipped
  • Avg complexity: 0.26
  • Provider health: gemini=66, groq=80, openrouter=61
  • Picks: groq(fail|lane|eff=3291|mt=4096|sc=0.8896), openrouter(ok|failover|eff=3291|sc=0.7585)

Review generated by deepiri-sorge

@jrb00013

Copy link
Copy Markdown
Member Author

QA (author cannot self-approve)

Verified: adds SPEECH_EVENTS topic + tests; CI green; Sorge already ran. Merging with admin after QA pass (branch protection requires a non-author approval which we cannot self-provide).

@jrb00013
jrb00013 merged commit e0401d2 into dev Aug 26, 2026
3 checks passed
christiankrider1 added a commit that referenced this pull request Aug 27, 2026
* feat(streaming): add speech-events topic (#55)

* feat(streaming): add speech-events to StreamTopics allowlist

Align ModelKit topics with Sugar Glider compose wiring for the speech plane.

Co-authored-by: Cursor <cursoragent@cursor.com>

* test(streaming): assert speech-events in allowlist

Address Sorge feedback by covering SPEECH_EVENTS in the shared topics
and sugar_glider_allowlist assertions.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(streaming): clarify sugar_glider_allowlist returns stream topics

Address Sorge feedback — the helper returns Redis stream topic names for
compose allowlists, not SUGAR_GLIDER_/SIDECAR_ env var names.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>

* Merge main into dev [skip ci]

* chore(ci): cut Actions minutes without dropping CD or CodeQL (#56)

Keep PR CI/CodeQL on main/dev (including subsequent PR pushes), cancel
stale runs, drop post-merge push double-fires, add paths-ignore and
timeouts. CD deploy triggers left intact.

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* chore(deps): bump mlflow in the pip group across 1 directory (#57)

Bumps the pip group with 1 update in the / directory: [mlflow](https://github.com/mlflow/mlflow).


Updates `mlflow` from 3.14.0 to 3.15.0
- [Release notes](https://github.com/mlflow/mlflow/releases)
- [Changelog](https://github.com/mlflow/mlflow/blob/master/CHANGELOG.md)
- [Commits](mlflow/mlflow@v3.14.0...v3.15.0)

---
updated-dependencies:
- dependency-name: mlflow
  dependency-version: 3.15.0
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Merge dev into main [skip ci]

* feat(streaming): add speech-events to StreamTopics allowlist

Align ModelKit topics with Sugar Glider compose wiring for the speech plane.



* test(streaming): assert speech-events in allowlist

Address Sorge feedback by covering SPEECH_EVENTS in the shared topics
and sugar_glider_allowlist assertions.



* docs(streaming): clarify sugar_glider_allowlist returns stream topics

Address Sorge feedback — the helper returns Redis stream topic names for
compose allowlists, not SUGAR_GLIDER_/SIDECAR_ env var names.



---------

Co-authored-by: Joe Black <jrb00013wvu@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Joe Black <jrb00013wvu@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Joe Black <jrb00013wvu@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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.

1 participant