mirror of
https://github.com/stablyai/orca.git
synced 2026-10-06 00:02:43 +00:00
ci: route deleted WSL paths and record immutable run evidence
This commit is contained in:
@@ -93,7 +93,8 @@ jobs:
|
||||
# trigger on IME source rather than on a spec name in some route's list.
|
||||
NATIVE_IME_SOURCE_CHANGED="$(printf '%s\n' "$CHANGED" | node config/scripts/pr-e2e-source-routing.mjs --native-ime-source)"
|
||||
echo "native_ime_source_changed=$NATIVE_IME_SOURCE_CHANGED" >> "$GITHUB_OUTPUT"
|
||||
WSL_SOURCE_CHANGED="$(printf '%s\n' "$CHANGED" | node config/scripts/pr-e2e-source-routing.mjs --wsl-source)"
|
||||
WSL_CHANGED="$(git diff --name-only --no-renames --diff-filter=ACDMR --merge-base "$BASE" "$HEAD")"
|
||||
WSL_SOURCE_CHANGED="$(printf '%s\n' "$WSL_CHANGED" | node config/scripts/pr-e2e-source-routing.mjs --wsl-source)"
|
||||
echo "wsl_source_changed=$WSL_SOURCE_CHANGED" >> "$GITHUB_OUTPUT"
|
||||
echo "Native IME source changed: $NATIVE_IME_SOURCE_CHANGED"
|
||||
SHOULD_RUN="$(printf '%s\n' "$CHANGED" | node config/scripts/pr-e2e-source-routing.mjs --reusable-workflow)"
|
||||
|
||||
@@ -18159,35 +18159,20 @@
|
||||
"protection": "partial",
|
||||
"owner": "terminal-runtime",
|
||||
"layer": "electron-windows-wsl",
|
||||
"surfaces": [
|
||||
"agent tab launch",
|
||||
"keyboard paste",
|
||||
"terminal runtime retention"
|
||||
],
|
||||
"platforms": [
|
||||
"windows"
|
||||
],
|
||||
"providers": [
|
||||
"wsl1",
|
||||
"wsl2"
|
||||
],
|
||||
"coveredPlatforms": [
|
||||
"windows"
|
||||
],
|
||||
"coveredProviders": [
|
||||
"wsl1"
|
||||
],
|
||||
"coverageNotes": "Two Windows CI runs each passed the three WSL1 cases three times. The final per-scenario participation verifier and PR routing still await CI validation. WSL2 remains untested.",
|
||||
"motivatingLinks": [
|
||||
"https://github.com/stablyai/orca/actions/runs/34030832614"
|
||||
],
|
||||
"surfaces": ["agent tab launch", "keyboard paste", "terminal runtime retention"],
|
||||
"platforms": ["windows"],
|
||||
"providers": ["wsl1", "wsl2"],
|
||||
"coveredPlatforms": ["windows"],
|
||||
"coveredProviders": ["wsl1"],
|
||||
"coverageNotes": "Real WSL1 coverage: three scenarios each passed three times with no skips or retries; exact JSON report verified. Latest PR routing and installer-checksum follow-ups await CI. WSL2 remains untested.",
|
||||
"motivatingLinks": ["https://github.com/stablyai/orca/actions/runs/34030832614"],
|
||||
"invariant": "An agent launched into WSL runs in the guest; keyboard paste reaches exactly one owning PTY and preserves Linux content even after the default shell changes.",
|
||||
"oracle": "Run the existing real WSL launch and two paste cases three times; require nine passes and zero skipped, unexpected, or flaky results in the Playwright JSON report.",
|
||||
"commands": [
|
||||
"gh workflow run windows-terminal-restart-e2e.yml --ref nwparker/validate-reusable-wsl-lane",
|
||||
"gh workflow run windows-wsl-e2e.yml",
|
||||
"pnpm exec playwright test tests/e2e/golden-tab-bar-agent-launch.spec.ts tests/e2e/terminal-windows-shell-paste-ownership.spec.ts --config tests/playwright.config.ts --project=electron-headless --workers=1",
|
||||
"node_modules/.bin/vitest run --config config/vitest.config.ts config/scripts/wsl-e2e-lane-contract.test.mjs config/scripts/verify-wsl-e2e-participation.test.mjs"
|
||||
"node_modules/.bin/vitest run --config config/vitest.config.ts config/scripts/wsl-e2e-lane-contract.test.mjs config/scripts/verify-wsl-e2e-participation.test.mjs",
|
||||
"gh run view 34031806291 --log"
|
||||
],
|
||||
"testFiles": [
|
||||
"tests/e2e/golden-tab-bar-agent-launch.spec.ts",
|
||||
@@ -18198,9 +18183,7 @@
|
||||
"assertionRefs": [
|
||||
{
|
||||
"file": "tests/e2e/golden-tab-bar-agent-launch.spec.ts",
|
||||
"assertions": [
|
||||
"requires a distro-only marker from the launched agent"
|
||||
]
|
||||
"assertions": ["requires a distro-only marker from the launched agent"]
|
||||
},
|
||||
{
|
||||
"file": "tests/e2e/terminal-windows-shell-paste-ownership.spec.ts",
|
||||
@@ -18211,9 +18194,7 @@
|
||||
},
|
||||
{
|
||||
"file": "config/scripts/verify-wsl-e2e-participation.test.mjs",
|
||||
"assertions": [
|
||||
"rejects skipped, missing, substituted and retried scenarios"
|
||||
]
|
||||
"assertions": ["rejects skipped, missing, substituted and retried scenarios"]
|
||||
}
|
||||
],
|
||||
"evidenceRuns": [
|
||||
@@ -18222,9 +18203,9 @@
|
||||
"runner": "ci",
|
||||
"platform": "windows",
|
||||
"result": "passed",
|
||||
"command": "gh workflow run windows-terminal-restart-e2e.yml --ref nwparker/validate-reusable-wsl-lane",
|
||||
"durationSeconds": 234,
|
||||
"summary": "Run34030832614 at4de05e5: real WSL1 launch3 and paste6 passed; aggregate receipt required9 expected and0 skipped/unexpected/flaky. Final per-scenario verifier is newer and pending."
|
||||
"command": "gh run view 34031806291 --log",
|
||||
"durationSeconds": 210,
|
||||
"summary": "Immutable run34031806291 at92fc5152: WSL1 launch3 and paste6 passed after reader-readiness correction; named-scenario verifier accepted actual JSON report with0skips0retries. Command retrieves recorded evidence; workflow_dispatch command above reruns current coverage."
|
||||
}
|
||||
],
|
||||
"runtimeBudget": {
|
||||
@@ -18233,11 +18214,11 @@
|
||||
},
|
||||
"flakeHistory": {
|
||||
"status": "soaking",
|
||||
"evidence": "Pinned-image run34030695826 and reusable-action run34030832614 each passed9/9 with no skips; final verifier head pending."
|
||||
"evidence": "Initial permanent-lane diagnostic8passed1failed on missing PTY before changing settings. After requiring guest-reader readiness before mutation, run34031806291 passed9/9. Two earlier setup validations also passed9/9. Long-term CI history remains missing."
|
||||
},
|
||||
"redGreenEvidence": {
|
||||
"status": "partial",
|
||||
"evidence": "Verifier tests reject absent or skipped scenarios, substituted titles, and passes after retries. Actual nine-pass report verification on the final verifier head is pending."
|
||||
"evidence": "Verifier rejects actual8pass1fail CI report and accepts actual9pass report. Unit contracts reject skips, missing or substituted scenarios and retried passes. No full application fault-mutation proof."
|
||||
},
|
||||
"performanceBudget": {
|
||||
"required": false,
|
||||
|
||||
@@ -40,6 +40,15 @@ describe('real WSL terminal lane', () => {
|
||||
const pr = parse(read('.github/workflows/pr.yml'))
|
||||
expect(pr.jobs.windows_wsl.if).toBe("needs.code_paths.outputs.wsl_source_changed == 'true'")
|
||||
expect(pr.jobs.windows_wsl.with.ref).toBe('${{ github.event.pull_request.head.sha }}')
|
||||
const detector = pr.jobs['code_paths'].steps.find(
|
||||
(step) => step.name === 'Filter changed E2E specs'
|
||||
)
|
||||
expect(detector.run).toContain(
|
||||
'WSL_CHANGED="$(git diff --name-only --no-renames --diff-filter=ACDMR'
|
||||
)
|
||||
expect(detector.run).toContain(
|
||||
'"$WSL_CHANGED" | node config/scripts/pr-e2e-source-routing.mjs --wsl-source'
|
||||
)
|
||||
const workflow = parse(read('.github/workflows/windows-wsl-e2e.yml'))
|
||||
const steps = workflow.jobs['wsl-terminal'].steps
|
||||
expect(steps[0].with.ref).toBe('${{ inputs.ref || github.sha }}')
|
||||
|
||||
Reference in New Issue
Block a user