Skip to content

feat(desktop): refine setup, Activity Center, and relaunch handoff - #19

Merged
Aforno merged 3 commits into
mainfrom
t3code/refine-app-improvements
Aug 30, 2026
Merged

feat(desktop): refine setup, Activity Center, and relaunch handoff#19
Aforno merged 3 commits into
mainfrom
t3code/refine-app-improvements

Conversation

@Aforno

@Aforno Aforno commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Summary

A second launch used to start another process and compete for ~/.agentnotch/agent.sock. Setup and Integrations hid most provider state. Activity Center lumped completed and failed sessions together, and tool start/complete rows split when another event landed between them.

A repeated launch now finds the oldest running Agent Notch process, asks it to open Activity Center, and exits before the new process starts the runtime. Dock reopen opens Activity Center in that same process.

Setup and Integrations show each provider's connection state and a connected count. Setup names the finish action Finish without Connecting when nothing is installed yet, and both screens state that observers stay local.

Activity Center's Active and Attention metrics toggle the session list. Status filters keep completed and failed separate. Tool lifecycle events that share a call identifier collapse to one timeline row, with failed tools marked as failures. Project headings no longer expose the decorative folder as a VoiceOver action, long session titles show in hover help, and sidebar/row motion respects Reduce Motion. The Last 30 days date filter is gone.

Verification

  • swift test
  • swift test -c release
  • ./script/package_release.sh --adhoc
  • ./script/check_repository.sh
  • Packaged-app UI/runtime smoke test, when applicable

Packaged smoke, if you run it: launch while Agent Notch is already running and confirm Activity Center comes forward in the first process, then quit. Check Setup/Integrations status chips, Active/Attention metric filters, Completed vs Failed, and a tool start/complete pair with another event in between.

Compatibility and risk

Hook decoding accepts toolUseId, toolCallId, tool_use_id, and tool_call_id, then stores the value in metadata.toolCallId. The field is optional. Events without it still pair adjacent same-tool rows. PostToolUseFailure now includes tool metadata so a failed call can join the same row. The local event protocol stays additive. docs/PROTOCOL.md tells emitters to set metadata.toolCallId when they have a stable id.

No store schema or signing change. A persisted thirtyDays date filter loads as Last 7 days.

Relaunch uses NSRunningApplication plus a distributed notification, com.afonsoferreira.AgentNotch.activateExistingInstance. The new process must exit in applicationWillFinishLaunching so it never binds the event socket. If that handoff misses, two instances can still collide.

Screenshots

UI changed on Setup, Integrations, and Activity Center: provider status, metric filters, Failed vs Completed, coalesced tool rows. None attached here.

- Hand a repeated launch to the running process and open Activity Center
- Show provider connection state in Setup and Integrations
- Let Active/Attention metrics filter sessions; keep completed and failed separate
- Collapse tool lifecycle events that share a call identifier
Copilot AI lite review requested due to automatic review settings August 29, 2026 12:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Aforno added 2 commits August 29, 2026 14:43
- Hand off only to a strictly older process, with an exclusive lock as tie-breaker
- Count Active and Attention chips against the current filters
- Replace “N of M connected” with install/remove copy
- Keep status in accessibility labels and follow-up text
- Remove unused ProviderIntegrationStatusView
@Aforno
Aforno merged commit da510dc into main Aug 30, 2026
2 checks passed
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.

2 participants