Skip to content

[codex] Add ignored app and process controls - #31

Merged
ygsgdbd merged 1 commit into
mainfrom
codex/ignore-app-process
Jul 14, 2026
Merged

[codex] Add ignored app and process controls#31
ygsgdbd merged 1 commit into
mainfrom
codex/ignore-app-process

Conversation

@ygsgdbd

@ygsgdbd ygsgdbd commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Summary

ListenBar can now persistently ignore noisy listening applications and command-line processes, while keeping ignored entries recoverable from the menu.

Applications are identified by bundle identifier. Command-line processes are identified by their absolute executable path, so the ignore rule remains effective when the process restarts with a different PID. The menu also explains that selecting an ignored item restores it, while retaining the existing eye icon semantics.

Problem and user impact

Frequently running applications and development tools can keep stable listeners open for long periods, adding noise to the process and port list. Previously, users had no way to hide these known listeners without losing visibility into the rest of the system.

Using a PID as the ignored identity would not solve the problem because PIDs change after restart. It would also make the ignored-items menu misleading if it persisted a process label containing an expired PID.

Root cause

The scan results were applied directly to the visible state, and settings only stored the automatic refresh mode. There was no stable persisted identity for an application or executable, no visibility-filtering layer, and no menu flow for restoring hidden entries.

Changes

  • Add a Codable IgnoredProcessItem model with stable application and executable identities.
  • Persist ignored items in AppSettings, including backward-compatible decoding, identity validation, and deduplication.
  • Filter process groups, ports, metadata, counts, and copied listener reports consistently.
  • Preserve unfiltered scan data for visibility recalculation and keep kill/quit stale-target preflight based on fresh raw scans.
  • Apply ignore and restore changes immediately after menu dismissal, even when the following refresh fails.
  • Freeze the ignored-items snapshot while the root menu is tracking to avoid dynamically reshaping an open macOS menu.
  • Add per-group ignore actions and an ignored-items submenu with individual restore and restore-all actions.
  • Add a non-interactive Select an item to show it again section header while retaining the existing eye.slash, eye, and restore-all icons.
  • Persist stable executable names rather than labels containing a PID that becomes stale after restart.
  • Add English, Simplified Chinese, and Traditional Chinese localizations and update both READMEs.

Validation

  • SwiftFormat 0.62.1: 0 files require formatting.
  • tuist generate --no-open: succeeded.
  • Full XCTest suite passed with 159 test methods using -testLanguage zh-Hans and code signing disabled.
  • jq empty ListenBar/Resources/Localizable.xcstrings: passed.
  • git diff --check HEAD^ HEAD: passed.
  • Focused RED/GREEN regression coverage was added for stable identities, PID changes, invalid executable paths, settings migration, filtering, menu tracking, refresh failures, restore behavior, localization, and menu copy.

@ygsgdbd
ygsgdbd marked this pull request as ready for review July 14, 2026 09:50
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@ygsgdbd
ygsgdbd merged commit bba9702 into main Jul 14, 2026
2 checks passed
@ygsgdbd
ygsgdbd deleted the codex/ignore-app-process branch July 14, 2026 09:50
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