Problem
The release/runtime tree can contain the Swift build output without the signed EchoLogScreenCapture.app bundle expected by screen understanding. The daemon then reports Keychain helper unavailable. After a local ad-hoc rebuild, Keychain authorization can also prompt repeatedly because scheduled understanding retries a blocked helper invocation.
Scope
- build and package EchoLogScreenCapture.app in the macOS release path
- validate the helper in the actual launchd WorkingDirectory
- fail with an explicit helper install/build diagnostic
- keep passive screen-time tracking healthy when the helper is absent
- add focused tests and release smoke coverage
- prevent automatic retries from repeatedly surfacing Keychain authorization prompts
Acceptance
- Node tests, typecheck, and build pass
- source-tree and launchd helper smoke tests pass on macOS
- release staging validates the helper app bundle before archive creation
Problem
The release/runtime tree can contain the Swift build output without the signed EchoLogScreenCapture.app bundle expected by screen understanding. The daemon then reports Keychain helper unavailable. After a local ad-hoc rebuild, Keychain authorization can also prompt repeatedly because scheduled understanding retries a blocked helper invocation.
Scope
Acceptance