Skip to content

Commit 6b989d8

Browse files
committed
Merge remote-tracking branch 'origin/v3-alpha' into refactor/runtime-init-scripts
# Conflicts: # v3/UNRELEASED_CHANGELOG.md # v3/internal/assetserver/bundledassets/runtime.debug.js # v3/internal/assetserver/bundledassets/runtime.js # v3/internal/runtime/desktop/@wailsio/runtime/docs/assets/hierarchy.js # v3/internal/runtime/desktop/@wailsio/runtime/docs/assets/navigation.js # v3/internal/runtime/desktop/@wailsio/runtime/docs/classes/CancelError.html # v3/internal/runtime/desktop/@wailsio/runtime/docs/classes/CancellablePromise.html # v3/internal/runtime/desktop/@wailsio/runtime/docs/classes/CancelledRejectionError.html # v3/internal/runtime/desktop/@wailsio/runtime/docs/hierarchy.html
2 parents 7128231 + 8f19137 commit 6b989d8

423 files changed

Lines changed: 42192 additions & 1713 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.

.beads/issues.jsonl

Lines changed: 55 additions & 0 deletions
Large diffs are not rendered by default.

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
# Use bd merge for beads JSONL files
3+
.beads/issues.jsonl merge=beads

.github/workflows/build-and-test-v3.yml

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,19 @@ jobs:
111111
- name: Checkout code
112112
uses: actions/checkout@v4
113113

114-
- name: Install linux dependencies
114+
- name: Install linux dependencies (GTK3)
115115
uses: awalsh128/cache-apt-pkgs-action@latest
116116
if: matrix.os == 'ubuntu-latest'
117117
with:
118-
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config xvfb x11-xserver-utils at-spi2-core xdg-desktop-portal-gtk
118+
packages: libgtk-3-dev libwebkit2gtk-4.1-dev libwayland-dev build-essential pkg-config xvfb x11-xserver-utils at-spi2-core xdg-desktop-portal-gtk
119119
version: 1.0
120120

121+
- name: Install linux dependencies (GTK4)
122+
if: matrix.os == 'ubuntu-latest'
123+
run: |
124+
sudo apt-get update
125+
sudo apt-get install -y libgtk-4-dev libwebkitgtk-6.0-dev
126+
121127
- name: Setup Go
122128
uses: actions/setup-go@v5
123129
with:
@@ -137,12 +143,20 @@ jobs:
137143
name: runtime-build-artifacts
138144
path: v3/internal/runtime/desktop/@wailsio/runtime/
139145

140-
- name: Build Examples
146+
- name: Build Examples (GTK3 default)
141147
working-directory: v3
142148
run: |
143-
echo "Starting example compilation tests..."
149+
echo "Starting example compilation tests (GTK3)..."
144150
task test:examples
145-
echo "Example compilation tests completed successfully"
151+
echo "Example compilation tests (GTK3) completed successfully"
152+
153+
- name: Build Examples (GTK4)
154+
if: matrix.os == 'ubuntu-latest'
155+
working-directory: v3
156+
run: |
157+
echo "Starting example compilation tests (GTK4)..."
158+
BUILD_TAGS=gtk4 task test:examples
159+
echo "Example compilation tests (GTK4) completed successfully"
146160
147161
- name: Run tests (mac)
148162
if: matrix.os == 'macos-latest'
@@ -156,7 +170,7 @@ jobs:
156170
working-directory: v3
157171
run: go test -v ./...
158172

159-
- name: Run tests (ubuntu)
173+
- name: Run tests (ubuntu) - GTK3 default
160174
if: matrix.os == 'ubuntu-latest'
161175
working-directory: v3
162176
run: >
@@ -166,6 +180,17 @@ jobs:
166180
go test -v ./...
167181
'
168182
183+
- name: Run tests (ubuntu) - GTK4
184+
if: matrix.os == 'ubuntu-latest'
185+
working-directory: v3
186+
# Skip service tests that hang in CI due to GTK4 display requirements
187+
run: >
188+
xvfb-run --auto-servernum
189+
sh -c '
190+
dbus-update-activation-environment --systemd --all &&
191+
go test -tags gtk4 -v -skip "TestService" ./...
192+
'
193+
169194
- name: Typecheck binding generator output
170195
working-directory: v3
171196
run: task generator:test:check
@@ -210,13 +235,19 @@ jobs:
210235
- name: Checkout
211236
uses: actions/checkout@v4
212237

213-
- name: Install linux dependencies
238+
- name: Install linux dependencies (GTK3)
214239
uses: awalsh128/cache-apt-pkgs-action@latest
215240
if: matrix.os == 'ubuntu-latest'
216241
with:
217-
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
242+
packages: libgtk-3-dev libwebkit2gtk-4.1-dev libwayland-dev build-essential pkg-config
218243
version: 1.0
219244

245+
- name: Install linux dependencies (GTK4)
246+
if: matrix.os == 'ubuntu-latest'
247+
run: |
248+
sudo apt-get update
249+
sudo apt-get install -y libgtk-4-dev libwebkitgtk-6.0-dev
250+
220251
- name: Setup Go
221252
uses: actions/setup-go@v5
222253
with:
@@ -242,7 +273,7 @@ jobs:
242273
name: runtime-package
243274
path: wails-runtime-temp
244275

245-
- name: Generate template '${{ matrix.template }}'
276+
- name: Generate template '${{ matrix.template }}' (GTK3 default)
246277
shell: bash
247278
run: |
248279
# Get absolute path - use pwd -W on Windows for native paths, pwd elsewhere
@@ -260,6 +291,8 @@ jobs:
260291
cd ..
261292
wails3 build
262293
294+
# GTK4 template builds are covered by the Go example compilation tests above.
295+
263296
build_results:
264297
if: ${{ always() }}
265298
runs-on: ubuntu-latest

.github/workflows/build-and-test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
- uses: awalsh128/cache-apt-pkgs-action@latest
2929
if: matrix.os == 'ubuntu-24.04'
3030
with:
31-
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
31+
packages: libgtk-3-dev libwebkit2gtk-4.1-dev libwayland-dev build-essential pkg-config
3232
version: 1.0
3333

3434
- name: Setup Go
@@ -126,7 +126,7 @@ jobs:
126126

127127
- name: Install linux dependencies ( 24.04 )
128128
if: matrix.os == 'ubuntu-24.04'
129-
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
129+
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libwayland-dev build-essential pkg-config
130130

131131
- name: Generate & Build template '${{ matrix.template }}'
132132
if: matrix.os != 'ubuntu-24.04'

.github/workflows/build-cross-image.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ jobs:
153153
- name: Install Linux dev dependencies
154154
run: |
155155
sudo apt-get update
156-
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev
156+
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libwayland-dev
157157
158158
- name: Install wails3 CLI
159159
run: |
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Claude Code Review
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, ready_for_review, reopened]
6+
# Optional: Only run on specific file changes
7+
# paths:
8+
# - "src/**/*.ts"
9+
# - "src/**/*.tsx"
10+
# - "src/**/*.js"
11+
# - "src/**/*.jsx"
12+
13+
jobs:
14+
claude-review:
15+
# Optional: Filter by PR author
16+
# if: |
17+
# github.event.pull_request.user.login == 'external-contributor' ||
18+
# github.event.pull_request.user.login == 'new-developer' ||
19+
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
20+
21+
runs-on: ubuntu-latest
22+
permissions:
23+
contents: read
24+
pull-requests: read
25+
issues: read
26+
id-token: write
27+
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@v4
31+
with:
32+
fetch-depth: 1
33+
34+
- name: Run Claude Code Review
35+
id: claude-review
36+
uses: anthropics/claude-code-action@v1
37+
with:
38+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
39+
plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
40+
plugins: 'code-review@claude-code-plugins'
41+
prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}'
42+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
43+
# or https://code.claude.com/docs/en/cli-reference for available options
44+

.github/workflows/claude.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Claude Code
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
pull_request_review_comment:
7+
types: [created]
8+
issues:
9+
types: [opened, assigned]
10+
pull_request_review:
11+
types: [submitted]
12+
13+
jobs:
14+
claude:
15+
if: |
16+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19+
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
20+
runs-on: ubuntu-latest
21+
permissions:
22+
contents: read
23+
pull-requests: read
24+
issues: read
25+
id-token: write
26+
actions: read # Required for Claude to read CI results on PRs
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v4
30+
with:
31+
fetch-depth: 1
32+
33+
- name: Run Claude Code
34+
id: claude
35+
uses: anthropics/claude-code-action@v1
36+
with:
37+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
38+
39+
# This is an optional setting that allows Claude to read CI results on PRs
40+
additional_permissions: |
41+
actions: read
42+
43+
# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
44+
# prompt: 'Update the pull request description to include a summary of changes.'
45+
46+
# Optional: Add claude_args to customize behavior and configuration
47+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
48+
# or https://code.claude.com/docs/en/cli-reference for available options
49+
# claude_args: '--allowed-tools Bash(gh pr:*)'
50+

.github/workflows/cross-compile-test-v3.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ jobs:
8383
- name: Install Linux dependencies
8484
uses: awalsh128/cache-apt-pkgs-action@latest
8585
with:
86-
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
86+
packages: libgtk-3-dev libwebkit2gtk-4.1-dev libwayland-dev build-essential pkg-config
8787
version: 1.0
8888

8989
- name: Install Wails3 CLI
@@ -126,8 +126,8 @@ jobs:
126126
- run: |
127127
result="${{ needs.cross_compile.result }}"
128128
echo "Cross-compile result: $result"
129-
if [[ $result == "success" ]]; then
130-
echo "All cross-compile tests passed!"
129+
if [[ $result == "success" || $result == "skipped" ]]; then
130+
echo "Cross-compile tests passed (or were skipped)!"
131131
exit 0
132132
else
133133
echo "One or more cross-compile tests failed"

.github/workflows/pr-master.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252

5353
- name: Install linux dependencies (24.04)
5454
if: matrix.os == 'ubuntu-24.04'
55-
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
55+
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libwayland-dev build-essential pkg-config
5656

5757
- name: Setup Go
5858
uses: actions/setup-go@v3

AGENTS.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,3 +142,56 @@ For example: `bd create --help` shows `--parent`, `--deps`, `--assignee`, etc.
142142
- Do NOT clutter repo root with planning documents
143143

144144
For more details, see README.md and QUICKSTART.md.
145+
146+
## Implementation Tracking (IMPLEMENTATION.md)
147+
148+
**IMPORTANT**: The `IMPLEMENTATION.md` file at the repository root is a **persistent tracking document** for the WebKitGTK 6.0 / GTK4 implementation work. It is NOT an ephemeral planning document.
149+
150+
### Requirements
151+
152+
1. **Update with EVERY commit** that touches GTK4/WebKitGTK 6.0 related code
153+
2. **Track all architectural decisions** with context, decision, and rationale
154+
3. **Maintain progress status** for each implementation phase
155+
4. **Document API differences** between GTK3 and GTK4
156+
5. **Keep file references** accurate and up-to-date
157+
158+
### What to Update
159+
160+
- Phase completion status (✅ COMPLETE, 🔄 IN PROGRESS, 📋 PENDING)
161+
- New decisions made during implementation
162+
- Files created or modified
163+
- Changelog entries with dates
164+
- TODO items discovered during work
165+
166+
### Commit Message Pattern
167+
168+
When updating IMPLEMENTATION.md:
169+
```
170+
docs: update implementation tracker for [phase/feature]
171+
```
172+
173+
## Landing the Plane (Session Completion)
174+
175+
**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
176+
177+
**MANDATORY WORKFLOW:**
178+
179+
1. **File issues for remaining work** - Create issues for anything that needs follow-up
180+
2. **Run quality gates** (if code changed) - Tests, linters, builds
181+
3. **Update issue status** - Close finished work, update in-progress items
182+
4. **PUSH TO REMOTE** - This is MANDATORY:
183+
```bash
184+
git pull --rebase
185+
bd sync
186+
git push
187+
git status # MUST show "up to date with origin"
188+
```
189+
5. **Clean up** - Clear stashes, prune remote branches
190+
6. **Verify** - All changes committed AND pushed
191+
7. **Hand off** - Provide context for next session
192+
193+
**CRITICAL RULES:**
194+
- Work is NOT complete until `git push` succeeds
195+
- NEVER stop before pushing - that leaves work stranded locally
196+
- NEVER say "ready to push when you are" - YOU must push
197+
- If push fails, resolve and retry until it succeeds

0 commit comments

Comments
 (0)