Skip to content

ci: restore ui-fixture-e2e.yml deleted by #11271's stale-base squash - #11563

Closed
lalalune wants to merge 1 commit into
developfrom
ci/restore-ui-fixture-e2e
Closed

ci: restore ui-fixture-e2e.yml deleted by #11271's stale-base squash#11563
lalalune wants to merge 1 commit into
developfrom
ci/restore-ui-fixture-e2e

Conversation

@lalalune

@lalalune lalalune commented Jul 2, 2026

Copy link
Copy Markdown
Member

Refs #11419 (the #11271 regression tracker).

Restores .github/workflows/ui-fixture-e2e.yml byte-identical to the pre-#11271 state (5b714c74e6^). This was the last of the five launch-critical workflow files named in the tracker without a restore:

workflow restored by
test.yml, scenario-pr.yml, kokoro-real-smoke.yml 19b40d12ae
lifeops-quality-bench.yml #11530 (open)
ui-fixture-e2e.yml this PR

The workflow gates the ten packages/ui fixture e2e runners (agent-surface bridge, bottombar, chat-ambient, background, launcher, connectors, ftu-home, orchestrator-accounts, view-lifecycle, fused-wake) on packages/ui changes — #9310 §3.16 coverage that has been silently absent since the squash.

Verification

  • actionlint: clean.
  • All ten test:*-e2e scripts the workflow invokes verified present in packages/ui/package.json on current develop tip.
  • File is a pure restore — zero hand edits.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 23599bec-1f03-41e6-b8e3-69caed6729f5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/restore-ui-fixture-e2e

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@lalalune

lalalune commented Jul 2, 2026

Copy link
Copy Markdown
Member Author

Verified the restore locally. The workflow file is byte-identical to the pre-clobber cec0509 version, current origin/develop does not contain .github/workflows/ui-fixture-e2e.yml, YAML parses cleanly with PyYAML, and actionlint .github/workflows/ui-fixture-e2e.yml passes from the PR worktree. Biome is not applicable here because this repo config ignores YAML workflow files. Remaining gate is pending CI plus an independent approval, since GitHub will not let the author account approve its own PR.

Restores the UI Fixture E2E workflow (125 lines, byte-identical to the
pre-#11271 state at 5b714c7^) that gated the ten packages/ui fixture
e2e runners (agent-surface bridge, bottombar, ambient background,
background/launcher/connectors pages, view lifecycle, ftu-home,
orchestrator-accounts, fused-wake) on packages/ui changes. It was
deleted wholesale by the #11271 squash and is the last of the five
launch-critical workflow files named in the #11419 tracker without a
restore (test.yml / scenario-pr.yml / kokoro-real-smoke.yml restored by
19b40d1; lifeops-quality-bench.yml restored by #11530).

All ten 'test:*-e2e' scripts the workflow invokes verified present in
packages/ui/package.json on current develop.

Refs #11419

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lalalune
lalalune force-pushed the ci/restore-ui-fixture-e2e branch from ad9b5ca to 6a4e5da Compare July 2, 2026 20:40
@lalalune

lalalune commented Jul 2, 2026

Copy link
Copy Markdown
Member Author

Rebased onto origin/develop and pushed 6a4e5da. Local validation: actionlint .github/workflows/ui-fixture-e2e.yml passed; Ruby YAML parsing passed; all ten workflow commands exist in packages/ui/package.json; git diff --check is clean. I did not approve because this account authored the PR. Review note: the restore is intentionally byte-identical and therefore keeps BUN_VERSION: canary. That matches the pre-#11271 workflow, but it is worth a human reviewer explicitly accepting that in light of #11547's narrower cloud-lane Bun pin.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@lalalune

lalalune commented Jul 2, 2026

Copy link
Copy Markdown
Member Author

Local verification result: this restore would be RED on develop, and the coverage it restores already exists in ui-e2e-gate.yml. Recommend closing as superseded.

Ran all ten runners exactly as this workflow does (bun run --cwd packages/ui <script>) in a fresh worktree at develop d9d1a47ccd after bun install + Playwright Chromium:

runner result
agent-surface-e2e PASS (9 checks)
bottombar-e2e PASS (13 checks)
chat-ambient-e2e PASS (2 checks)
background-e2e PASS (19 checks)
launcher-e2e FAIL — esbuild resolve error
connectors-e2e FAIL — esbuild resolve error
ftu-home-e2e PASS (12 checks)
orchestrator-accounts-e2e PASS (10 checks)
view-lifecycle-e2e PASS (13 checks)
fused-wake-integration-e2e loud self-skip (::notice::… libwakeword not built)

Root cause of the 2 reds (workflow rot, not UI rot): packages/shared/src/i18n/keyword-matching.ts:17 imports the gitignored codegen output ./generated/validation-keyword-data.js (.gitignore:411), which only exists after node packages/app-core/scripts/ensure-shared-i18n-data.mjs runs. The live ui-e2e-gate.yml runs that step (line 88) before its runners; this restored file never had it, so its launcher + connectors legs fail at bundle time on any fresh runner. After running the codegen locally, connectors passes cleanly and launcher passes 2/3 (residual 1/3 flake in the gesture tail — run-launcher-e2e.mjs:378/415/431 — which affects the live gate equally).

Redundancy: develop commit 19b40d12ae ("fix(ci): restore orchestration tail gates", the #11413 tail restore) already re-wired all ten of these runners into .github/workflows/ui-e2e-gate.yml (now 14 runner legs) with the required i18n codegen step, and added a ratchet (packages/scripts/__tests__/ui-e2e-runner-coverage.test.ts) that fails if any __e2e__ runner loses its workflow leg. At the deletion commit (5b714c74e6) the gate had only 4 legs — the restore this PR attempts has since been done properly in the gate.

Merging this PR as-is would add a duplicate 10-leg workflow that is deterministically red on 2 legs and doubles CI cost on every packages/ui PR. The only delta it would offer is the blanket packages/ui/src/** path trigger — if that breadth is wanted, widen ui-e2e-gate.yml paths instead.

🤖 Generated with Claude Code

@lalalune

lalalune commented Jul 2, 2026

Copy link
Copy Markdown
Member Author

Review: REQUEST CHANGES — the coverage this restores already landed on develop via 19b40d12aea; merging would double-run all ten runners under a duplicate workflow name

The restore itself is exactly as advertised — I verified locally:

  • git show 5b714c74e6^:.github/workflows/ui-fixture-e2e.yml vs this PR's file: byte-identical (diff clean).
  • All ten test:*-e2e scripts present in packages/ui/package.json on current develop tip, and all ten run-*.mjs runner files exist.
  • .github/actions/setup-bun-workspace still supports install-command / install-native-deps / skip-avatar-clone / no-vision-deps.
  • actionlint: clean.
  • Smoke-ran bun run --cwd packages/ui test:launcher-e2e in a fresh develop-tip worktree: LAUNCHER E2E PASSED.

But the premise is stale. 19b40d12aea ("fix(ci): restore orchestration tail gates", merged to develop earlier today) restored this coverage differently: it folded all ten fixture runners into .github/workflows/ui-e2e-gate.yml, renamed that workflow to "UI Fixture E2E", bumped its timeout to 45m, added the widget/views/agent-surface path filters, and added packages/scripts/__tests__/ui-e2e-runner-coverage.test.ts — a ratchet that fails if any run-*.mjs runner lacks a workflow leg. The tracker table row "ui-fixture-e2e.yml → this PR" is out of date: the wiring (which is what #9310 §3.16 requires) is no longer absent.

Merging this as-is would:

  1. Create two workflows both named "UI Fixture E2E" (Actions UI / branch-protection ambiguity).
  2. Double-run ten Playwright runners on every packages/ui/src/components/** / agent-surface / widgets / views change — a heavy duplicate lane in a repo whose runners are already oversubscribed.

One residual gap worth keeping from this PR: the deleted file triggered on packages/ui/src/**, while ui-e2e-gate.yml uses a curated subset (shell/pages/chat-widgets/views/agent-surface/state/voice/testing/hooks). A regression in e.g. packages/ui/src/lib/** or non-widget src/components/chat/** that breaks a bundled fixture would not trigger the gate today, but would have pre-#11271. Suggested repurpose: drop the restored file and instead widen ui-e2e-gate.yml's paths to packages/ui/src/** (keeping the packages/agent/** entries and the workflow-self path). Alternatively, if the intent is to split the ten fixture runners back out of the 45-minute combined gate job into their own lane, that's defensible too — but then the fixture steps should be removed from ui-e2e-gate.yml in the same PR, not duplicated.

Not merging in its current shape. Happy to re-review a repurposed version.

@lalalune

lalalune commented Jul 2, 2026

Copy link
Copy Markdown
Member Author

Closing as superseded by the current develop workflow coverage. The restored UI fixture jobs are already covered in .github/workflows/ui-e2e-gate.yml, and merging this branch would duplicate the ten runner lanes under another workflow instead of fixing a remaining CI gap.

@NubsCarson

Copy link
Copy Markdown
Member

[cloud-security] — heads-up from a #11271 recovery sweep (not a grab, just a coordination flag): this PR resurrects .github/workflows/ui-fixture-e2e.yml, but per the #11419 tracker, merged #11444 deliberately folded ui-fixture-e2e into ui-e2e-gate.yml. So restoring the standalone workflow may re-add a gate that was intentionally consolidated (double-run / stale gate). Worth confirming against #11444 before merge — you'd know best whether the fold superseded it or the standalone is still wanted. [cloud-security]

@claude

claude Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants