Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
318d8a9
build(hotkey): add issue 82 module and contract harness
douglasjarquin Aug 18, 2026
de1231d
feat(hotkey): register press and release edges atomically
douglasjarquin Aug 18, 2026
9497b2a
feat(hotkey): preserve press-and-hold intent
douglasjarquin Aug 18, 2026
078d840
feat(shortcut): canonicalize default and migration
douglasjarquin Aug 18, 2026
20b790f
feat(shortcut): add native recorder control
douglasjarquin Aug 18, 2026
68ef93d
feat(app): wire press-and-hold dictation
douglasjarquin Aug 18, 2026
9c93c9e
feat(settings): make shortcut replacement atomic
douglasjarquin Aug 18, 2026
291a0de
cleanup(hotkey): finish issue 82 contract surface
douglasjarquin Aug 18, 2026
253adca
fix(hotkey): preserve valid recorder keys and setting atomicity
douglasjarquin Aug 18, 2026
97e0d24
docs(hotkey): bind final recorder evidence
douglasjarquin Aug 18, 2026
975a0d0
docs(hotkey): bind native evidence receipts
douglasjarquin Aug 18, 2026
dae08eb
docs(hotkey): bind final review receipts
douglasjarquin Aug 18, 2026
28836e1
fix(settings): persist shortcut inside replacement
douglasjarquin Aug 18, 2026
6257862
docs(hotkey): bind atomicity receipts
douglasjarquin Aug 18, 2026
2fbfa63
fix(settings): restore shortcut state after save failure
douglasjarquin Aug 18, 2026
2cdaf7f
docs(hotkey): record public shortcut conflict matrix
douglasjarquin Aug 18, 2026
24af210
fix(hotkey): fail closed on compound rollback failure
douglasjarquin Aug 18, 2026
afc1d61
docs(hotkey): bind final evidence index
douglasjarquin Aug 18, 2026
d9dcd2d
refactor(tests): split issue 82 contract harness
douglasjarquin Aug 18, 2026
c05f107
style(tests): normalize issue 82 harness files
douglasjarquin Aug 18, 2026
264f337
test(hotkey): remove tautological harness smoke
douglasjarquin Aug 18, 2026
caf3cc5
Merge origin/main into codex/issue-82
douglasjarquin Aug 18, 2026
ab0a480
fix: include merged lifecycle sources in Xcode target
douglasjarquin Aug 18, 2026
6b858bf
fix(hotkey): map non-sequential numeric key codes
douglasjarquin Aug 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ jobs:
run: swift run oigo-issue10-contract-tests
- name: Issue eleven performance and lifecycle contract harness
run: swift run oigo-issue11-performance-check
- name: Issue seventy-eight transcription lifecycle contract harness
run: swift run oigo-issue78-contract-tests
- name: Issue seventy-six input selection contract harness
run: swift run oigo-issue76-contract-tests
- name: Issue seventy-eight transcription lifecycle contract harness
run: swift run oigo-issue78-contract-tests
- name: Issue eighty-two global hotkey contract harness
run: swift run oigo-issue82-contract-tests
153 changes: 151 additions & 2 deletions Oigo.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

21 changes: 20 additions & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ let package = Package(
.library(name: "OigoCapture", targets: ["OigoCapture"]),
.library(name: "OigoTranscription", targets: ["OigoTranscription"]),
.library(name: "OigoInsertion", targets: ["OigoInsertion"]),
.library(name: "OigoHotKey", targets: ["OigoHotKey"]),
.library(name: "OigoSpike", targets: ["OigoSpike"]),
.executable(name: "Oigo", targets: ["Oigo"]),
.executable(name: "oigo-spike", targets: ["OigoSpikeCLI"]),
Expand Down Expand Up @@ -59,6 +60,10 @@ let package = Package(
.executable(
name: "oigo-issue78-contract-tests",
targets: ["OigoIssue78ContractTests"]
),
.executable(
name: "oigo-issue82-contract-tests",
targets: ["OigoIssue82ContractTests"]
)
],
targets: [
Expand Down Expand Up @@ -93,6 +98,15 @@ let package = Package(
.linkedFramework("CoreGraphics")
]
),
.target(
name: "OigoHotKey",
dependencies: ["OigoCore"],
path: "Sources/OigoHotKey",
linkerSettings: [
.linkedFramework("AppKit"),
.linkedFramework("Carbon")
]
),
.target(
name: "OigoSpike",
linkerSettings: [
Expand All @@ -113,7 +127,7 @@ let package = Package(
),
.executableTarget(
name: "Oigo",
dependencies: ["OigoCore", "OigoCapture", "OigoTranscription", "OigoInsertion"],
dependencies: ["OigoCore", "OigoCapture", "OigoTranscription", "OigoInsertion", "OigoHotKey"],
path: "Sources/Oigo",
linkerSettings: [
.linkedFramework("AppKit"),
Expand Down Expand Up @@ -175,6 +189,11 @@ let package = Package(
name: "OigoIssue78ContractTests",
dependencies: ["OigoCore", "OigoTranscription"],
path: "Tests/OigoIssue78ContractTests"
),
.executableTarget(
name: "OigoIssue82ContractTests",
dependencies: ["OigoCore", "OigoHotKey"],
path: "Tests/OigoIssue82ContractTests"
)
]
)
109 changes: 0 additions & 109 deletions Sources/Oigo/GlobalHotKeyRegistrar.swift

This file was deleted.

Loading
Loading