Skip to content

Commit 83bee1e

Browse files
author
Test
committed
Merge remote-tracking branch 'origin/dev' into beta-sync-29948
# Conflicts: # packages/tui/test/keymap.test.tsx
2 parents 124714c + b44af11 commit 83bee1e

2,366 files changed

Lines changed: 198390 additions & 108088 deletions

File tree

Some content is hidden

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

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
packages/core/migration/**/snapshot.json linguist-generated
2+
packages/core/src/database/migration.gen.ts linguist-generated

.github/CODEOWNERS

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
# web + desktop packages
2-
packages/app/ @adamdotdevin
3-
packages/tauri/ @adamdotdevin
4-
packages/desktop/src-tauri/ @brendonovich
5-
packages/desktop/ @adamdotdevin
2+
packages/app/ @Hona @Brendonovich
3+
packages/desktop/ @Hona @Brendonovich

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ blank_issues_enabled: false
22
contact_links:
33
- name: 💬 Discord Community
44
url: https://discord.gg/opencode
5-
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.
5+
about: For support, troubleshooting, how-to questions, and real-time discussion.

.github/ISSUE_TEMPLATE/question.yml

Lines changed: 0 additions & 10 deletions
This file was deleted.

.github/workflows/nix-hashes.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,24 @@ jobs:
5656
BUILD_LOG=$(mktemp)
5757
trap 'rm -f "$BUILD_LOG"' EXIT
5858
59-
# Build with fakeHash to trigger hash mismatch and reveal correct hash
60-
nix build ".#packages.${SYSTEM}.node_modules_updater" --no-link 2>&1 | tee "$BUILD_LOG" || true
59+
HASH=""
60+
MAX_ATTEMPTS=3
61+
for ((ATTEMPT = 1; ATTEMPT <= MAX_ATTEMPTS; ATTEMPT++)); do
62+
# Build with fakeHash to trigger hash mismatch and reveal correct hash
63+
nix build ".#packages.${SYSTEM}.node_modules_updater" --no-link 2>&1 | tee "$BUILD_LOG" || true
6164
62-
# Extract hash from build log with portability
63-
HASH="$(nix run --inputs-from . nixpkgs#gnugrep -- -oP 'got:\s*\Ksha256-[A-Za-z0-9+/=]+' "$BUILD_LOG" | tail -n1 || true)"
65+
HASH="$(nix run --inputs-from . nixpkgs#gnugrep -- -oP 'got:\s*\Ksha256-[A-Za-z0-9+/=]+' "$BUILD_LOG" | tail -n1 || true)"
66+
67+
[ -n "$HASH" ] && break
68+
69+
if [ "$ATTEMPT" -lt "$MAX_ATTEMPTS" ]; then
70+
echo "::warning::Attempt ${ATTEMPT}/${MAX_ATTEMPTS} produced no hash for ${SYSTEM}; retrying in $((ATTEMPT * 10))s"
71+
sleep $((ATTEMPT * 10))
72+
fi
73+
done
6474
6575
if [ -z "$HASH" ]; then
66-
echo "::error::Failed to compute hash for ${SYSTEM}"
76+
echo "::error::Failed to compute hash for ${SYSTEM} after ${MAX_ATTEMPTS} attempts"
6777
cat "$BUILD_LOG"
6878
exit 1
6979
fi

.github/workflows/publish.yml

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ jobs:
9090
id: build
9191
run: |
9292
./packages/opencode/script/build.ts ${{ (github.ref_name == 'beta' && '--sourcemaps') || '' }}
93+
./packages/cli/script/build.ts ${{ (github.ref_name == 'beta' && '--sourcemaps') || '' }}
9394
env:
9495
OPENCODE_VERSION: ${{ needs.version.outputs.version }}
9596
OPENCODE_RELEASE: ${{ needs.version.outputs.release }}
@@ -107,6 +108,12 @@ jobs:
107108
with:
108109
name: opencode-cli-windows
109110
path: packages/opencode/dist/opencode-windows*
111+
112+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
113+
with:
114+
name: opencode-preview-cli
115+
path: packages/cli/dist/cli-*
116+
110117
outputs:
111118
version: ${{ needs.version.outputs.version }}
112119

@@ -318,6 +325,7 @@ jobs:
318325
run: bun run build
319326
working-directory: packages/desktop
320327
env:
328+
NODE_OPTIONS: --max-old-space-size=4096
321329
OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }}
322330
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
323331
SENTRY_ORG: ${{ vars.SENTRY_ORG }}
@@ -327,9 +335,9 @@ jobs:
327335
VITE_SENTRY_ENVIRONMENT: ${{ (github.ref_name == 'beta' && 'beta') || 'production' }}
328336
VITE_SENTRY_RELEASE: desktop@${{ needs.version.outputs.version }}
329337

330-
- name: Package and publish
338+
- name: Package
331339
if: needs.version.outputs.release
332-
run: npx electron-builder ${{ matrix.settings.platform_flag }} --publish always --config electron-builder.config.ts
340+
run: npx electron-builder ${{ matrix.settings.platform_flag }} --publish never --config electron-builder.config.ts
333341
working-directory: packages/desktop
334342
timeout-minutes: 60
335343
env:
@@ -349,11 +357,9 @@ jobs:
349357
env:
350358
OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }}
351359

352-
- name: Create and upload macOS .app.tar.gz
360+
- name: Create macOS .app.tar.gz
353361
if: runner.os == 'macOS' && needs.version.outputs.release
354362
working-directory: packages/desktop/dist
355-
env:
356-
GH_TOKEN: ${{ steps.committer.outputs.token }}
357363
run: |
358364
if [[ "${{ matrix.settings.target }}" == "x86_64-apple-darwin" ]]; then
359365
APP_DIR="mac"
@@ -371,7 +377,6 @@ jobs:
371377
exit 1
372378
fi
373379
tar -czf "$OUT_NAME" -C "$(dirname "$APP_PATH")" "$(basename "$APP_PATH")"
374-
gh release upload "v${{ needs.version.outputs.version }}" "$OUT_NAME" --clobber --repo "${{ needs.version.outputs.repo }}"
375380
376381
- name: Verify signed Windows Electron artifacts
377382
if: runner.os == 'Windows'
@@ -446,12 +451,24 @@ jobs:
446451
name: opencode-cli-signed-windows
447452
path: packages/opencode/dist
448453

454+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
455+
with:
456+
name: opencode-preview-cli
457+
path: packages/cli/dist
458+
449459
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
450460
if: needs.version.outputs.release
451461
with:
452462
pattern: latest-yml-*
453463
path: /tmp/latest-yml
454464

465+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
466+
if: needs.version.outputs.release
467+
with:
468+
pattern: opencode-desktop-*
469+
path: /tmp/desktop
470+
merge-multiple: true
471+
455472
- name: Setup git committer
456473
id: committer
457474
uses: ./.github/actions/setup-git-committer
@@ -478,6 +495,19 @@ jobs:
478495
git config --global user.name "opencode"
479496
ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts || true
480497
498+
- name: Upload desktop release assets
499+
if: needs.version.outputs.release
500+
env:
501+
GH_TOKEN: ${{ steps.committer.outputs.token }}
502+
run: |
503+
shopt -s nullglob
504+
files=(/tmp/desktop/*.{exe,blockmap,dmg,zip,AppImage,deb,rpm} /tmp/desktop/*.app.tar.gz)
505+
if (( ${#files[@]} == 0 )); then
506+
echo "No desktop release assets found"
507+
exit 1
508+
fi
509+
gh release upload "v${{ needs.version.outputs.version }}" "${files[@]}" --clobber --repo "${{ needs.version.outputs.repo }}"
510+
481511
- run: ./script/publish.ts
482512
env:
483513
OPENCODE_VERSION: ${{ needs.version.outputs.version }}

.github/workflows/storybook.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
- "bun.lock"
1010
- "packages/storybook/**"
1111
- "packages/ui/**"
12+
- "packages/session-ui/**"
1213
pull_request:
1314
branches: [dev]
1415
paths:
@@ -17,6 +18,7 @@ on:
1718
- "bun.lock"
1819
- "packages/storybook/**"
1920
- "packages/ui/**"
21+
- "packages/session-ui/**"
2022
workflow_dispatch:
2123

2224
concurrency:

.github/workflows/sync-zed-extension.yml

Lines changed: 0 additions & 35 deletions
This file was deleted.

.github/workflows/test.yml

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -64,35 +64,21 @@ jobs:
6464
turbo-${{ runner.os }}-
6565
6666
- name: Run unit tests
67-
run: bun turbo test:ci
67+
timeout-minutes: 20
68+
run: GITHUB_ACTIONS=false bun turbo test
6869
env:
6970
OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER: ${{ runner.os == 'Windows' && 'true' || 'false' }}
7071

72+
- name: Check generated client
73+
if: runner.os == 'Linux'
74+
working-directory: packages/client
75+
run: bun run check:generated
76+
7177
- name: Run HttpApi exerciser gates
7278
if: runner.os == 'Linux'
7379
working-directory: packages/opencode
7480
run: bun run test:httpapi
7581

76-
- name: Publish unit reports
77-
if: always()
78-
uses: mikepenz/action-junit-report@bccf2e31636835cf0874589931c4116687171386 # v6.4.0
79-
with:
80-
report_paths: packages/*/.artifacts/unit/junit.xml
81-
check_name: "unit results (${{ matrix.settings.name }})"
82-
detailed_summary: true
83-
include_time_in_summary: true
84-
fail_on_failure: false
85-
86-
- name: Upload unit artifacts
87-
if: always()
88-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
89-
with:
90-
name: unit-${{ matrix.settings.name }}-${{ github.run_attempt }}
91-
include-hidden-files: true
92-
if-no-files-found: ignore
93-
retention-days: 7
94-
path: packages/*/.artifacts/unit/junit.xml
95-
9682
e2e:
9783
name: e2e (${{ matrix.settings.name }})
9884
strategy:
@@ -118,7 +104,8 @@ jobs:
118104
- name: Setup Node
119105
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
120106
with:
121-
node-version: "24"
107+
# Playwright 1.59 hangs while extracting Chromium with Node 24.16.
108+
node-version: "24.15"
122109

123110
- name: Setup Bun
124111
uses: ./.github/actions/setup-bun
@@ -150,7 +137,6 @@ jobs:
150137
run: bun --cwd packages/app test:e2e:local
151138
env:
152139
CI: true
153-
PLAYWRIGHT_JUNIT_OUTPUT: e2e/junit-${{ matrix.settings.name }}.xml
154140
timeout-minutes: 30
155141

156142
- name: Upload Playwright artifacts
@@ -161,6 +147,5 @@ jobs:
161147
if-no-files-found: ignore
162148
retention-days: 7
163149
path: |
164-
packages/app/e2e/junit-*.xml
165150
packages/app/e2e/test-results
166151
packages/app/e2e/playwright-report

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ ts-dist
1515
.turbo
1616
**/.serena
1717
.serena/
18+
**/.omo
19+
.omo/
1820
/result
1921
refs
2022
Session.vim

0 commit comments

Comments
 (0)