test(settings): default updates.tier to "off" so version-badge can't block chat-icon clicks#7800
Closed
JohnMcLear wants to merge 2 commits into
Closed
test(settings): default updates.tier to "off" so version-badge can't block chat-icon clicks#7800JohnMcLear wants to merge 2 commits into
JohnMcLear wants to merge 2 commits into
Conversation
The pad-side version-badge polls `/api/version-status` on every pad load and paints an absolutely-positioned banner at bottom-right (z-index 9999) when the running core is at least one major behind the latest GitHub release. The banner intercepts pointer events on `#chaticon`, which sits in the same corner at z-index 400 — every Playwright spec that clicks the chat icon then times out. This bit ep_comments_page on 2026-05-17 (PR ether/ep_comments_page#421): their Node-22 matrix pins core to v2.7.3 for engineStrict compatibility, and the day v3.0.0/v3.1.0 dropped on GitHub the matrix turned permanently red because the v2.7.3 test settings let `updates.tier` default to "notify". Set `updates.tier: "off"` in the standard test settings so: - `expressCreateServer` in `node/hooks/express/updateStatus.ts:65` short-circuits and never registers `/api/version-status` - the client fetch 404s, badge stays hidden - any plugin that does `cp src/tests/settings.json settings.json` against a recent core gets the fix for free The existing pad-version-badge specs mock the endpoint browser-side via `page.route()` (see src/tests/frontend-new/specs/pad-version-badge.spec.ts), so they're independent of the server-side setting and keep passing. Doesn't help plugins pinned to v2.7.3 or earlier (their checked-out test settings predate this commit) — those need the per-workflow injection pattern from ep_comments_page#421. Going forward, plugins pinning to any tag built from this commit onward are protected. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Review Summary by QodoDisable updater in test settings to prevent version-badge blocking
WalkthroughsDescription• Disable version-badge updater in test settings • Prevents z-index collision blocking chat-icon clicks • Sets updates.tier to "off" in test configuration • Protects plugins copying standard test settings Diagramflowchart LR
A["Test Settings<br/>updates.tier off"] -- "Disables" --> B["Version Status API<br/>Registration"]
B -- "Prevents" --> C["Version Badge<br/>Rendering"]
C -- "Unblocks" --> D["Chat Icon<br/>Clicks"]
File Changes1. src/tests/settings.json
|
Code Review by Qodo
Context used✅ Tickets:
🎫 User Menus Are Ugly [IE] 1. Updater fix lacks regression test
|
Source-level lint that fails fast if `updates.tier` in src/tests/settings.json is reverted from "off" back to "notify" (the implicit default). Addresses Qodo review note on #7800: "This PR changes test runtime behavior by setting updates.tier to off, but the PR diff does not include any regression test to ensure the version-badge cannot block chat-icon clicks if the setting is reverted." The actual functional regression (badge blocking #chaticon) is already covered by every chat.spec.ts click — they'd time out again under "notify" once any new major drops on GitHub. This new pin-test catches the regression at lint time instead, so we don't need a downstream npm release to trigger it. Same pattern as backend-tests-flake-mitigation.test.ts: cheap source-level lint guarding a behavioural invariant that lives in config. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Member
Author
|
Closing this in favor of another approach #7799 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
v2.7.x added a "severely outdated" version-badge that paints absolutely-positioned at
bottom: 8px; right: 8px; z-index: 9999when the running core is at least one major behind the latest GitHub release.#chaticonsits in the same corner (bottom: 0; right: 25-30px; z-index: 400). The banner intercepts pointer events on the chat icon — every Playwright spec that clicks it times out.This bit ep_comments_page on 2026-05-17 the moment v3.0.0/v3.1.0 were tagged: their Node-22 matrix pins core to v2.7.3 (engineStrict compatibility) and v2.7.3 lets
updates.tierdefault to"notify", so the updater polls GitHub, finds 3.x, paints the banner, every chat-related test → 1.5min timeout × 3 retries × N tests. Fixed in ether/ep_comments_page#421 with a per-workflow injection.What
Set
updates.tier: "off"insrc/tests/settings.json. With tier=off,expressCreateServerinnode/hooks/express/updateStatus.ts:65short-circuits and never registers/api/version-status— the client fetch 404s and the badge stays hidden.Side effects
cp src/tests/settings.json settings.jsonagainst any future tag built from this commit get the fix automatically.pad-version-badge.spec.tsmocks the endpoint browser-side viapage.route()— independent of the server-side setting, keeps passing.Test plan
pad-version-badge.spec.tscontinues to pass (specs mock the endpoint browser-side)🤖 Generated with Claude Code