Veloop 0.1.2
What changed
- Moved permission status ownership fully into the background Agent. Each IPC state request now reads Input Monitoring, event-posting, and Accessibility access live through the public macOS preflight APIs.
- Registered and started the current embedded Agent before the control app requests permission state, with finite nonblocking IPC retries while the Agent becomes ready.
- Restarted the launchd-managed Agent after returning from System Settings, then waited for IPC recovery before refreshing permission state.
- Separated permission preflight from permission requests. Normal launch and activation never prompt; request APIs run only after an explicit click for a permission group that is currently missing.
- Added distinct Checking, Allowed, Required, and Agent Unavailable states. Agent startup or IPC failure is no longer displayed as missing authorization, and stale permission snapshots are cleared after terminal failures.
- Required both event-posting access and Accessibility trust for the Accessibility row, preventing partially authorized states from being reported as allowed.
- Moved Agent registration, restart, preference updates, IPC calls, and retry delays off the main thread. Added cancellation and overlapping-operation protection so older results cannot overwrite newer state.
- Kept the Agent identity stable at
com.veloop.service, with the embedded pathVeloop.app/Contents/Library/LoginItems/Veloop.appand the display/executable nameVeloop. - Fixed the public source tree so the required configuration sources and bundle metadata are included, while local release tooling remains excluded from GitHub.
- Improved Homebrew uninstall cleanup so the runtime-installed input method and LaunchAgent plist are removed during a normal uninstall.
Verification
- Added automated coverage for launch ordering, Agent-owned permission state, return-from-settings restart, allowed-state rendering, no unsolicited prompts, bounded retry, explicit unavailable errors, cancellation, and Agent registration behavior.
- Passed 147 automated tests.
- Verified App and Agent sources with complete Swift concurrency checking and warnings as errors.
- Verified the DMG, nested ad-hoc runtime signatures, stable bundle identifiers, and universal
arm64+x86_64architectures for the App, Agent, Palette, and CLI.
Installation note
Veloop 0.1.2 remains ad-hoc signed and is not notarized. After installation, run:
xattr -dr com.apple.quarantine /Applications/Veloop.appBecause the ad-hoc code identity changes when the executable changes, upgrading may require enabling Veloop again under Input Monitoring and Accessibility.
Download integrity
- Asset:
Veloop-0.1.2-universal.dmg - SHA-256:
6ad90b9d6e7055d9d09f0553b2261450b8a7150f4e908564707121cca532eb72