mirror of
https://github.com/stablyai/orca.git
synced 2026-10-07 16:02:29 +00:00
Restore IME Enter protection in workspace details by reusing the existing composition tracker. Reset Notes ownership at textarea detachment and preserve sizing behavior. Repair isolated native test-window delivery without changing the production foreground policy or original native input assertions.
Fixes #24097
Related contributor history: #10711, #11067, #13128, #13282.
Original implementation and macOS recordings: @setodeve, commit b30f095.
Verified on required stock Linux X11/Wayland checks and independent frozen-source review.
Co-authored-by: setodeve <keinick11@outlook.com>
120 lines
3.7 KiB
YAML
120 lines
3.7 KiB
YAML
name: Terminal IME E2E
|
|
|
|
on:
|
|
# Why workflow_call and not pull_request: pr.yml owns the path filter that decides when an IME
|
|
# change is worth a real ibus session. A pull_request trigger here would run it on every PR.
|
|
workflow_call:
|
|
workflow_dispatch:
|
|
inputs:
|
|
diagnose_wayland_input:
|
|
description: Capture passive Wayland input diagnostics while running both native lanes
|
|
required: false
|
|
type: boolean
|
|
default: false
|
|
schedule:
|
|
- cron: '30 9 * * *'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
ORCA_BACKGROUND_LAUNCH: '1'
|
|
|
|
jobs:
|
|
linux-x11:
|
|
name: Linux X11 terminal IME
|
|
runs-on: ubuntu-22.04
|
|
timeout-minutes: 25
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Install native build and IME tools
|
|
run: >-
|
|
sudo apt-get update &&
|
|
sudo apt-get install -y
|
|
build-essential
|
|
dbus-x11
|
|
dconf-gsettings-backend
|
|
ibus
|
|
ibus-hangul
|
|
libglib2.0-bin
|
|
python3
|
|
xdotool
|
|
xfwm4
|
|
xvfb
|
|
|
|
- uses: ./.github/actions/install-node-dependencies
|
|
with:
|
|
native-runtime: electron
|
|
|
|
- name: Build Electron app for E2E
|
|
run: pnpm exec electron-vite build --mode e2e
|
|
|
|
- name: Run deterministic terminal IME boundary tests
|
|
run: >-
|
|
xvfb-run --auto-servernum
|
|
env SKIP_BUILD=1 ORCA_E2E_FORWARD_APP_LOGS=1
|
|
pnpm run test:e2e
|
|
tests/e2e/terminal-ime-exact-byte.spec.ts
|
|
--workers=1
|
|
|
|
- name: Run native IBus Hangul exact-byte tests
|
|
# Why not the default success(): the synthetic step above runs first, so its failure used
|
|
# to skip this one entirely — the real-IME half reported nothing on exactly the PRs that
|
|
# broke IME code. The two signals are independent and both belong in the log.
|
|
if: '!cancelled()'
|
|
env:
|
|
SKIP_BUILD: '1'
|
|
run: pnpm run test:e2e:terminal-ime-native
|
|
|
|
- name: Upload terminal IME evidence
|
|
if: always()
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: terminal-ime-evidence
|
|
path: test-results/
|
|
retention-days: 7
|
|
if-no-files-found: ignore
|
|
|
|
linux-wayland:
|
|
name: Linux Wayland Hangul terminating digit
|
|
runs-on: ubuntu-22.04
|
|
timeout-minutes: 25
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
persist-credentials: false
|
|
- name: Install native build, nested compositor and IME tools
|
|
run: >-
|
|
sudo apt-get update && sudo apt-get install -y
|
|
build-essential python3 fonts-noto-cjk dbus-x11 dconf-gsettings-backend
|
|
ibus ibus-hangul gnome-shell gnome-settings-daemon libglib2.0-bin
|
|
xdotool xvfb x11-utils imagemagick
|
|
- uses: ./.github/actions/install-node-dependencies
|
|
with:
|
|
native-runtime: electron
|
|
- name: Build Electron app for E2E
|
|
env:
|
|
VITE_EXPOSE_STORE: 'true'
|
|
run: |
|
|
pnpm run build:relay
|
|
pnpm exec electron-vite build --mode e2e
|
|
pnpm run build:web-from-renderer
|
|
- name: Run native Wayland Hangul terminating digit
|
|
env:
|
|
SKIP_BUILD: '1'
|
|
ORCA_E2E_WAYLAND_INPUT_DIAGNOSTICS: ${{ inputs.diagnose_wayland_input && '1' || '' }}
|
|
run: node config/scripts/run-terminal-ibus-hangul-e2e.mjs --nested-wayland
|
|
- name: Upload Wayland terminal IME evidence
|
|
if: always()
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: terminal-wayland-ime-evidence
|
|
path: test-results/
|
|
retention-days: 7
|
|
if-no-files-found: error
|