Skip to content

Commit e765b13

Browse files
committed
Merge remote-tracking branch 'origin/main' into merge-theme
# Conflicts: # src/components/Context1MCheckbox.tsx # src/components/NewWorkspaceModal.tsx # src/components/ThinkingSlider.tsx # src/components/WorkspaceListItem.tsx # src/components/tools/FileReadToolCall.tsx
2 parents 2c44421 + 5c24be2 commit e765b13

File tree

147 files changed

+12056
-2980
lines changed

Some content is hidden

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

147 files changed

+12056
-2980
lines changed

.cmux/init

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
echo "Installing dependencies with bun..."
5+
bun install
6+
echo "Dependencies installed successfully!"
7+
Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
name: "Setup Cmux"
22
description: "Setup Bun and install dependencies with caching"
3+
inputs:
4+
install-imagemagick:
5+
description: "Install ImageMagick (needed for electron-builder icon generation)"
6+
required: false
7+
default: "false"
38
runs:
49
using: "composite"
510
steps:
@@ -8,50 +13,52 @@ runs:
813
with:
914
bun-version: latest
1015

11-
- name: Cache bun dependencies
16+
- name: Get Bun version
17+
id: bun-version
18+
shell: bash
19+
run: echo "version=$(bun --version)" >> $GITHUB_OUTPUT
20+
21+
- name: Cache node_modules
1222
uses: actions/cache@v4
1323
with:
14-
path: ~/.bun/install/cache
15-
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
24+
path: node_modules
25+
key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ steps.bun-version.outputs.version }}-node-modules-${{ hashFiles('**/bun.lock') }}
1626
restore-keys: |
17-
${{ runner.os }}-bun-
27+
${{ runner.os }}-${{ runner.arch }}-bun-${{ steps.bun-version.outputs.version }}-node-modules-
1828
19-
- name: Cache Homebrew (macOS)
20-
if: runner.os == 'macOS'
29+
- name: Cache bun install cache
2130
uses: actions/cache@v4
2231
with:
23-
path: ~/Library/Caches/Homebrew
24-
key: ${{ runner.os }}-brew-cache-${{ hashFiles('**/bun.lock') }}
32+
path: ~/.bun/install/cache
33+
key: ${{ runner.os }}-bun-cache-${{ hashFiles('**/bun.lock') }}
2534
restore-keys: |
26-
${{ runner.os }}-brew-cache-
35+
${{ runner.os }}-bun-cache-
2736
2837
- name: Install dependencies
2938
shell: bash
3039
run: bun install --frozen-lockfile
3140

3241
- name: Install ImageMagick (macOS)
33-
if: runner.os == 'macOS'
42+
if: inputs.install-imagemagick == 'true' && runner.os == 'macOS'
3443
shell: bash
3544
run: |
36-
if ! brew list imagemagick &>/dev/null; then
37-
echo "📦 Installing ImageMagick..."
38-
time brew install imagemagick
45+
if command -v magick &>/dev/null; then
46+
echo "✅ ImageMagick already available"
3947
else
40-
echo "✅ ImageMagick already installed"
41-
brew list imagemagick --versions
48+
echo "📦 Installing ImageMagick..."
49+
HOMEBREW_NO_AUTO_UPDATE=1 brew install imagemagick
4250
fi
43-
# Verify it's in PATH
44-
which magick
4551
magick --version | head -1
4652
4753
- name: Install ImageMagick (Linux)
48-
if: runner.os == 'Linux'
54+
if: inputs.install-imagemagick == 'true' && runner.os == 'Linux'
4955
shell: bash
5056
run: |
51-
if ! command -v convert &> /dev/null; then
52-
echo "Installing ImageMagick..."
53-
sudo apt-get update -qq
54-
sudo apt-get install -y imagemagick
57+
if command -v convert &>/dev/null; then
58+
echo "✅ ImageMagick already available"
5559
else
56-
echo "ImageMagick already installed"
60+
echo "📦 Installing ImageMagick..."
61+
sudo apt-get update -qq
62+
sudo apt-get install -y --no-install-recommends imagemagick
5763
fi
64+
convert --version | head -1

.github/workflows/build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
fetch-depth: 0 # Required for git describe to find tags
1818

1919
- uses: ./.github/actions/setup-cmux
20+
with:
21+
install-imagemagick: true
2022

2123
- name: Build application
2224
run: bun run build
@@ -71,6 +73,8 @@ jobs:
7173
fetch-depth: 0 # Required for git describe to find tags
7274

7375
- uses: ./.github/actions/setup-cmux
76+
with:
77+
install-imagemagick: true
7478

7579
- name: Build application
7680
run: bun run build

.github/workflows/ci.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ on:
55
branches: ["**"]
66
merge_group:
77
workflow_dispatch:
8+
inputs:
9+
test_filter:
10+
description: 'Optional test filter (e.g., "workspace", "tests/file.test.ts", or "-t pattern")'
11+
required: false
12+
type: string
13+
# This filter is passed to unit tests, integration tests, e2e tests, and storybook tests
14+
# to enable faster iteration when debugging specific test failures in CI
815

916
jobs:
1017
static-check:
@@ -68,7 +75,7 @@ jobs:
6875
- uses: ./.github/actions/setup-cmux
6976

7077
- name: Run tests with coverage
71-
run: bun test --coverage --coverage-reporter=lcov src
78+
run: bun test --coverage --coverage-reporter=lcov ${{ github.event.inputs.test_filter || 'src' }}
7279

7380
- name: Upload coverage to Codecov
7481
uses: codecov/codecov-action@v5
@@ -80,7 +87,7 @@ jobs:
8087

8188
integration-test:
8289
name: Integration Tests
83-
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-16' || 'ubuntu-latest' }}
90+
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-24.04-32' || 'ubuntu-latest' }}
8491
steps:
8592
- name: Checkout code
8693
uses: actions/checkout@v4
@@ -90,7 +97,7 @@ jobs:
9097
- uses: ./.github/actions/setup-cmux
9198

9299
- name: Run integration tests with coverage
93-
run: TEST_INTEGRATION=1 bun x jest --coverage tests
100+
run: TEST_INTEGRATION=1 bun x jest --coverage --maxWorkers=200% --silent ${{ github.event.inputs.test_filter || 'tests' }}
94101
env:
95102
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
96103
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
@@ -106,6 +113,7 @@ jobs:
106113
storybook-test:
107114
name: Storybook Interaction Tests
108115
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-16' || 'ubuntu-latest' }}
116+
if: github.event.inputs.test_filter == ''
109117
steps:
110118
- name: Checkout code
111119
uses: actions/checkout@v4
@@ -131,6 +139,7 @@ jobs:
131139
e2e-test:
132140
name: End-to-End Tests
133141
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-16' || 'ubuntu-latest' }}
142+
if: github.event.inputs.test_filter == ''
134143
steps:
135144
- name: Checkout code
136145
uses: actions/checkout@v4

.github/workflows/publish-npm.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ jobs:
2323
fetch-depth: 0 # Required for git describe to find tags
2424

2525
- uses: ./.github/actions/setup-cmux
26+
with:
27+
install-imagemagick: 'true'
2628

2729
# Sets up .npmrc with the auth token
2830
- uses: actions/setup-node@v4

.github/workflows/release.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ jobs:
1818
fetch-depth: 0 # Required for git describe to find tags
1919

2020
- uses: ./.github/actions/setup-cmux
21+
with:
22+
install-imagemagick: true
2123

2224
- name: Build application
2325
run: bun run build
@@ -46,6 +48,8 @@ jobs:
4648
fetch-depth: 0 # Required for git describe to find tags
4749

4850
- uses: ./.github/actions/setup-cmux
51+
with:
52+
install-imagemagick: true
4953

5054
- name: Build application
5155
run: bun run build

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,4 @@ tmpfork
104104
.cmux-agent-cli
105105
storybook-static/
106106
*.tgz
107+
src/test-workspaces/

0 commit comments

Comments
 (0)