Skip to content

Commit 23d6800

Browse files
committed
Merge main into feat/fallback-model
2 parents 83247f6 + a64a851 commit 23d6800

File tree

257 files changed

+30517
-1507
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

257 files changed

+30517
-1507
lines changed

.codecov.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
coverage:
2+
status:
3+
project:
4+
default:
5+
target: 90% # overall coverage threshold
6+
patch:
7+
default:
8+
target: 90% # patch coverage threshold
9+
base: auto
10+
# Only post patch coverage on decreases
11+
only_pulls: true
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: PR Size Labeler
2+
3+
on:
4+
pull_request_target:
5+
branches: main
6+
7+
jobs:
8+
label-size:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
pull-requests: write
12+
issues: write
13+
steps:
14+
- name: Calculate PR size and apply label
15+
uses: actions/github-script@v8
16+
with:
17+
script: |
18+
const pr = context.payload.pull_request;
19+
const totalChanges = pr.additions + pr.deletions;
20+
21+
// Remove existing size labels
22+
const labels = await github.rest.issues.listLabelsOnIssue({
23+
owner: context.repo.owner,
24+
repo: context.repo.repo,
25+
issue_number: context.payload.pull_request.number
26+
});
27+
28+
for (const label of labels.data) {
29+
if (label.name.startsWith('size/')) {
30+
await github.rest.issues.removeLabel({
31+
owner: context.repo.owner,
32+
repo: context.repo.repo,
33+
issue_number: context.payload.pull_request.number,
34+
name: label.name
35+
});
36+
}
37+
}
38+
39+
// Determine and apply new size label
40+
let sizeLabel;
41+
if (totalChanges <= 20) sizeLabel = 'size/xs';
42+
else if (totalChanges <= 100) sizeLabel = 'size/s';
43+
else if (totalChanges <= 500) sizeLabel = 'size/m';
44+
else if (totalChanges <= 1000) sizeLabel = 'size/l';
45+
else {
46+
sizeLabel = 'size/xl';
47+
}
48+
49+
await github.rest.issues.addLabels({
50+
owner: context.repo.owner,
51+
repo: context.repo.repo,
52+
issue_number: context.payload.pull_request.number,
53+
labels: [sizeLabel]
54+
});
55+
56+
if (sizeLabel === 'size/xl') {
57+
core.setFailed(`PR is too large (${totalChanges} lines). Please split into smaller PRs.`);
58+
}

.github/workflows/test-lint.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,20 @@ jobs:
5959
uses: actions/setup-python@v6
6060
with:
6161
python-version: ${{ matrix.python-version }}
62+
- name: Install system audio dependencies (Linux)
63+
if: matrix.os-name == 'linux'
64+
run: |
65+
sudo apt-get update
66+
sudo apt-get install -y portaudio19-dev libasound2-dev
67+
- name: Install system audio dependencies (macOS)
68+
if: matrix.os-name == 'macOS'
69+
run: |
70+
brew install portaudio
71+
- name: Install system audio dependencies (Windows)
72+
if: matrix.os-name == 'windows'
73+
run: |
74+
# Windows typically has audio libraries available by default
75+
echo "Windows audio dependencies handled by PyAudio wheels"
6276
- name: Install dependencies
6377
run: |
6478
pip install --no-cache-dir hatch
@@ -89,6 +103,11 @@ jobs:
89103
python-version: '3.10'
90104
cache: 'pip'
91105

106+
- name: Install system audio dependencies (Linux)
107+
run: |
108+
sudo apt-get update
109+
sudo apt-get install -y portaudio19-dev libasound2-dev
110+
92111
- name: Install dependencies
93112
run: |
94113
pip install --no-cache-dir hatch
@@ -97,3 +116,4 @@ jobs:
97116
id: lint
98117
run: hatch fmt --linter --check
99118
continue-on-error: false
119+

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ __pycache__*
1111
.vscode
1212
dist
1313
repl_state
14-
.kiro
14+
.kiro
15+
uv.lock
16+
.audio_cache

0 commit comments

Comments
 (0)