Conversation
🔀 Branch Merge CheckPR direction: ✅ Passed — |
✅ Community PR Path Check — PassedAll changed files are inside the |
✅ Ability Validation Passed |
🔍 Lint Results🔧 Auto-formattedSome files were automatically cleaned and formatted with
✅
|
|
Hey @francip, thanks for the submission! I reviewed the code and SDK compliance and everything looks good on that front. One thing holding us back from a full sign-off is that |
|
that's my bad, I traveled, and had to take the mini with me. the machine is back up, the two streams should be reachable. I'll move this on a different machine that never leaves my desk in the next day or so to avoid disruptions like this. |
2c9dda1 to
3e0dde9
Compare
uzair401
left a comment
There was a problem hiding this comment.
Hi @francip , there’s an issue in the current implementation where await self._stream() blocks the entire run() method, so the command loop never listens for a “stop” command. Even if _stream() is moved to a task, user_response() still blocks while waiting for input, which prevents the loop from detecting stop events triggered externally (e.g., stream disconnect).
Please update this by running the stream as a background task using self.worker.session_tasks.create(self._stream()) so the loop remains responsive. Also ensure the stop event is checked at multiple points: before waiting for user input, immediately after user_response() returns, and within the user’s spoken command (e.g., “stop”, “off”, “exit”, “turn it off”).
Additionally, simplify the flow to auto-start on trigger, wait for a stop command, and exit cleanly without restart logic.
I don't have edit access otherwise i would have implemented the changes myself.
|
Good suggestion. I think I got it now. |
uzair401
left a comment
There was a problem hiding this comment.
Great work on this @francip, I am approving it for the community.
As part of our process, abilities go through a 30-day evaluation period where we monitor performance, identify any issues, and make necessary improvements. Once everything meets our quality standards, we proceed with publishing to the marketplace with full credit to the original author.
We truly appreciate your effort and encourage you to keep building and submitting more abilities. Contributions like yours help strengthen the ecosystem, and we look forward to seeing more of your work.
|
@uzair401 I assume someone else will merge it? |
What does this Ability do?
Stream KRTX-AI - the AI radio from kortexa.ai
Suggested Trigger Words
Type
External APIs
Testing
Checklist
community/my-ability-name/main.pyfollows SDK pattern (extendsMatchingCapability, hasregister_capability+call)README.mdincluded with description, suggested triggers, and setupresume_normal_flow()called on every exit pathprint()— usingeditor_logging_handlerredis,connection_manager,user_config)asyncio.sleep()orasyncio.create_task()— usingsession_tasksAnything else?