User problem
이미 frontmost인 앱에 같은 shortcut을 반복해도 activate만 다시 호출되어 직전 작업으로 빠르게 돌아갈 수 없다. 사용자는 앱 전환 shortcut을 다시 눌렀을 때 현재 앱을 숨겨 직전 앱으로 돌아가길 기대할 수 있지만, 현재 Zap에는 이 반복 입력을 구분하거나 기존 동작을 보존한 채 opt-in할 설정이 없다.
Product value
같은 앱 shortcut을 다시 눌러 앱을 숨기고 직전 작업으로 빠르게 돌아간다. 기존 사용자는 기본 동작을 그대로 유지하고, 원하는 사용자만 Automatic Dock과 Manual shortcut에 공통된 예측 가능한 repeated-action 정책을 선택할 수 있다.
Scope
- Settings에
When the target app is already frontmost preference를 추가하고 첫 버전의 선택지를 Activate only와 Hide app으로 제한한다.
- target app이 frontmost인지 판정한 뒤 선택된 정책을 Automatic Dock shortcut과 Manual shortcut의 공통 app-launch 경로에서 적용한다.
- preference가 저장되지 않은 기존 설치와 새 설치 모두
Activate only로 해석해 현재 activation behavior를 보존한다.
- Finder는 이 preference의 대상에서 제외하고 shortcut이 반복되어도 기존 Finder reopen behavior를 사용한다.
Acceptance criteria
When the target app is already frontmost 설정을 제공한다.
- 첫 버전은
Activate only와 Hide app을 지원한다.
- 기존 설치 기본값은
Activate only다.
- Automatic Dock과 Manual shortcut에 같은 정책을 적용한다.
- Finder는 repeated-action 정책에서 제외하고 기존 reopen behavior를 항상 사용한다.
Activate only에서 non-Finder target이 이미 frontmost이면 현재와 같이 activate를 다시 수행하며 다른 앱이나 창을 숨기지 않는다.
Hide app에서 non-Finder target이 이미 frontmost일 때만 해당 앱을 숨기고, target이 frontmost가 아니면 일반 activation을 수행한다.
- 저장값이 없거나 지원하지 않는 값이면 안전하게
Activate only로 fallback하며, preference 변경과 재실행 뒤에도 선택이 유지된다.
- Automatic Dock과 Manual shortcut 각각에서 frontmost/non-frontmost 조합을 검증하고, Finder는 두 shortcut family 모두에서 선택값과 무관하게 숨겨지지 않으며 기존 reopen 결과를 유지한다.
Dependencies
None
External prerequisites
None
Non-goals
- 같은 앱의 여러 window를 순환하는
Cycle Windows는 R-32의 범위다.
- Finder를 숨기거나 Finder의 기존 reopen semantics를 repeated-action preference로 변경하지 않는다.
- 첫 버전에서 app별 또는 shortcut별로 서로 다른 repeated-action policy를 제공하지 않는다.
- app activation 실패에 대한 전체 error taxonomy나 shortcut registration architecture를 다시 설계하지 않는다.
Evidence
- 현재 launcher는 저장된 app URL을 resolve한 뒤
NSWorkspace.openApplication으로 activate하며, target이 이미 frontmost인지 또는 반복 입력인지에 따른 분기가 없다: AppLauncher.swift lines 36–49.
- rcmd의 공식 changelog는 repeated shortcut 동작을 제공하는 인접 제품의 공개 behavior evidence다: rcmd changelog.
Milestone exit-gate impact
- 앱 shortcut 반복으로 현재 앱을 숨기거나 같은 앱의 원하는 창까지 이동할 수 있다. 이 Issue는
Hide app 절반을 제공하며 window cycling은 R-32가 담당한다.
- 기존 사용자 동작은 opt-in 전까지 바뀌지 않는다.
User problem
이미 frontmost인 앱에 같은 shortcut을 반복해도 activate만 다시 호출되어 직전 작업으로 빠르게 돌아갈 수 없다. 사용자는 앱 전환 shortcut을 다시 눌렀을 때 현재 앱을 숨겨 직전 앱으로 돌아가길 기대할 수 있지만, 현재 Zap에는 이 반복 입력을 구분하거나 기존 동작을 보존한 채 opt-in할 설정이 없다.
Product value
같은 앱 shortcut을 다시 눌러 앱을 숨기고 직전 작업으로 빠르게 돌아간다. 기존 사용자는 기본 동작을 그대로 유지하고, 원하는 사용자만 Automatic Dock과 Manual shortcut에 공통된 예측 가능한 repeated-action 정책을 선택할 수 있다.
Scope
When the target app is already frontmostpreference를 추가하고 첫 버전의 선택지를Activate only와Hide app으로 제한한다.Activate only로 해석해 현재 activation behavior를 보존한다.Acceptance criteria
When the target app is already frontmost설정을 제공한다.Activate only와Hide app을 지원한다.Activate only다.Activate only에서 non-Finder target이 이미 frontmost이면 현재와 같이 activate를 다시 수행하며 다른 앱이나 창을 숨기지 않는다.Hide app에서 non-Finder target이 이미 frontmost일 때만 해당 앱을 숨기고, target이 frontmost가 아니면 일반 activation을 수행한다.Activate only로 fallback하며, preference 변경과 재실행 뒤에도 선택이 유지된다.Dependencies
None
External prerequisites
None
Non-goals
Cycle Windows는 R-32의 범위다.Evidence
NSWorkspace.openApplication으로 activate하며, target이 이미 frontmost인지 또는 반복 입력인지에 따른 분기가 없다:AppLauncher.swiftlines 36–49.Milestone exit-gate impact
Hide app절반을 제공하며 window cycling은 R-32가 담당한다.