feat: add completion notifications plugin - #20
Conversation
thomwebb
left a comment
There was a problem hiding this comment.
Thanks for the thoughtful cross-platform implementation and focused tests. I found one Windows executable-search vulnerability plus lifecycle issues that make the plugin notify for internal helper runs and potentially lose notifications in supported headless mode. The full suite is green, but these behaviors need fixes before merge.
Validation: 1990 passed, 2 skipped; focused notification tests 12 passed; Ruff and git diff --check passed.
Review feedback addressedImplemented all requested fixes in
Validation
The full suite was also run; the completion-notification coverage is green. Could you please take another look when you have a moment? Thanks! |
kvandre12-commits
left a comment
There was a problem hiding this comment.
I independently revalidated the requested-change follow-up at 73b9025f against the current Code Puppy host.
The four review findings are addressed:
- Windows PowerShell invocation now uses a trusted absolute path instead of bare-name lookup.
- Lifecycle depth suppresses nested helper-run notifications while allowing the outer completion.
session_endandshutdowndrain tracked workers with a bounded join.- Notification title/message text uses Code Puppy i18n catalogs.
Validation performed:
- focused completion-notification suite: 15 passed
- Ruff lint and formatting checks passed
git diff --checkpassed- wheel build passed
- wheel inspection confirmed all 3/3 locale catalogs are packaged
I found no remaining blocker in the requested-change scope. The original requesting reviewer will still need to dismiss or supersede the stale CHANGES_REQUESTED state.
Review — worktree at
|
Summary
Adds an opt-in
completion_notificationcore plugin for native desktop notifications after successful top-level Code Puppy responses.What changed
completion_notificationplugin and registers it through the officialcode_puppy.pluginsentry-point group.osascript, named system sounds such asFrog, or absolute local sound-file paths viaafplaynotify-sendwhen available, pluspaplay/aplayfor local sound filesTERM_PROGRAM.shell=True.Configuration
Enable notifications:
Configure a macOS named sound:
Or configure an absolute local sound-file path:
macOS sound preview example:
Validation
Passed:
Focused notification test suite:
The tests cover:
notify-sendargv constructionFull-suite note
The full suite result in the local environment was:
The three failures are unrelated pre-existing wheel-build tests that intentionally run:
They could not resolve the required
hatchlingbuild dependency because it was not cached locally. The failures are outside this feature’s changed files:tests/test_agent_creator_skill.pytests/test_qa_kitten_skill.pytests/test_web_retriever_skill.pyReview
code-reviewerpass found no blockers.