Skip to content

fix: address PR #2139 review feedback and the panel E2E failure - #2140

Merged
brunod-e merged 4 commits into
devfrom
fix/pr-2139-review-feedback
Aug 24, 2026
Merged

fix: address PR #2139 review feedback and the panel E2E failure#2140
brunod-e merged 4 commits into
devfrom
fix/pr-2139-review-feedback

Conversation

@brunod-e

Copy link
Copy Markdown
Collaborator

Fixes the Codex and UI review comments left on #2139, plus the failing Dashboard E2E check.

Codex (relayer, P2)

  • ProposalEnactmentService no longer drops the in-flight dedupe lock when the receipt wait times out: the lock is held (bounded to 4 extra receipt waits) until the broadcast transaction settles, so a repeated queue/execute request during that window joins the existing transaction instead of broadcasting a duplicate that reverts and wastes relayer gas. Covered by two new unit tests.

UI review (isadorable)

  • DaoProtectionLevels: heading bumped h3 -> h2 so the panel outline no longer skips a level after the page's h1.
  • TestimonialCarousel: prev/next arrows enlarged from 36px to 44px to meet the minimum touch-target size.
  • VotingModal (Tornado): the footer now explains a disabled Submit — "Loading your delegators..." while the delegator list pages in, and an error message with a Retry action when the fetch fails (previously the button just stayed dead with no feedback).

Dashboard E2E

  • panel.spec.ts assumed the Monitored DAOs table is taller than the 640px short viewport; commenting the Shutter DAO out of the list dropped the table to 613px and failed all retries. The assertion now checks the real invariant directly — the table container never clips rows behind an inner scrollbar (scrollHeight <= clientHeight) — so the test no longer breaks when DAOs come and go.

🤖 Generated with Claude Code

brunod-e and others added 3 commits August 24, 2026 12:45
…ction settles

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…short viewport

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
anticapture-storybook Ready Ready Preview Aug 24, 2026 3:56pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
anticapture Ignored Ignored Aug 24, 2026 3:56pm

Request Review

@brunod-e brunod-e mentioned this pull request Aug 24, 2026
@railway-app
railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-2140 August 24, 2026 15:47 Destroyed
@railway-app

railway-app Bot commented Aug 24, 2026

Copy link
Copy Markdown

🚅 Deployed to the anticapture-pr-2140 environment in anticapture-infra

Service Status Web Updated (UTC)
uniswap-indexer-offchain ✅ Success (View Logs) Aug 24, 2026 at 4:13 pm
compound-indexer-offchain ✅ Success (View Logs) Aug 24, 2026 at 4:12 pm
ens-indexer-offchain ✅ Success (View Logs) Aug 24, 2026 at 4:12 pm
shutter-indexer-offchain ✅ Success (View Logs) Aug 24, 2026 at 4:08 pm
gitcoin-indexer-offchain ✅ Success (View Logs) Aug 24, 2026 at 4:08 pm
ens-relayer ✅ Success (View Logs) Aug 24, 2026 at 3:56 pm
authful ✅ Success (View Logs) Web Aug 24, 2026 at 3:56 pm
otelcol ✅ Success (View Logs) Aug 24, 2026 at 3:56 pm
gateful ✅ Success (View Logs) Web Aug 24, 2026 at 3:55 pm
alertmanager ✅ Success (View Logs) Web Aug 24, 2026 at 3:55 pm
tempo ✅ Success (View Logs) Aug 24, 2026 at 3:55 pm
loki ✅ Success (View Logs) Aug 24, 2026 at 3:55 pm
docs ✅ Success (View Logs) Web Aug 24, 2026 at 3:52 pm
mcp ✅ Success (View Logs) Web Aug 24, 2026 at 3:52 pm
gitcoin-api ✅ Success (View Logs) Aug 24, 2026 at 3:52 pm
obol-api ✅ Success (View Logs) Aug 24, 2026 at 3:52 pm
fluid-api ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
fluid-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
compound-api ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
uniswap-api ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
aave-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
aave-api ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
nouns-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
ens-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
ens-api ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
lil-nouns-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
obol-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
shutter-api ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
gitcoin-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
uniswap-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
tornado-api ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
compound-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
nouns-api ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
tornado-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
lil-nouns-api ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
address-enrichment ✅ Success (View Logs) Web Aug 24, 2026 at 3:51 pm
shutter-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
scroll-indexer ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
erpc ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
nodeful ✅ Success (View Logs) Aug 24, 2026 at 3:51 pm
prometheus 🕐 Queued (View Logs) Aug 24, 2026 at 3:51 pm
grafana 🕐 Queued (View Logs) Web Aug 24, 2026 at 3:50 pm
user-api ✅ Success (View Logs) Web Aug 24, 2026 at 3:49 pm
scroll-api ✅ Success (View Logs) Aug 24, 2026 at 3:48 pm

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c7d735dfaa

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread apps/relayer/src/services/proposals/proposal-enactment.ts Outdated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@railway-app
railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-2140 August 24, 2026 15:54 Destroyed
@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

🔍 Vercel preview: https://anticapture-9uy2bvx0h-ful.vercel.app

@isadorable-png isadorable-png left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🎨 UI Review

Automated review · Figma: 🛰️ Product Design (reachable for the Panel screens) · Spec · Preview
ℹ️ This is a fix-up PR closing out my UI review on #2139, so it's checked against that review's asks plus the current Figma frame (3633:96644, resolved via linked spec task 86ajyc1qv — the file-key's page listing itself only exposes a Cover page to this MCP integration, but the concrete node ID still resolves). The Cast Your Vote (Tornado) modal has no Figma frame anywhere in this file or its linked tasks, so that screen is reviewed via code + UX judgment. The dashboard's own Vercel preview isn't deployed for this branch (only Storybook is), and the Storybook preview is blocked from this environment's egress proxy — so this is a diff-level review; nothing here needed a live render to confirm.


Panel — Governance risk chart

Nice-to-have

  • No code changes needed. Noting for the record: the h3h2 bump is a DOM/semantics-only change — the Figma text style for this label (Alternative/Small: Roboto Mono Medium 13px, uppercase, tracking-[6px]) matches text-alternative-sm tracking-alternative-sm font-mono font-medium uppercase pixel-for-pixel, so there's no visual delta, only a fixed heading outline (apps/dashboard/features/panel/components/DaoProtectionLevels.tsx:76). [Figma-confirmed]

Panel — Testimonial carousel

Nice-to-have

  • The prev/next IconButtons now render a 44px hit box (size-11) against the Figma Button instance's literal 36px spec (isSquare, default size). This is the right call for the WCAG touch-target minimum, and it doesn't regress anything visible: the icon itself stays iconClassName="size-4" and variant="ghost" is transparent at rest, so the resting appearance is unchanged — the only visible delta is a slightly larger hover:bg-surface-contrast square on hover. Flagging the spec/code divergence so design can bump the component's touch-target size to 44px officially, rather than leaving code as the one source of truth for it. (apps/dashboard/features/panel/components/TestimonialCarousel.tsx:38, :94) [Figma-confirmed]

Governance — Cast Your Vote modal (Tornado)

No Figma reference exists for this modal (checked the linked spec tasks and searched ClickUp workspace-wide), so this is evaluated on UX heuristics alone.

Nice-to-have

  • The new delegator status message shares the footer row with Cancel/Submit (flex items-center justify-end gap-2, no wrap). The sentence ("Could not load your delegators, so voting is disabled. Retry") wraps at word boundaries by default so nothing clips, but on the narrow mobile drawer it can push to 2–3 lines while the buttons stay vertically centered against a taller row, reading a little uneven. Add flex-wrap to the footer container, and consider w-full on the message <p> so it drops to its own line above the buttons instead of squeezing the row. (apps/dashboard/features/governance/components/modals/VotingModal.tsx:391) [UX-heuristic]

Mobile

No separate mobile frame exists in Figma for this section (checked siblings of the 3633:96644 frame — only the one desktop frame + a "Feature Description" panel). Nothing mobile-specific stood out beyond the footer-wrap note above; the carousel's arrow hit-target fix is itself the mobile-relevant change here and reads correctly on both breakpoints since it's Tailwind-responsive by default (no lg:/md: split).


Validated against Figma — no change needed

  • DaoProtectionLevels heading text, size, weight, tracking, and color all match the Figma Container node (3633:96657) exactly — the only change was the semantic tag.
  • The Tornado disabled-Submit messaging (loading vs. error+Retry) correctly mirrors the intent from the prior review: handleSubmit still fail-closes on isTornDelegatorListIncomplete || tornDelegatorsError even though the UI now explains why, so a stale/partial delegator list still can't slip through if a user manages to re-enable the button via a race.
  • No design-system violation on the inline Retry <button> in VotingModal.tsx — the DS's UnderlinedButton/UnderlinedLink components apply a heavier uppercase-mono-with-dashed-border treatment meant for standalone CTAs (e.g. "HOW THE FRAMEWORK WORKS →"), not a plain inline text link inside a sentence, so hand-rolling the small underlined action here is the correct call, not a gap.

Generated by Claude Code

@brunod-e
brunod-e merged commit 907dac9 into dev Aug 24, 2026
62 checks passed
@brunod-e
brunod-e deleted the fix/pr-2139-review-feedback branch August 24, 2026 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants