Skip to content

fix: avoid login-item deadlocks and blend the popover arrow - #140

Merged
cclank merged 1 commit into
cclank:mainfrom
kermars39-web:fix/login-item-deadlock-arrow-blend
Oct 30, 2026
Merged

cclank merged 1 commit into
cclank:mainfrom
kermars39-web:fix/login-item-deadlock-arrow-blend

Conversation

@kermars39-web

Copy link
Copy Markdown
Contributor

Starting Tokei or opening Settings can hang while checking the login item. The parent waits for launchctl to exit before reading its pipe, so a child blocked writing output can never finish. Drain the combined stdout/stderr pipe while the child runs, then collect its exit status.

This also fixes the visible arrow seam left after #135: dark AppKit appearance alone still differs from the blue-gray SwiftUI tint. Render the panel backdrop once, leave its top edge on the native popover material shared with the arrow, and blend into the existing tint over 24 points. Offline rendering keeps its full background.

Validation:

  • Added a native regression covering 1 MiB output, exit status, stderr and empty output; its Python test runner passes.
  • The original wait-before-read implementation reproduced the output deadlock; the fixed implementation completes.
  • Existing login-item registration/repair checks and six popover placement structure checks passed.
  • Apple Silicon Release build and strict local app signature verification passed.
  • Native UI checks passed for relaunch, Settings round trips, complete compact panel content, and the arrow-to-panel transition.

@cclank
cclank merged commit 56f2b30 into cclank:main Oct 30, 2026
9 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