Skip to content

feat(desktop): native notifications for agent attention - #424

Closed
ALGORITHM-0 wants to merge 10 commits into
pylon-code:pylonfrom
ALGORITHM-0:feat/desktop-notifications
Closed

ALGORITHM-0 wants to merge 10 commits into
pylon-code:pylonfrom
ALGORITHM-0:feat/desktop-notifications

Conversation

@ALGORITHM-0

@ALGORITHM-0 ALGORITHM-0 commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Pylon desktop currently gives no system notification when an agent finishes or needs attention while the user is in another app. This adds native notifications for approval, input, completion, and failure, with per-device controls in General settings and a test button.

The renderer reconciles awareness transitions across all connected environments and threads. First observation primes silently, focused or disabled transitions are consumed without replay, and Electron main gates delivery on window focus. Clicking restores Pylon and opens the target thread. All five preferences default to ON, as approved by the maintainer.

Candidates carry environmentId and threadId rather than the shared mobile deepLink, so navigation uses the existing web route. Native notification objects remain alive until handled so delayed clicks retain their callbacks; the manual pass caught this lifetime issue and a collection-based regression test now covers it. No server, relay, mobile, or provider behavior changes.

Validation:

  • 150 targeted tests across settings contracts, awareness reconciliation, native notification lifetime, delivery, IPC, settings search, and desktop persistence.
  • Scoped typechecks for @t3tools/contracts, @t3tools/web, and @t3tools/desktop passed.
  • Unsigned Electron spike displayed a banner on macOS 26.5.2. Pylon (Dev) has a separate notification identity and required enabling its macOS notification setting.
  • Real desktop pass confirmed the focused test button, preference persistence across restart, a completion from thread B while thread A was open and Pylon hidden, and delayed click-through to thread B (verified by both navigation trace and exact route).
  • Focused completion was exercised; hiding afterward and restarting with finished threads sent no replay candidates. A turn completed with the master switch off, and re-enabling it sent no past completion.
  • Windows/Linux native presentation and detailed minimized-versus-occluded focus semantics remain platform review items.

Draft pending the repository-required before/after images and short recording of notification arrival and click-through. A settings screenshot is captured locally, but the computer-use tooling could not capture/upload the required full-screen recording. The implementation plan and approved design scratch file are intentionally excluded from this branch.

Implemented with GPT-6 Astra in Codex App.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Implemented with GPT-6 Astra in Codex App.
…ions

Update the desktop settings fixture for the new preference fields.

Implemented with GPT-6 Astra in Codex App.
…k-through

Implemented with GPT-6 Astra in Codex App.
Implemented with GPT-6 Astra in Codex App.
Implemented with GPT-6 Astra in Codex App.
Implemented with GPT-6 Astra in Codex App.
Keep pending notification objects alive until handled and release them when the desktop scope closes. Add collection-based lifetime regression coverage.

Implemented with GPT-6 Astra in Codex App.
@rynfar

rynfar commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator

The notification integration is now in #583, building directly on ALGORITHM-0's work here. The native Electron transport, category preferences, settings, notification lifetime handling, and regression tests are a substantial foundation of the combined implementation and complement upstream's browser alerts, sounds, in-app notices, and badges.

All ten commits from this PR retain their original authorship and source references in #583, and the integration commit carries a Co-authored-by credit. The comparative review identified fixes for event identity, reconnect baselines, renderer-ready navigation, and bounded notification lifetime; those are covered in the integration.

This PR has not been merged. Keeping it open until the combined integration is approved and merged preserves the review and contribution record.

@rynfar

rynfar commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator

Completed through merged PR #583. ALGORITHM-0’s native notification implementation is retained as a foundation of the combined system, with all ten original commits and authorship preserved in pylon history. Thank you for the native delivery, category controls, settings, lifetime handling, and tests.

@rynfar rynfar closed this Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants