Skip to content

fix(desktop): open a notification's channel when it's clicked, and summarize a run before it asks - #694

Open
iamnbutler wants to merge 3 commits into
mainfrom
fix-notify
Open

iamnbutler wants to merge 3 commits into
mainfrom
fix-notify

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

Not merged. The native notification click still needs to be seen on a Mac.

Clicking a desktop notification now opens its channel. Utils.showNotification from Electrobun 1.18.1 has no click handling, so the desktop app posts notifications itself through UNUserNotificationCenter (native/notify.m, built into ace-notify.dylib). Each notification carries its channel's id in userInfo. A click activates Ace, then sends ace:channel to the last-used window, or opens a window at #channel=<id> when none is open. The page selects that channel once it's listed. Mention notices carry their channel, and so does a batch of missed mentions when it covers one channel. A team join ask carries no channel and just opens Ace.

The channel prompt now asks the agent to update the rolling summary before it asks a question, as well as before its final answer. That way the Dashboard row describes the run that's waiting, not the earlier answered one.

Map: ^578, ^577.

Smoke test (a desktop dev build from this lane, ACE_PORT=5164, its own profile):

  • Summary: asked anthropic/claude-opus-5-5 to read README.md and then ask a question. While the question waited, ace info gave the summary as "…choose between adding a LICENSE file or a .gitignore; waiting on the user's choice."
  • Page side: loading the app at #channel=<notify-b> opened notify-b, even though notify-a had a waiting question (the no-project jump would otherwise go there). Sending ace:channel with notify-a's id switched the view to notify-a.
  • Not seen: a real notification and its click. Desktop Tools refused this agent with CALLER_NOT_APPROVED, and I found no trace of the notification in the system log. Before merging, someone should check on a Mac that a question raises a notification (Ace may ask for notification permission first) and that clicking it opens the channel.

Built in Ace

No. Claude Code (a fix-train worker) wrote this from the shell, a desktop dev build and headless Playwright, not in an Ace channel (#5).

…mmarize a run before it asks

Why: apps/desktop/native/notify.m | Ace posts its own UNUserNotificationCenter notifications with the channel in userInfo; Electrobun's showNotification has no click handling
Why: packages/channel/src/room.ts#function section | the rolling summary is updated before the agent asks a question, so the Dashboard row describes what waits on the person

This branch has not been deployed

No deployments
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