test(e2e): add desktop verification lanes - #372
Conversation
Model: gpt-5.6-sol
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e9fa5f7864
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| async closeActiveDiff(): Promise<void> { | ||
| const activeTab = this.activeSidePanelTab(); | ||
| await expect(activeTab).toContainText(/^(All Changes|全部变更)$/u); | ||
| await activeTab.getByRole('button', { name: /^(Close All Changes|关闭\s*全部变更)$/u }).click(); |
There was a problem hiding this comment.
Avoid closing the All Changes tab twice
openChangedFile() explicitly leaves All Changes as the active tab, so this click removes that fixed panel and its diff viewers. The journey then immediately calls closeChangesPanel(), which expects the same All Changes tab to remain active and tries to click its now-absent close button; therefore the P1 review journey—and the daily full and Scout review lanes that execute it—will time out before completing cleanup. Close a specific viewer tab first, or remove the second close operation.
AGENTS.md reference: e2e/AGENTS.md:L39-L41
Useful? React with 👍 / 👎.
Model: gpt-5.6-sol
Model: gpt-5.6-sol
Model: gpt-5.6-sol
Model: gpt-5.6-sol
Model: gpt-5.6-sol
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d944fe65e5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| }) | ||
| const existing = policy.findOwnedDailyFailureIssue(issues, marker) | ||
|
|
||
| if (conclusion === 'success') { |
There was a problem hiding this comment.
Close full-suite failures only after a full run
When a scheduled full run has opened this Issue, a maintainer can dispatch the exposed smoke option in e2e-daily.yml; if those P0 scenarios pass, this unconditional success branch marks the shared Daily failure Issue recovered even though the P1 scenario that originally failed was not rerun. Carry the selected suite into reconciliation and only close a full-suite failure after an equivalent full run succeeds.
Useful? React with 👍 / 👎.
Problem / pressure
Lody Desktop had unit and renderer coverage but no deterministic application-level suite spanning the built Electron main process, preload bridge, renderer, IPC, bundled CLI, and child-process cleanup. Resource exploration, delivery evidence, and deterministic regression also have different reliability requirements and should not share one blocking lane.
The repository has no model API key. Journey growth must therefore use a maintainer's existing local Codex login, keep credentials off GitHub, and never execute generated code before human review.
Summary
failure.webmfor every failed scenario.Before / after
Trust boundaries
workflow_runreconciler checks out the trusted default branch and never executes artifact content.v2.100.0and verifies the official Linux archive checksum before usinggh issue comment --attach.Test plan
pnpm --filter @lody/e2e check(suite contract plus support, Scout, reporter, and policy tests)pnpm --filter @lody/e2e smoke(3 scenarios, 18 steps passed)pnpm e2e:full(4 scenarios, 25 steps passed)pnpm e2e:acceptance -- --subject desktop-lifecyclepnpm e2e:scoutandpnpm e2e:scout:ablationactionlintfor Daily, Daily reconciler, and PR smoke workflowspnpm check:public-boundary, targeted Oxlint and Prettier, andgit diff --checkReview focus
e2e/src/support/electron-harness.tsande2e/src/support/hooks.ts.github/scripts/e2e-daily-failure.mjs.github/scripts/e2e-daily-policy.mjs.github/workflows/e2e-daily-reconcile.ymlResidual scope