feat: initial release v0.1.0
- Custom Keyboard Extension with push-to-talk UI - iOS 26 SpeechAnalyzer + DictationTranscriber (iOS 18 SF fallback) - OpenAI-compatible LLM client (4 built-in providers + custom) - 3-page onboarding flow + provider config UI - App Group shared storage for cross-process config - 8s LLM timeout with raw-transcript fallback - App Store privacy manifests for both targets - SwiftLint + XcodeGen + GitHub Actions CI - Unit tests (4/4 passing)
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Something is broken
|
||||
title: '[bug] '
|
||||
labels: bug
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
## What happened?
|
||||
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
1. Go to '…'
|
||||
2. Press the mic key
|
||||
3. Say '…'
|
||||
4. See error
|
||||
|
||||
## Expected behaviour
|
||||
|
||||
What you expected to happen.
|
||||
|
||||
## Environment
|
||||
|
||||
- iOS version: [e.g. 18.5]
|
||||
- Device: [e.g. iPhone 16 Pro]
|
||||
- Xcode version: [run `xcodebuild -version`]
|
||||
- OSGKeyboard version / commit: [e.g. v0.1.0]
|
||||
|
||||
## Logs
|
||||
|
||||
Paste the relevant Console.app output filtered to `OSGKeyboard`. Wrap in triple backticks.
|
||||
|
||||
```
|
||||
<logs here>
|
||||
```
|
||||
|
||||
## Screenshots / recordings
|
||||
|
||||
If applicable, add screenshots or a short screen recording.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea
|
||||
title: '[feat] '
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
## Problem
|
||||
|
||||
A clear and concise description of what problem this would solve. Ex. I'm always frustrated when [...]
|
||||
|
||||
## Proposed solution
|
||||
|
||||
Describe the desired behaviour and UX.
|
||||
|
||||
## Alternatives
|
||||
|
||||
Any alternative solutions or features you have considered.
|
||||
|
||||
## Additional context
|
||||
|
||||
Mockups, links to similar apps, or anything else useful.
|
||||
@@ -0,0 +1,90 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main, develop]
|
||||
pull_request:
|
||||
branches: [main, develop]
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
# =========================================================
|
||||
# SwiftLint (light config — fails only on severe issues)
|
||||
# =========================================================
|
||||
lint:
|
||||
name: SwiftLint
|
||||
runs-on: macos-14
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Select Xcode
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.0.app
|
||||
- name: Install SwiftLint
|
||||
run: brew install swiftlint
|
||||
- name: Run SwiftLint
|
||||
run: |
|
||||
swiftlint lint --quiet
|
||||
swiftlint lint --quiet --strict
|
||||
|
||||
# =========================================================
|
||||
# Build the main app + keyboard extension
|
||||
# =========================================================
|
||||
build:
|
||||
name: Build (${{ matrix.destination }})
|
||||
needs: lint
|
||||
runs-on: macos-14
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
destination:
|
||||
- generic/platform=iOS Simulator
|
||||
xcode:
|
||||
- "16.0"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Select Xcode ${{ matrix.xcode }}
|
||||
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
|
||||
- name: Install XcodeGen
|
||||
run: brew install xcodegen
|
||||
- name: Generate project
|
||||
run: xcodegen generate
|
||||
- name: Build
|
||||
run: |
|
||||
set -o pipefail
|
||||
xcodebuild \
|
||||
-project OSGKeyboard.xcodeproj \
|
||||
-scheme OSGKeyboard \
|
||||
-destination "${{ matrix.destination }}" \
|
||||
-configuration Debug \
|
||||
build \
|
||||
| xcpretty
|
||||
|
||||
# =========================================================
|
||||
# Unit tests
|
||||
# =========================================================
|
||||
test:
|
||||
name: Unit tests
|
||||
needs: lint
|
||||
runs-on: macos-14
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Select Xcode
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.0.app
|
||||
- name: Install XcodeGen
|
||||
run: brew install xcodegen
|
||||
- name: Generate project
|
||||
run: xcodegen generate
|
||||
- name: Run tests
|
||||
run: |
|
||||
set -o pipefail
|
||||
xcodebuild test \
|
||||
-project OSGKeyboard.xcodeproj \
|
||||
-scheme OSGKeyboard \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17' \
|
||||
-configuration Debug \
|
||||
-only-testing:OSGKeyboardTests \
|
||||
CODE_SIGNING_ALLOWED=NO \
|
||||
| xcpretty
|
||||
Reference in New Issue
Block a user